You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All errors make it to bugsnag, especially panics, even when Synchronous mode is off.
Observed behavior
I may be wrong, but looking at the code: there is no guarantees that in case of a recovered panic with Synchronous mode off an error makes it to bugsnag as the goroutine is not protected from exiting the application (if the panic is so fatal that the application has to exit).
Adding a closer function which can be registered as a deferred function could make sure that before exiting the application all pending errors are actually sent to Bugsnag.
Version
1.3.1
The text was updated successfully, but these errors were encountered:
Thanks for the report @sagikazarmark - I've created a ticket internally to discuss whether this is something the notifier could support automatically in future. In the meantime, our documentation has a section on reporting panics from goroutines which may be helpful depending on your exact use-case.
I have the same problem. If I log a Fatal error, my program exits before Bugsnag can publish the error when Synchronous mode is off.
Would you be open to adding a Configuration value for a sync.WaitGroup? The reportPublisher can increment/decrement the WaitGroup when it starts a delivery, and I can wait to exit until the WaitGroup is done.
I can create a PR if you're interested but don't have the bandwidth.
Thanks for the offer, but I'm not sure we'd accept a PR at present. We'd like to more carefully consider other possible scenarios here and decide on the best way forward.
I'd suggest forking the repo in the short term with your proposed approach, and we'll report back on this issue when we've considered the best long term fix.
Expected behavior
All errors make it to bugsnag, especially panics, even when Synchronous mode is off.
Observed behavior
I may be wrong, but looking at the code: there is no guarantees that in case of a recovered panic with Synchronous mode off an error makes it to bugsnag as the goroutine is not protected from exiting the application (if the panic is so fatal that the application has to exit).
Adding a closer function which can be registered as a deferred function could make sure that before exiting the application all pending errors are actually sent to Bugsnag.
Version
1.3.1
The text was updated successfully, but these errors were encountered: