{"action":"created","issue":{"url":"https://api.github.com/repos/onsi/ginkgo/issues/461","repository_url":"https://api.github.com/repos/onsi/ginkgo","labels_url":"https://api.github.com/repos/onsi/ginkgo/issues/461/labels{/name}","comments_url":"https://api.github.com/repos/onsi/ginkgo/issues/461/comments","events_url":"https://api.github.com/repos/onsi/ginkgo/issues/461/events","html_url":"https://github.com/onsi/ginkgo/pull/461","id":317817014,"number":461,"title":"Add -showDebugAddress to enable debugging hanging parallel tests","user":{"login":"onsi","id":558230,"avatar_url":"https://avatars2.githubusercontent.com/u/558230?v=4","gravatar_id":"","url":"https://api.github.com/users/onsi","html_url":"https://github.com/onsi","followers_url":"https://api.github.com/users/onsi/followers","following_url":"https://api.github.com/users/onsi/following{/other_user}","gists_url":"https://api.github.com/users/onsi/gists{/gist_id}","starred_url":"https://api.github.com/users/onsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/onsi/subscriptions","organizations_url":"https://api.github.com/users/onsi/orgs","repos_url":"https://api.github.com/users/onsi/repos","events_url":"https://api.github.com/users/onsi/events{/privacy}","received_events_url":"https://api.github.com/users/onsi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-04-25T22:33:26Z","updated_at":"2018-04-26T16:04:43Z","closed_at":null,"author_association":"OWNER","pull_request":{"url":"https://api.github.com/repos/onsi/ginkgo/pulls/461","html_url":"https://github.com/onsi/ginkgo/pull/461","diff_url":"https://github.com/onsi/ginkgo/pull/461.diff","patch_url":"https://github.com/onsi/ginkgo/pull/461.patch"},"body":"The experience when parallel tests hang currently sucks.  (See #323 and #206)\r\n\r\nI had some time recently to try out a few ideas and landed on this PR that I'd like feedback on.\r\n\r\nThe basic premise is that when you now run `ginkgo -p -showDebugAddress` Ginkgo will emit a debug http address that delivers a JSON payload that represents:\r\n\r\n- the current running nodes\r\n- the current running test on each node\r\n- any stdout output emitted by that test so far\r\n- any `GinkgoWriter` writes emitted by that test so far\r\n- when the test started running\r\n\r\nThe hope is that this information can be useful to help debug the tests.  The JSON output is a bit noisy (it's a serialization of some of the `reporter` [types](https://github.com/onsi/ginkgo/blob/master/types/types.go)).\r\n\r\nThis would ultimately benefit from some sort of user-friendly client (e.g. `ginkgo debug <DEBUG ADDRESS>` could emit some pretty printed output; or one could imagine a simple web client to render the output nicely).  There are also alternative ways to do this (e.g. send a signal to `ginkgo` to emit this JSON to stdout instead of hitting an HTTP endpoint).\r\n\r\nWould appreciate any and all feedback and also contributions to improve the user experience."},"comment":{"url":"https://api.github.com/repos/onsi/ginkgo/issues/comments/384696974","html_url":"https://github.com/onsi/ginkgo/pull/461#issuecomment-384696974","issue_url":"https://api.github.com/repos/onsi/ginkgo/issues/461","id":384696974,"user":{"login":"jvshahid","id":297621,"avatar_url":"https://avatars1.githubusercontent.com/u/297621?v=4","gravatar_id":"","url":"https://api.github.com/users/jvshahid","html_url":"https://github.com/jvshahid","followers_url":"https://api.github.com/users/jvshahid/followers","following_url":"https://api.github.com/users/jvshahid/following{/other_user}","gists_url":"https://api.github.com/users/jvshahid/gists{/gist_id}","starred_url":"https://api.github.com/users/jvshahid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvshahid/subscriptions","organizations_url":"https://api.github.com/users/jvshahid/orgs","repos_url":"https://api.github.com/users/jvshahid/repos","events_url":"https://api.github.com/users/jvshahid/events{/privacy}","received_events_url":"https://api.github.com/users/jvshahid/received_events","type":"User","site_admin":false},"created_at":"2018-04-26T16:04:43Z","updated_at":"2018-04-26T16:04:43Z","author_association":"COLLABORATOR","body":"If this information is available on the coordinating node why wouldn't a combination of running ginkgo with a new flag (sorry couldn't come up with a good name) & `C-c` be sufficient. If you interrupt ginkgo in this new mode it could print the following for any child node that is still running:\r\n\r\n1. send it sigabrt to capture the stack trace in the stderr\r\n1. wait for the node to exit\r\n1. print the current test that is running on that node and when it was started\r\n1. GingkgoWriter output\r\n1. Standrad out output\r\n1. Standard err output (which should include the stacktrace dump)\r\n\r\nI would like to point out that the stacktrace is very important to me when debugging hanging tests."}}
{"actor":{"display_login":"jvshahid"}}