{"action":"created","comment":{"url":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/comments/170079435","pull_request_review_id":98711288,"id":170079435,"diff_hunk":"@@ -975,6 +975,8 @@ def _domain_stopped_coro(self):\n             # an exception gets thrown.\n             self._domain_stopped_event_handled = True\n \n+            while self.get_power_state() == 'Dying':\n+                asyncio.sleep(0.25)","path":"qubes/vm/qubesvm.py","position":null,"original_position":5,"commit_id":"f96fd70f7686e846b1d09957e6e55f9f36b768f4","original_commit_id":"bd29b0578c9cde54fffe6077bfa2fafba30f5c5c","user":{"login":"rustybird","id":6682340,"avatar_url":"https://avatars1.githubusercontent.com/u/6682340?v=4","gravatar_id":"","url":"https://api.github.com/users/rustybird","html_url":"https://github.com/rustybird","followers_url":"https://api.github.com/users/rustybird/followers","following_url":"https://api.github.com/users/rustybird/following{/other_user}","gists_url":"https://api.github.com/users/rustybird/gists{/gist_id}","starred_url":"https://api.github.com/users/rustybird/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rustybird/subscriptions","organizations_url":"https://api.github.com/users/rustybird/orgs","repos_url":"https://api.github.com/users/rustybird/repos","events_url":"https://api.github.com/users/rustybird/events{/privacy}","received_events_url":"https://api.github.com/users/rustybird/received_events","type":"User","site_admin":false},"body":"Gah, fixed.","created_at":"2018-02-22T20:11:37Z","updated_at":"2018-02-22T20:11:37Z","html_url":"https://github.com/QubesOS/qubes-core-admin/pull/197#discussion_r170079435","pull_request_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/197","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/comments/170079435"},"html":{"href":"https://github.com/QubesOS/qubes-core-admin/pull/197#discussion_r170079435"},"pull_request":{"href":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/197"}},"in_reply_to_id":170023294},"pull_request":{"url":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/197","id":170778064,"html_url":"https://github.com/QubesOS/qubes-core-admin/pull/197","diff_url":"https://github.com/QubesOS/qubes-core-admin/pull/197.diff","patch_url":"https://github.com/QubesOS/qubes-core-admin/pull/197.patch","issue_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/issues/197","number":197,"state":"open","locked":false,"title":"Don't fire domain-stopped/-shutdown while VM is still Dying","user":{"login":"rustybird","id":6682340,"avatar_url":"https://avatars1.githubusercontent.com/u/6682340?v=4","gravatar_id":"","url":"https://api.github.com/users/rustybird","html_url":"https://github.com/rustybird","followers_url":"https://api.github.com/users/rustybird/followers","following_url":"https://api.github.com/users/rustybird/following{/other_user}","gists_url":"https://api.github.com/users/rustybird/gists{/gist_id}","starred_url":"https://api.github.com/users/rustybird/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rustybird/subscriptions","organizations_url":"https://api.github.com/users/rustybird/orgs","repos_url":"https://api.github.com/users/rustybird/repos","events_url":"https://api.github.com/users/rustybird/events{/privacy}","received_events_url":"https://api.github.com/users/rustybird/received_events","type":"User","site_admin":false},"body":"Lots of code expects the VM to be Halted after receiving one of these events, but it could also be Dying or Crashed. Get rid of the Dying case at least, by waiting until the VM has transitioned out of it.\r\n\r\nFixes e.g. the following DispVM cleanup bug:\r\n\r\n    $ qvm-create -C DispVM --prop auto_cleanup=True -l red dispvm\r\n    $ qvm-start dispvm\r\n    $ qvm-shutdown --wait dispvm  # this won't remove dispvm\r\n    $ qvm-start dispvm\r\n    $ qvm-kill dispvm  # but this will","created_at":"2018-02-22T15:14:50Z","updated_at":"2018-02-22T20:11:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"43c1c648795524d74d5d79f9374b89ee28ca3cf3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/197/commits","review_comments_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/197/comments","review_comment_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/issues/197/comments","statuses_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/statuses/f96fd70f7686e846b1d09957e6e55f9f36b768f4","head":{"label":"rustybird:diediedie","ref":"diediedie","sha":"f96fd70f7686e846b1d09957e6e55f9f36b768f4","user":{"login":"rustybird","id":6682340,"avatar_url":"https://avatars1.githubusercontent.com/u/6682340?v=4","gravatar_id":"","url":"https://api.github.com/users/rustybird","html_url":"https://github.com/rustybird","followers_url":"https://api.github.com/users/rustybird/followers","following_url":"https://api.github.com/users/rustybird/following{/other_user}","gists_url":"https://api.github.com/users/rustybird/gists{/gist_id}","starred_url":"https://api.github.com/users/rustybird/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rustybird/subscriptions","organizations_url":"https://api.github.com/users/rustybird/orgs","repos_url":"https://api.github.com/users/rustybird/repos","events_url":"https://api.github.com/users/rustybird/events{/privacy}","received_events_url":"https://api.github.com/users/rustybird/received_events","type":"User","site_admin":false},"repo":{"id":45927031,"name":"qubes-core-admin","full_name":"rustybird/qubes-core-admin","owner":{"login":"rustybird","id":6682340,"avatar_url":"https://avatars1.githubusercontent.com/u/6682340?v=4","gravatar_id":"","url":"https://api.github.com/users/rustybird","html_url":"https://github.com/rustybird","followers_url":"https://api.github.com/users/rustybird/followers","following_url":"https://api.github.com/users/rustybird/following{/other_user}","gists_url":"https://api.github.com/users/rustybird/gists{/gist_id}","starred_url":"https://api.github.com/users/rustybird/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rustybird/subscriptions","organizations_url":"https://api.github.com/users/rustybird/orgs","repos_url":"https://api.github.com/users/rustybird/repos","events_url":"https://api.github.com/users/rustybird/events{/privacy}","received_events_url":"https://api.github.com/users/rustybird/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rustybird/qubes-core-admin","description":"Qubes component: core-admin","fork":true,"url":"https://api.github.com/repos/rustybird/qubes-core-admin","forks_url":"https://api.github.com/repos/rustybird/qubes-core-admin/forks","keys_url":"https://api.github.com/repos/rustybird/qubes-core-admin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rustybird/qubes-core-admin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rustybird/qubes-core-admin/teams","hooks_url":"https://api.github.com/repos/rustybird/qubes-core-admin/hooks","issue_events_url":"https://api.github.com/repos/rustybird/qubes-core-admin/issues/events{/number}","events_url":"https://api.github.com/repos/rustybird/qubes-core-admin/events","assignees_url":"https://api.github.com/repos/rustybird/qubes-core-admin/assignees{/user}","branches_url":"https://api.github.com/repos/rustybird/qubes-core-admin/branches{/branch}","tags_url":"https://api.github.com/repos/rustybird/qubes-core-admin/tags","blobs_url":"https://api.github.com/repos/rustybird/qubes-core-admin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rustybird/qubes-core-admin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rustybird/qubes-core-admin/git/refs{/sha}","trees_url":"https://api.github.com/repos/rustybird/qubes-core-admin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rustybird/qubes-core-admin/statuses/{sha}","languages_url":"https://api.github.com/repos/rustybird/qubes-core-admin/languages","stargazers_url":"https://api.github.com/repos/rustybird/qubes-core-admin/stargazers","contributors_url":"https://api.github.com/repos/rustybird/qubes-core-admin/contributors","subscribers_url":"https://api.github.com/repos/rustybird/qubes-core-admin/subscribers","subscription_url":"https://api.github.com/repos/rustybird/qubes-core-admin/subscription","commits_url":"https://api.github.com/repos/rustybird/qubes-core-admin/commits{/sha}","git_commits_url":"https://api.github.com/repos/rustybird/qubes-core-admin/git/commits{/sha}","comments_url":"https://api.github.com/repos/rustybird/qubes-core-admin/comments{/number}","issue_comment_url":"https://api.github.com/repos/rustybird/qubes-core-admin/issues/comments{/number}","contents_url":"https://api.github.com/repos/rustybird/qubes-core-admin/contents/{+path}","compare_url":"https://api.github.com/repos/rustybird/qubes-core-admin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rustybird/qubes-core-admin/merges","archive_url":"https://api.github.com/repos/rustybird/qubes-core-admin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rustybird/qubes-core-admin/downloads","issues_url":"https://api.github.com/repos/rustybird/qubes-core-admin/issues{/number}","pulls_url":"https://api.github.com/repos/rustybird/qubes-core-admin/pulls{/number}","milestones_url":"https://api.github.com/repos/rustybird/qubes-core-admin/milestones{/number}","notifications_url":"https://api.github.com/repos/rustybird/qubes-core-admin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rustybird/qubes-core-admin/labels{/name}","releases_url":"https://api.github.com/repos/rustybird/qubes-core-admin/releases{/id}","deployments_url":"https://api.github.com/repos/rustybird/qubes-core-admin/deployments","created_at":"2015-11-10T17:04:44Z","updated_at":"2015-11-25T08:18:45Z","pushed_at":"2018-02-22T19:54:12Z","git_url":"git://github.com/rustybird/qubes-core-admin.git","ssh_url":"git@github.com:rustybird/qubes-core-admin.git","clone_url":"https://github.com/rustybird/qubes-core-admin.git","svn_url":"https://github.com/rustybird/qubes-core-admin","homepage":null,"size":13134,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"dvm"}},"base":{"label":"QubesOS:master","ref":"master","sha":"1562defd4251d2e62339586bcca5c42e6525e1be","user":{"login":"QubesOS","id":10213205,"avatar_url":"https://avatars3.githubusercontent.com/u/10213205?v=4","gravatar_id":"","url":"https://api.github.com/users/QubesOS","html_url":"https://github.com/QubesOS","followers_url":"https://api.github.com/users/QubesOS/followers","following_url":"https://api.github.com/users/QubesOS/following{/other_user}","gists_url":"https://api.github.com/users/QubesOS/gists{/gist_id}","starred_url":"https://api.github.com/users/QubesOS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/QubesOS/subscriptions","organizations_url":"https://api.github.com/users/QubesOS/orgs","repos_url":"https://api.github.com/users/QubesOS/repos","events_url":"https://api.github.com/users/QubesOS/events{/privacy}","received_events_url":"https://api.github.com/users/QubesOS/received_events","type":"Organization","site_admin":false},"repo":{"id":30624141,"name":"qubes-core-admin","full_name":"QubesOS/qubes-core-admin","owner":{"login":"QubesOS","id":10213205,"avatar_url":"https://avatars3.githubusercontent.com/u/10213205?v=4","gravatar_id":"","url":"https://api.github.com/users/QubesOS","html_url":"https://github.com/QubesOS","followers_url":"https://api.github.com/users/QubesOS/followers","following_url":"https://api.github.com/users/QubesOS/following{/other_user}","gists_url":"https://api.github.com/users/QubesOS/gists{/gist_id}","starred_url":"https://api.github.com/users/QubesOS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/QubesOS/subscriptions","organizations_url":"https://api.github.com/users/QubesOS/orgs","repos_url":"https://api.github.com/users/QubesOS/repos","events_url":"https://api.github.com/users/QubesOS/events{/privacy}","received_events_url":"https://api.github.com/users/QubesOS/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/QubesOS/qubes-core-admin","description":"Qubes component: core-admin","fork":false,"url":"https://api.github.com/repos/QubesOS/qubes-core-admin","forks_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/forks","keys_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/teams","hooks_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/hooks","issue_events_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/issues/events{/number}","events_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/events","assignees_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/assignees{/user}","branches_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/branches{/branch}","tags_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/tags","blobs_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/git/refs{/sha}","trees_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/statuses/{sha}","languages_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/languages","stargazers_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/stargazers","contributors_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/contributors","subscribers_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/subscribers","subscription_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/subscription","commits_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/commits{/sha}","git_commits_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/git/commits{/sha}","comments_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/comments{/number}","issue_comment_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/issues/comments{/number}","contents_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/contents/{+path}","compare_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/merges","archive_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/downloads","issues_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/issues{/number}","pulls_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls{/number}","milestones_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/milestones{/number}","notifications_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/labels{/name}","releases_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/releases{/id}","deployments_url":"https://api.github.com/repos/QubesOS/qubes-core-admin/deployments","created_at":"2015-02-11T01:27:30Z","updated_at":"2018-02-17T05:48:29Z","pushed_at":"2018-02-22T19:54:14Z","git_url":"git://github.com/QubesOS/qubes-core-admin.git","ssh_url":"git@github.com:QubesOS/qubes-core-admin.git","clone_url":"https://github.com/QubesOS/qubes-core-admin.git","svn_url":"https://github.com/QubesOS/qubes-core-admin","homepage":null,"size":13477,"stargazers_count":40,"watchers_count":40,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":51,"mirror_url":null,"archived":false,"open_issues_count":2,"license":{"key":"lgpl-2.1","name":"GNU Lesser General Public License v2.1","spdx_id":"LGPL-2.1","url":"https://api.github.com/licenses/lgpl-2.1"},"forks":51,"open_issues":2,"watchers":40,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/197"},"html":{"href":"https://github.com/QubesOS/qubes-core-admin/pull/197"},"issue":{"href":"https://api.github.com/repos/QubesOS/qubes-core-admin/issues/197"},"comments":{"href":"https://api.github.com/repos/QubesOS/qubes-core-admin/issues/197/comments"},"review_comments":{"href":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/197/comments"},"review_comment":{"href":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/QubesOS/qubes-core-admin/pulls/197/commits"},"statuses":{"href":"https://api.github.com/repos/QubesOS/qubes-core-admin/statuses/f96fd70f7686e846b1d09957e6e55f9f36b768f4"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"rustybird"}}