{"action":"opened","issue":{"url":"https://api.github.com/repos/dw/mitogen/issues/286","repository_url":"https://api.github.com/repos/dw/mitogen","labels_url":"https://api.github.com/repos/dw/mitogen/issues/286/labels{/name}","comments_url":"https://api.github.com/repos/dw/mitogen/issues/286/comments","events_url":"https://api.github.com/repos/dw/mitogen/issues/286/events","html_url":"https://github.com/dw/mitogen/issues/286","id":335225684,"node_id":"MDU6SXNzdWUzMzUyMjU2ODQ=","number":286,"title":"core: broken pipe while writing to waker","user":{"login":"dw","id":2315,"node_id":"MDQ6VXNlcjIzMTU=","avatar_url":"https://avatars0.githubusercontent.com/u/2315?v=4","gravatar_id":"","url":"https://api.github.com/users/dw","html_url":"https://github.com/dw","followers_url":"https://api.github.com/users/dw/followers","following_url":"https://api.github.com/users/dw/following{/other_user}","gists_url":"https://api.github.com/users/dw/gists{/gist_id}","starred_url":"https://api.github.com/users/dw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dw/subscriptions","organizations_url":"https://api.github.com/users/dw/orgs","repos_url":"https://api.github.com/users/dw/repos","events_url":"https://api.github.com/users/dw/events{/privacy}","received_events_url":"https://api.github.com/users/dw/received_events","type":"User","site_admin":false},"labels":[{"id":424449778,"node_id":"MDU6TGFiZWw0MjQ0NDk3Nzg=","url":"https://api.github.com/repos/dw/mitogen/labels/bug","name":"bug","color":"ee0701","default":true},{"id":424449780,"node_id":"MDU6TGFiZWw0MjQ0NDk3ODA=","url":"https://api.github.com/repos/dw/mitogen/labels/core","name":"core","color":"84b6eb","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-06-25T00:17:59Z","updated_at":"2018-06-25T00:17:59Z","closed_at":null,"author_association":"OWNER","body":"````\r\n00:14:29 D mitogen.ctx.fork.5784: mitogen: _dispatch_calls: Caller is not authorized to invoke 'privileged_op' of service 'service_test.MyService'\r\n00:14:29 D mitogen: Broker(0x7f44cb0c4950).shutdown()\r\n00:14:29 D mitogen: Waker(Broker(0x7f44cb0c4950) rfd=66, wfd=68).on_shutdown()\r\n00:14:29 D mitogen: Waker(Broker(0x7f44cb0c4950) rfd=66, wfd=68).on_disconnect()\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5765') closing CALL_FUNCTION channel\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5784') closing CALL_FUNCTION channel\r\n00:14:29 D mitogen.ctx.fork.5784: mitogen: _on_shutdown_msg(Message(2, 0, 0, 106, 0, ''..0))\r\n00:14:29 D mitogen.ctx.fork.5765: mitogen: _on_shutdown_msg(Message(1, 0, 0, 106, 0, ''..0))\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5765'): child process still alive, sending SIGTERM\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5765').on_disconnect()\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5765') is gone; propagating DEL_ROUTE for set([1])\r\n00:14:29 D mitogen: Router(Broker(0x7f44cb0c4950)).del_route(1)\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5784'): child process exit status was 15\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5784').on_disconnect()\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5784') is gone; propagating DEL_ROUTE for set([2])\r\n00:14:29 D mitogen: Router(Broker(0x7f44cb0c4950)).del_route(2)\r\nok\r\ntest_sibling_unprivileged_ok (service_test.PermissionTest) ... 00:14:29 D mitogen: mitogen.fork.Stream('default').connect()\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5787').connect(): child process stdin/stdout=118\r\n00:14:29 D mitogen: register(Context(1, 'fork.5787'), mitogen.fork.Stream('fork.5787'))\r\n00:14:29 D mitogen: Context(1, 'fork.5787').call_service_async(<class 'service_test.MyService'>, 'get_id', {})\r\n00:14:29 D mitogen: Context(1, 'fork.5787').send_async(Message(1, 0, 0, 110, 1000, '\\x80\\x02U\\x16service_test.MyServiceq\\x01U\\x06get_idq\\x02}q\\x03\\x87q\\x04.'..45))\r\n00:14:29 E mitogen.ctx.fork.5787: mitogen: Router(Broker(0x7f44cb05ee50)): no route for Message(0, 1, 1, 102, None, \"mitogen\\x0010\\x00register(Context(0, 'master'), mitogen.\"..72), my ID is 1\r\n00:14:29 D mitogen.ctx.fork.5787: mitogen: Connected to Context(0, 'master'); my ID is 1, PID is 5787\r\n00:14:29 D mitogen.ctx.fork.5787: mitogen: Recovered sys.executable: '/home/travis/virtualenv/python2.7.14/bin/python'\r\n00:14:29 D mitogen.ctx.fork.5787: mitogen: mitogen.service.Pool(0x7f44c8307cd0, size=16, th='Thread-13'): initialized\r\n00:14:29 D mitogen: mitogen.fork.Stream('default').connect()\r\n00:14:29 D mitogen: mitogen.fork.Stream('fork.5806').connect(): child process stdin/stdout=120\r\n00:14:29 D mitogen: register(Context(2, 'fork.5806'), mitogen.fork.Stream('fork.5806'))\r\n00:14:29 D mitogen: Context(2, 'fork.5806').call_async(<function call_service_in at 0x7f44cb0c9ed8>, *(Context(1, 'fork.5787'), 'service_test.MyService', 'unprivileged_op'), **{})\r\n00:14:29 D mitogen: Context(2, 'fork.5806').send_async(Message(2, 0, 0, 101, 1001, '\\x80\\x02(U\\x0cservice_testq\\x01NU\\x0fcall_service_inq\\x02cmitogen.co'..147))\r\n00:14:29 D mitogen.ctx.fork.5806: mitogen: register(Context(0, 'master'), mitogen.core.Stream('parent'))\r\n00:14:29 D mitogen.ctx.fork.5806: mitogen: Connected to Context(0, 'master'); my ID is 2, PID is 5806\r\n00:14:29 D mitogen.ctx.fork.5806: mitogen: Recovered sys.executable: '/home/travis/virtualenv/python2.7.14/bin/python'\r\n00:14:29 D mitogen.ctx.fork.5806: mitogen: _dispatch_calls(('service_test', None, 'call_service_in', (Context(1, 'fork.5787'), 'service_test.MyService', 'unprivileged_op'), {}))\r\n00:14:29 D mitogen.ctx.fork.5806: mitogen: Context(1, 'fork.5787').call_service_async('service_test.MyService', 'unprivileged_op', {})\r\n00:14:29 D mitogen.ctx.fork.5806: mitogen: Context(1, 'fork.5787').send_async(Message(1, 2, 2, 110, 1000, '\\x80\\x02U\\x16service_test.MyServiceq\\x01U\\x0funprivileged_opq\\x02}q\\x03'..54))\r\n00:14:30 E mitogen.ctx.fork.5787: mitogen: Router(Broker(0x7f44cb05ee50))._invoke(Message(1, 2, 2, 110, 1000, '\\x80\\x02U\\x16service_test.MyServiceq\\x01U\\x0funprivileged_opq\\x02}q\\x03'..54)): <bound method Receiver._on_receive of Receiver(Router(Broker(0x7f44cb05ee50)), 110)> crashed\r\nTraceback (most recent call last):\r\n  File \"/home/travis/build/dw/mitogen/mitogen/core.py\", line 1474, in _invoke\r\n    fn(msg)\r\n  File \"/home/travis/build/dw/mitogen/mitogen/core.py\", line 493, in _on_receive\r\n    self.notify(self)\r\n  File \"/home/travis/build/dw/mitogen/mitogen/select.py\", line 51, in _put\r\n    self._latch.put(value)\r\n  File \"/home/travis/build/dw/mitogen/mitogen/core.py\", line 1220, in put\r\n    self._wake(sock)\r\n  File \"/home/travis/build/dw/mitogen/mitogen/core.py\", line 1226, in _wake\r\n    os.write(sock.fileno(), '\\x7f')\r\nOSError: [Errno 32] Broken pipe\r\n````"}}
{"actor":{"display_login":"dw"}}