{"action":"closed","number":439,"pull_request":{"url":"https://api.github.com/repos/etcd-io/jetcd/pulls/439","id":229455055,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI5NDU1MDU1","html_url":"https://github.com/etcd-io/jetcd/pull/439","diff_url":"https://github.com/etcd-io/jetcd/pull/439.diff","patch_url":"https://github.com/etcd-io/jetcd/pull/439.patch","issue_url":"https://api.github.com/repos/etcd-io/jetcd/issues/439","number":439,"state":"closed","locked":false,"title":"jetcd-core(watch): fix resuming watch after server disconnection","user":{"login":"fdimuccio","id":3441610,"node_id":"MDQ6VXNlcjM0NDE2MTA=","avatar_url":"https://avatars1.githubusercontent.com/u/3441610?v=4","gravatar_id":"","url":"https://api.github.com/users/fdimuccio","html_url":"https://github.com/fdimuccio","followers_url":"https://api.github.com/users/fdimuccio/followers","following_url":"https://api.github.com/users/fdimuccio/following{/other_user}","gists_url":"https://api.github.com/users/fdimuccio/gists{/gist_id}","starred_url":"https://api.github.com/users/fdimuccio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fdimuccio/subscriptions","organizations_url":"https://api.github.com/users/fdimuccio/orgs","repos_url":"https://api.github.com/users/fdimuccio/repos","events_url":"https://api.github.com/users/fdimuccio/events{/privacy}","received_events_url":"https://api.github.com/users/fdimuccio/received_events","type":"User","site_admin":false},"body":"Hi,\r\nThis PR should address stale watchers due to etcd node restarts. \r\n\r\nThe watcher stream was not completed after receiving UNAVAILABLE or INTERNAL errors from the etcd cluster making the listener attached to it stale. The reason is that the subsequent call to WatcherImpl::resume does nothing unless the stream is set to null. This patchset completes the stream and sets it to null regardless of the error, in this way the call to resume will always recreate a new stream.\r\n\r\nFeel free to comment and let me know if my assumptions are incorrect.\r\n","created_at":"2018-11-08T17:49:51Z","updated_at":"2018-11-09T09:12:30Z","closed_at":"2018-11-09T09:12:30Z","merged_at":"2018-11-09T09:12:30Z","merge_commit_sha":"5356a61cc2ba5154e0cc10127b239ea93b7b9bc9","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/etcd-io/jetcd/pulls/439/commits","review_comments_url":"https://api.github.com/repos/etcd-io/jetcd/pulls/439/comments","review_comment_url":"https://api.github.com/repos/etcd-io/jetcd/pulls/comments{/number}","comments_url":"https://api.github.com/repos/etcd-io/jetcd/issues/439/comments","statuses_url":"https://api.github.com/repos/etcd-io/jetcd/statuses/bff48ca85ffcd87f6ad93432e0e888b7a3592606","head":{"label":"fdimuccio:watch_resume_fix","ref":"watch_resume_fix","sha":"bff48ca85ffcd87f6ad93432e0e888b7a3592606","user":{"login":"fdimuccio","id":3441610,"node_id":"MDQ6VXNlcjM0NDE2MTA=","avatar_url":"https://avatars1.githubusercontent.com/u/3441610?v=4","gravatar_id":"","url":"https://api.github.com/users/fdimuccio","html_url":"https://github.com/fdimuccio","followers_url":"https://api.github.com/users/fdimuccio/followers","following_url":"https://api.github.com/users/fdimuccio/following{/other_user}","gists_url":"https://api.github.com/users/fdimuccio/gists{/gist_id}","starred_url":"https://api.github.com/users/fdimuccio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fdimuccio/subscriptions","organizations_url":"https://api.github.com/users/fdimuccio/orgs","repos_url":"https://api.github.com/users/fdimuccio/repos","events_url":"https://api.github.com/users/fdimuccio/events{/privacy}","received_events_url":"https://api.github.com/users/fdimuccio/received_events","type":"User","site_admin":false},"repo":{"id":156728776,"node_id":"MDEwOlJlcG9zaXRvcnkxNTY3Mjg3NzY=","name":"jetcd","full_name":"fdimuccio/jetcd","private":false,"owner":{"login":"fdimuccio","id":3441610,"node_id":"MDQ6VXNlcjM0NDE2MTA=","avatar_url":"https://avatars1.githubusercontent.com/u/3441610?v=4","gravatar_id":"","url":"https://api.github.com/users/fdimuccio","html_url":"https://github.com/fdimuccio","followers_url":"https://api.github.com/users/fdimuccio/followers","following_url":"https://api.github.com/users/fdimuccio/following{/other_user}","gists_url":"https://api.github.com/users/fdimuccio/gists{/gist_id}","starred_url":"https://api.github.com/users/fdimuccio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fdimuccio/subscriptions","organizations_url":"https://api.github.com/users/fdimuccio/orgs","repos_url":"https://api.github.com/users/fdimuccio/repos","events_url":"https://api.github.com/users/fdimuccio/events{/privacy}","received_events_url":"https://api.github.com/users/fdimuccio/received_events","type":"User","site_admin":false},"html_url":"https://github.com/fdimuccio/jetcd","description":"etcd java client","fork":true,"url":"https://api.github.com/repos/fdimuccio/jetcd","forks_url":"https://api.github.com/repos/fdimuccio/jetcd/forks","keys_url":"https://api.github.com/repos/fdimuccio/jetcd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fdimuccio/jetcd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fdimuccio/jetcd/teams","hooks_url":"https://api.github.com/repos/fdimuccio/jetcd/hooks","issue_events_url":"https://api.github.com/repos/fdimuccio/jetcd/issues/events{/number}","events_url":"https://api.github.com/repos/fdimuccio/jetcd/events","assignees_url":"https://api.github.com/repos/fdimuccio/jetcd/assignees{/user}","branches_url":"https://api.github.com/repos/fdimuccio/jetcd/branches{/branch}","tags_url":"https://api.github.com/repos/fdimuccio/jetcd/tags","blobs_url":"https://api.github.com/repos/fdimuccio/jetcd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fdimuccio/jetcd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fdimuccio/jetcd/git/refs{/sha}","trees_url":"https://api.github.com/repos/fdimuccio/jetcd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fdimuccio/jetcd/statuses/{sha}","languages_url":"https://api.github.com/repos/fdimuccio/jetcd/languages","stargazers_url":"https://api.github.com/repos/fdimuccio/jetcd/stargazers","contributors_url":"https://api.github.com/repos/fdimuccio/jetcd/contributors","subscribers_url":"https://api.github.com/repos/fdimuccio/jetcd/subscribers","subscription_url":"https://api.github.com/repos/fdimuccio/jetcd/subscription","commits_url":"https://api.github.com/repos/fdimuccio/jetcd/commits{/sha}","git_commits_url":"https://api.github.com/repos/fdimuccio/jetcd/git/commits{/sha}","comments_url":"https://api.github.com/repos/fdimuccio/jetcd/comments{/number}","issue_comment_url":"https://api.github.com/repos/fdimuccio/jetcd/issues/comments{/number}","contents_url":"https://api.github.com/repos/fdimuccio/jetcd/contents/{+path}","compare_url":"https://api.github.com/repos/fdimuccio/jetcd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fdimuccio/jetcd/merges","archive_url":"https://api.github.com/repos/fdimuccio/jetcd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fdimuccio/jetcd/downloads","issues_url":"https://api.github.com/repos/fdimuccio/jetcd/issues{/number}","pulls_url":"https://api.github.com/repos/fdimuccio/jetcd/pulls{/number}","milestones_url":"https://api.github.com/repos/fdimuccio/jetcd/milestones{/number}","notifications_url":"https://api.github.com/repos/fdimuccio/jetcd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fdimuccio/jetcd/labels{/name}","releases_url":"https://api.github.com/repos/fdimuccio/jetcd/releases{/id}","deployments_url":"https://api.github.com/repos/fdimuccio/jetcd/deployments","created_at":"2018-11-08T15:35:33Z","updated_at":"2018-11-08T15:35:36Z","pushed_at":"2018-11-08T17:34:08Z","git_url":"git://github.com/fdimuccio/jetcd.git","ssh_url":"git@github.com:fdimuccio/jetcd.git","clone_url":"https://github.com/fdimuccio/jetcd.git","svn_url":"https://github.com/fdimuccio/jetcd","homepage":null,"size":1177,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"etcd-io:master","ref":"master","sha":"71657020d2c5befc5eb48778e5c234109702651d","user":{"login":"etcd-io","id":41972792,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQxOTcyNzky","avatar_url":"https://avatars3.githubusercontent.com/u/41972792?v=4","gravatar_id":"","url":"https://api.github.com/users/etcd-io","html_url":"https://github.com/etcd-io","followers_url":"https://api.github.com/users/etcd-io/followers","following_url":"https://api.github.com/users/etcd-io/following{/other_user}","gists_url":"https://api.github.com/users/etcd-io/gists{/gist_id}","starred_url":"https://api.github.com/users/etcd-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/etcd-io/subscriptions","organizations_url":"https://api.github.com/users/etcd-io/orgs","repos_url":"https://api.github.com/users/etcd-io/repos","events_url":"https://api.github.com/users/etcd-io/events{/privacy}","received_events_url":"https://api.github.com/users/etcd-io/received_events","type":"Organization","site_admin":false},"repo":{"id":63749548,"node_id":"MDEwOlJlcG9zaXRvcnk2Mzc0OTU0OA==","name":"jetcd","full_name":"etcd-io/jetcd","private":false,"owner":{"login":"etcd-io","id":41972792,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQxOTcyNzky","avatar_url":"https://avatars3.githubusercontent.com/u/41972792?v=4","gravatar_id":"","url":"https://api.github.com/users/etcd-io","html_url":"https://github.com/etcd-io","followers_url":"https://api.github.com/users/etcd-io/followers","following_url":"https://api.github.com/users/etcd-io/following{/other_user}","gists_url":"https://api.github.com/users/etcd-io/gists{/gist_id}","starred_url":"https://api.github.com/users/etcd-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/etcd-io/subscriptions","organizations_url":"https://api.github.com/users/etcd-io/orgs","repos_url":"https://api.github.com/users/etcd-io/repos","events_url":"https://api.github.com/users/etcd-io/events{/privacy}","received_events_url":"https://api.github.com/users/etcd-io/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/etcd-io/jetcd","description":"etcd java client","fork":false,"url":"https://api.github.com/repos/etcd-io/jetcd","forks_url":"https://api.github.com/repos/etcd-io/jetcd/forks","keys_url":"https://api.github.com/repos/etcd-io/jetcd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/etcd-io/jetcd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/etcd-io/jetcd/teams","hooks_url":"https://api.github.com/repos/etcd-io/jetcd/hooks","issue_events_url":"https://api.github.com/repos/etcd-io/jetcd/issues/events{/number}","events_url":"https://api.github.com/repos/etcd-io/jetcd/events","assignees_url":"https://api.github.com/repos/etcd-io/jetcd/assignees{/user}","branches_url":"https://api.github.com/repos/etcd-io/jetcd/branches{/branch}","tags_url":"https://api.github.com/repos/etcd-io/jetcd/tags","blobs_url":"https://api.github.com/repos/etcd-io/jetcd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/etcd-io/jetcd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/etcd-io/jetcd/git/refs{/sha}","trees_url":"https://api.github.com/repos/etcd-io/jetcd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/etcd-io/jetcd/statuses/{sha}","languages_url":"https://api.github.com/repos/etcd-io/jetcd/languages","stargazers_url":"https://api.github.com/repos/etcd-io/jetcd/stargazers","contributors_url":"https://api.github.com/repos/etcd-io/jetcd/contributors","subscribers_url":"https://api.github.com/repos/etcd-io/jetcd/subscribers","subscription_url":"https://api.github.com/repos/etcd-io/jetcd/subscription","commits_url":"https://api.github.com/repos/etcd-io/jetcd/commits{/sha}","git_commits_url":"https://api.github.com/repos/etcd-io/jetcd/git/commits{/sha}","comments_url":"https://api.github.com/repos/etcd-io/jetcd/comments{/number}","issue_comment_url":"https://api.github.com/repos/etcd-io/jetcd/issues/comments{/number}","contents_url":"https://api.github.com/repos/etcd-io/jetcd/contents/{+path}","compare_url":"https://api.github.com/repos/etcd-io/jetcd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/etcd-io/jetcd/merges","archive_url":"https://api.github.com/repos/etcd-io/jetcd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/etcd-io/jetcd/downloads","issues_url":"https://api.github.com/repos/etcd-io/jetcd/issues{/number}","pulls_url":"https://api.github.com/repos/etcd-io/jetcd/pulls{/number}","milestones_url":"https://api.github.com/repos/etcd-io/jetcd/milestones{/number}","notifications_url":"https://api.github.com/repos/etcd-io/jetcd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/etcd-io/jetcd/labels{/name}","releases_url":"https://api.github.com/repos/etcd-io/jetcd/releases{/id}","deployments_url":"https://api.github.com/repos/etcd-io/jetcd/deployments","created_at":"2016-07-20T04:14:11Z","updated_at":"2018-11-09T09:10:44Z","pushed_at":"2018-11-09T09:12:30Z","git_url":"git://github.com/etcd-io/jetcd.git","ssh_url":"git@github.com:etcd-io/jetcd.git","clone_url":"https://github.com/etcd-io/jetcd.git","svn_url":"https://github.com/etcd-io/jetcd","homepage":null,"size":1184,"stargazers_count":341,"watchers_count":341,"language":"Java","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":122,"mirror_url":null,"archived":false,"open_issues_count":19,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":122,"open_issues":19,"watchers":341,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/etcd-io/jetcd/pulls/439"},"html":{"href":"https://github.com/etcd-io/jetcd/pull/439"},"issue":{"href":"https://api.github.com/repos/etcd-io/jetcd/issues/439"},"comments":{"href":"https://api.github.com/repos/etcd-io/jetcd/issues/439/comments"},"review_comments":{"href":"https://api.github.com/repos/etcd-io/jetcd/pulls/439/comments"},"review_comment":{"href":"https://api.github.com/repos/etcd-io/jetcd/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/etcd-io/jetcd/pulls/439/commits"},"statuses":{"href":"https://api.github.com/repos/etcd-io/jetcd/statuses/bff48ca85ffcd87f6ad93432e0e888b7a3592606"}},"author_association":"NONE","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"lburgazzoli","id":1868933,"node_id":"MDQ6VXNlcjE4Njg5MzM=","avatar_url":"https://avatars1.githubusercontent.com/u/1868933?v=4","gravatar_id":"","url":"https://api.github.com/users/lburgazzoli","html_url":"https://github.com/lburgazzoli","followers_url":"https://api.github.com/users/lburgazzoli/followers","following_url":"https://api.github.com/users/lburgazzoli/following{/other_user}","gists_url":"https://api.github.com/users/lburgazzoli/gists{/gist_id}","starred_url":"https://api.github.com/users/lburgazzoli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lburgazzoli/subscriptions","organizations_url":"https://api.github.com/users/lburgazzoli/orgs","repos_url":"https://api.github.com/users/lburgazzoli/repos","events_url":"https://api.github.com/users/lburgazzoli/events{/privacy}","received_events_url":"https://api.github.com/users/lburgazzoli/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":3,"deletions":2,"changed_files":1}}
{"actor":{"display_login":"lburgazzoli"}}