{"action":"created","issue":{"url":"https://api.github.com/repos/i3/i3/issues/2280","repository_url":"https://api.github.com/repos/i3/i3","labels_url":"https://api.github.com/repos/i3/i3/issues/2280/labels{/name}","comments_url":"https://api.github.com/repos/i3/i3/issues/2280/comments","events_url":"https://api.github.com/repos/i3/i3/issues/2280/events","html_url":"https://github.com/i3/i3/issues/2280","id":146273909,"number":2280,"title":"i3 freezes when ipc client becomes unresponsive","user":{"login":"cornerman","id":1043127,"avatar_url":"https://avatars.githubusercontent.com/u/1043127?v=3","gravatar_id":"","url":"https://api.github.com/users/cornerman","html_url":"https://github.com/cornerman","followers_url":"https://api.github.com/users/cornerman/followers","following_url":"https://api.github.com/users/cornerman/following{/other_user}","gists_url":"https://api.github.com/users/cornerman/gists{/gist_id}","starred_url":"https://api.github.com/users/cornerman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cornerman/subscriptions","organizations_url":"https://api.github.com/users/cornerman/orgs","repos_url":"https://api.github.com/users/cornerman/repos","events_url":"https://api.github.com/users/cornerman/events{/privacy}","received_events_url":"https://api.github.com/users/cornerman/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/i3/i3/labels/4.12","name":"4.12","color":"009800"},{"url":"https://api.github.com/repos/i3/i3/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2016-04-06T10:53:08Z","updated_at":"2016-04-07T16:06:49Z","closed_at":null,"body":"Output of `i3 --moreversion 2>&- || i3 --version`:\r\n\r\nBinary i3 version:  4.12-21-g66d9c98 (2016-04-04, branch \"next\") © 2009 Michael Stapelberg and contributors\r\nRunning i3 version: 4.12-21-g66d9c98 (2016-04-04, branch \"next\") (pid 16730)\r\nLoaded i3 config: /home/cornerman/.i3/config (Last modified: Wed 06 Apr 2016 01:41:05 PM CEST, 32 seconds ago)\r\n\r\nThe i3 binary you just called: /usr/bin/i3\r\nThe i3 binary you are running: i3\r\n\r\nURL to a logfile as per http://i3wm.org/docs/debugging.html:\r\n\r\nhttp://logs.i3wm.org/logs/5728116278296576.bz2\r\n\r\n**What I did:**\r\n\r\nRegister an IPC event in the statusline generator. Then switch to fullscreen mode or hide i3bar, so the bar is hidden and the status command gets a SIGSTOP. Afterwards trigger the registered IPC event a few times.\r\n\r\n**What I saw:**\r\n\r\ni3 freezes while trying to send the ipc event to the stopped client, which does not read new events anymore. [Here](https://github.com/i3/i3/blob/eb837cbd009dab61e713ca12c0d882d707c3f2a3/libi3/safewrappers.c#L76) write returns an EAGAIN error because it would block with the full socket. Therefore, it will run in an infinite loop.\r\n\r\n**What I expected instead:**\r\n\r\ni3 should keep running and should not depend on the health of its IPC client. If sending an event fails, it should be ignored. Even though, one could argue that the statusline generator might not be the right place to register events, this happens for any client that becomes unresponsive.\r\n"},"comment":{"url":"https://api.github.com/repos/i3/i3/issues/comments/206971687","html_url":"https://github.com/i3/i3/issues/2280#issuecomment-206971687","issue_url":"https://api.github.com/repos/i3/i3/issues/2280","id":206971687,"user":{"login":"Airblader","id":2392216,"avatar_url":"https://avatars.githubusercontent.com/u/2392216?v=3","gravatar_id":"","url":"https://api.github.com/users/Airblader","html_url":"https://github.com/Airblader","followers_url":"https://api.github.com/users/Airblader/followers","following_url":"https://api.github.com/users/Airblader/following{/other_user}","gists_url":"https://api.github.com/users/Airblader/gists{/gist_id}","starred_url":"https://api.github.com/users/Airblader/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Airblader/subscriptions","organizations_url":"https://api.github.com/users/Airblader/orgs","repos_url":"https://api.github.com/users/Airblader/repos","events_url":"https://api.github.com/users/Airblader/events{/privacy}","received_events_url":"https://api.github.com/users/Airblader/received_events","type":"User","site_admin":false},"created_at":"2016-04-07T16:06:49Z","updated_at":"2016-04-07T16:06:49Z","body":"Hm. Yeah, valid point. "}}