Skip to content

Conversation

@sdzyba
Copy link

@sdzyba sdzyba commented Jun 24, 2019

I faced an issue with stacktrace first entry being incorrect.
Say in application we have something like that:

gitlab.com/project/api/repositories.(*ModelTranslation).Create
 	/service/repositories/model_translation.go:33
gitlab.com/project/api/services.(*Model).Create.func1
 	/service/services/model.go:68
github.com/go-pg/pg.(*Tx).RunInTransaction
 	/go/pkg/mod/github.com/go-pg/pg@v8.0.4+incompatible/tx.go:79
...

But Sentry received an exception with a bit different trace:

  File "/go/pkg/mod/github.com/pkg/errors@v0.8.1/errors.go", line 151, in WithStack
    callers(),
  File "/service/services/model.go", line 68, in func1
    err = modelTranslationRepo.Create(txCtx, mt)
  File "/go/pkg/mod/github.com/go-pg/pg@v8.0.4+incompatible/tx.go", line 79, in RunInTransaction
    if err := fn(tx); err != nil {
...

So the first entry in Sentry's trace leads to pkg/errors, but originally it was referring to the application code.
While trying to find the reason behind that I noticed stacktrace conversion in raven-go looked almost the same as in logrus_sentry except for a - 1 part here.
To be honest I'm not sure how exactly it works, but I did the same change for logrus_sentry and now I get correct stacktrace and it seems like all tests here still pass.

@sdzyba sdzyba changed the title Fix stacktrace convertion Fix stacktrace conversion Jun 24, 2019
@evalphobia evalphobia self-assigned this Jun 27, 2019
@klaus2Dancer
Copy link

i try. but it didn't work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants