{"action":"created","issue":{"url":"https://api.github.com/repos/bugsnag/bugsnag-go/issues/34","repository_url":"https://api.github.com/repos/bugsnag/bugsnag-go","labels_url":"https://api.github.com/repos/bugsnag/bugsnag-go/issues/34/labels{/name}","comments_url":"https://api.github.com/repos/bugsnag/bugsnag-go/issues/34/comments","events_url":"https://api.github.com/repos/bugsnag/bugsnag-go/issues/34/events","html_url":"https://github.com/bugsnag/bugsnag-go/issues/34","id":160091860,"number":34,"title":"Undocumented process fork when configuring bugsnag","user":{"login":"lwc","id":336402,"avatar_url":"https://avatars.githubusercontent.com/u/336402?v=3","gravatar_id":"","url":"https://api.github.com/users/lwc","html_url":"https://github.com/lwc","followers_url":"https://api.github.com/users/lwc/followers","following_url":"https://api.github.com/users/lwc/following{/other_user}","gists_url":"https://api.github.com/users/lwc/gists{/gist_id}","starred_url":"https://api.github.com/users/lwc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lwc/subscriptions","organizations_url":"https://api.github.com/users/lwc/orgs","repos_url":"https://api.github.com/users/lwc/repos","events_url":"https://api.github.com/users/lwc/events{/privacy}","received_events_url":"https://api.github.com/users/lwc/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-06-14T03:48:32Z","updated_at":"2016-06-15T00:23:50Z","closed_at":null,"body":"Due to an undocumented \"feature\" of this library [seen here](https://github.com/bugsnag/bugsnag-go/blob/master/panicwrap.go#L10-L12). \r\n\r\nLooks like it forks the current process and attempts to trap any panics in the child process's output.\r\n\r\nPretty unexpected behaviour for a library, and to make matters worse, the documentation for it was recently deleted: https://github.com/bugsnag/bugsnag-go/commit/008a3ab73b84bd20f62003318d5709993cd957a6#diff-04c6e90faac2675aa89e2176d2eec7d8L398\r\n\r\nThis can cause all manner of strange behaviour in initialisation code that can introduce issues depending on when bugsnag is configured. For example, the parent process could hold database connections open, pollute runtime metrics sent to statsd or cause the behaviour described in https://github.com/bugsnag/bugsnag-go/issues/32.\r\n\r\nSomething as seemingly trivial as the order datadog and bugsnag are configured leads to this:\r\n<img width=\"391\" alt=\"screen shot 2016-06-14 at 11 50 01 am\" src=\"https://cloud.githubusercontent.com/assets/336402/16030811/5a81b1a2-3238-11e6-984e-9921c0c7a421.png\">\r\n"},"comment":{"url":"https://api.github.com/repos/bugsnag/bugsnag-go/issues/comments/226055427","html_url":"https://github.com/bugsnag/bugsnag-go/issues/34#issuecomment-226055427","issue_url":"https://api.github.com/repos/bugsnag/bugsnag-go/issues/34","id":226055427,"user":{"login":"kattrali","id":333454,"avatar_url":"https://avatars.githubusercontent.com/u/333454?v=3","gravatar_id":"","url":"https://api.github.com/users/kattrali","html_url":"https://github.com/kattrali","followers_url":"https://api.github.com/users/kattrali/followers","following_url":"https://api.github.com/users/kattrali/following{/other_user}","gists_url":"https://api.github.com/users/kattrali/gists{/gist_id}","starred_url":"https://api.github.com/users/kattrali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kattrali/subscriptions","organizations_url":"https://api.github.com/users/kattrali/orgs","repos_url":"https://api.github.com/users/kattrali/repos","events_url":"https://api.github.com/users/kattrali/events{/privacy}","received_events_url":"https://api.github.com/users/kattrali/received_events","type":"User","site_admin":false},"created_at":"2016-06-15T00:23:50Z","updated_at":"2016-06-15T00:23:50Z","body":"Gotcha, thanks for the follow-ups, @lwc and @Vektah. There are a few things I can do in the near future to make this behavior more clear:\r\n\r\n1. Promote the explanation of panic handling in the integration guides, including how to disable it. This should cut down on surprises during initial setup.\r\n2. Update the source documentation of panicwrap.go to more clearly explain what panicwrap does and how (to re-enable the ability to `grep` for \"fork\" or related terms.\r\n3. Explain more clearly why Bugsnag should be initialized first\r\n\r\nChanging the defaults can be part of larger discussion about the next major version though I'm unsure what default would be best."}}
{"actor":{"display_login":"kattrali"}}