{"action":"opened","number":28872,"pull_request":{"url":"https://api.github.com/repos/cockroachdb/cockroach/pulls/28872","id":209651803,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA5NjUxODAz","html_url":"https://github.com/cockroachdb/cockroach/pull/28872","diff_url":"https://github.com/cockroachdb/cockroach/pull/28872.diff","patch_url":"https://github.com/cockroachdb/cockroach/pull/28872.patch","issue_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/28872","number":28872,"state":"open","locked":false,"title":"kv: lie better about commits that are really rollbacks","user":{"login":"andreimatei","id":377201,"node_id":"MDQ6VXNlcjM3NzIwMQ==","avatar_url":"https://avatars1.githubusercontent.com/u/377201?v=4","gravatar_id":"","url":"https://api.github.com/users/andreimatei","html_url":"https://github.com/andreimatei","followers_url":"https://api.github.com/users/andreimatei/followers","following_url":"https://api.github.com/users/andreimatei/following{/other_user}","gists_url":"https://api.github.com/users/andreimatei/gists{/gist_id}","starred_url":"https://api.github.com/users/andreimatei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreimatei/subscriptions","organizations_url":"https://api.github.com/users/andreimatei/orgs","repos_url":"https://api.github.com/users/andreimatei/repos","events_url":"https://api.github.com/users/andreimatei/events{/privacy}","received_events_url":"https://api.github.com/users/andreimatei/received_events","type":"User","site_admin":false},"body":"When a client tries to commit a txn that has performed writes at an old\r\nepoch but has only done reads at the current epoch, one of the\r\nTxnCoordSender interceptors turns the commit into a rollback (for\r\nreasons described in the code).\r\nThis patch completes that interceptor's lie by updating the txn status\r\nupon success to COMMITTED instead of ABORTED. Since a commit is what the\r\nclient asked for, it seems sane to pretend as best we can that that's\r\nwhat it got. In particular, this is important for the sql module, where\r\nthe ConnExecutor looks at the txn proto's status to discriminate between\r\ncases where a \"1pc planNode\" already committed an implicit txn versus\r\nsituations where it needs to commit it itself. This was causing the\r\nexecutor to think the txn was not committed and to attempt to commit\r\nagain, which resulted in an error.\r\nI don't know if we like the ConnExecutor looking at the proto status,\r\nbut I'll leave that alone.\r\n\r\nFixes #28554\r\nFixes #28796\r\n\r\nRelease note: None","created_at":"2018-08-20T21:41:37Z","updated_at":"2018-08-20T21:41:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":{"login":"nvanbenschoten","id":5438456,"node_id":"MDQ6VXNlcjU0Mzg0NTY=","avatar_url":"https://avatars3.githubusercontent.com/u/5438456?v=4","gravatar_id":"","url":"https://api.github.com/users/nvanbenschoten","html_url":"https://github.com/nvanbenschoten","followers_url":"https://api.github.com/users/nvanbenschoten/followers","following_url":"https://api.github.com/users/nvanbenschoten/following{/other_user}","gists_url":"https://api.github.com/users/nvanbenschoten/gists{/gist_id}","starred_url":"https://api.github.com/users/nvanbenschoten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nvanbenschoten/subscriptions","organizations_url":"https://api.github.com/users/nvanbenschoten/orgs","repos_url":"https://api.github.com/users/nvanbenschoten/repos","events_url":"https://api.github.com/users/nvanbenschoten/events{/privacy}","received_events_url":"https://api.github.com/users/nvanbenschoten/received_events","type":"User","site_admin":false},"assignees":[{"login":"nvanbenschoten","id":5438456,"node_id":"MDQ6VXNlcjU0Mzg0NTY=","avatar_url":"https://avatars3.githubusercontent.com/u/5438456?v=4","gravatar_id":"","url":"https://api.github.com/users/nvanbenschoten","html_url":"https://github.com/nvanbenschoten","followers_url":"https://api.github.com/users/nvanbenschoten/followers","following_url":"https://api.github.com/users/nvanbenschoten/following{/other_user}","gists_url":"https://api.github.com/users/nvanbenschoten/gists{/gist_id}","starred_url":"https://api.github.com/users/nvanbenschoten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nvanbenschoten/subscriptions","organizations_url":"https://api.github.com/users/nvanbenschoten/orgs","repos_url":"https://api.github.com/users/nvanbenschoten/repos","events_url":"https://api.github.com/users/nvanbenschoten/events{/privacy}","received_events_url":"https://api.github.com/users/nvanbenschoten/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/cockroachdb/cockroach/pulls/28872/commits","review_comments_url":"https://api.github.com/repos/cockroachdb/cockroach/pulls/28872/comments","review_comment_url":"https://api.github.com/repos/cockroachdb/cockroach/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/28872/comments","statuses_url":"https://api.github.com/repos/cockroachdb/cockroach/statuses/bcbe89ac8975ae05480e48fe55eb857cb51bf216","head":{"label":"andreimatei:txn-finalized","ref":"txn-finalized","sha":"bcbe89ac8975ae05480e48fe55eb857cb51bf216","user":{"login":"andreimatei","id":377201,"node_id":"MDQ6VXNlcjM3NzIwMQ==","avatar_url":"https://avatars1.githubusercontent.com/u/377201?v=4","gravatar_id":"","url":"https://api.github.com/users/andreimatei","html_url":"https://github.com/andreimatei","followers_url":"https://api.github.com/users/andreimatei/followers","following_url":"https://api.github.com/users/andreimatei/following{/other_user}","gists_url":"https://api.github.com/users/andreimatei/gists{/gist_id}","starred_url":"https://api.github.com/users/andreimatei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreimatei/subscriptions","organizations_url":"https://api.github.com/users/andreimatei/orgs","repos_url":"https://api.github.com/users/andreimatei/repos","events_url":"https://api.github.com/users/andreimatei/events{/privacy}","received_events_url":"https://api.github.com/users/andreimatei/received_events","type":"User","site_admin":false},"repo":{"id":47720332,"node_id":"MDEwOlJlcG9zaXRvcnk0NzcyMDMzMg==","name":"cockroach","full_name":"andreimatei/cockroach","owner":{"login":"andreimatei","id":377201,"node_id":"MDQ6VXNlcjM3NzIwMQ==","avatar_url":"https://avatars1.githubusercontent.com/u/377201?v=4","gravatar_id":"","url":"https://api.github.com/users/andreimatei","html_url":"https://github.com/andreimatei","followers_url":"https://api.github.com/users/andreimatei/followers","following_url":"https://api.github.com/users/andreimatei/following{/other_user}","gists_url":"https://api.github.com/users/andreimatei/gists{/gist_id}","starred_url":"https://api.github.com/users/andreimatei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreimatei/subscriptions","organizations_url":"https://api.github.com/users/andreimatei/orgs","repos_url":"https://api.github.com/users/andreimatei/repos","events_url":"https://api.github.com/users/andreimatei/events{/privacy}","received_events_url":"https://api.github.com/users/andreimatei/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/andreimatei/cockroach","description":"A Scalable, Geo-Replicated, Transactional Datastore","fork":true,"url":"https://api.github.com/repos/andreimatei/cockroach","forks_url":"https://api.github.com/repos/andreimatei/cockroach/forks","keys_url":"https://api.github.com/repos/andreimatei/cockroach/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andreimatei/cockroach/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andreimatei/cockroach/teams","hooks_url":"https://api.github.com/repos/andreimatei/cockroach/hooks","issue_events_url":"https://api.github.com/repos/andreimatei/cockroach/issues/events{/number}","events_url":"https://api.github.com/repos/andreimatei/cockroach/events","assignees_url":"https://api.github.com/repos/andreimatei/cockroach/assignees{/user}","branches_url":"https://api.github.com/repos/andreimatei/cockroach/branches{/branch}","tags_url":"https://api.github.com/repos/andreimatei/cockroach/tags","blobs_url":"https://api.github.com/repos/andreimatei/cockroach/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andreimatei/cockroach/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andreimatei/cockroach/git/refs{/sha}","trees_url":"https://api.github.com/repos/andreimatei/cockroach/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andreimatei/cockroach/statuses/{sha}","languages_url":"https://api.github.com/repos/andreimatei/cockroach/languages","stargazers_url":"https://api.github.com/repos/andreimatei/cockroach/stargazers","contributors_url":"https://api.github.com/repos/andreimatei/cockroach/contributors","subscribers_url":"https://api.github.com/repos/andreimatei/cockroach/subscribers","subscription_url":"https://api.github.com/repos/andreimatei/cockroach/subscription","commits_url":"https://api.github.com/repos/andreimatei/cockroach/commits{/sha}","git_commits_url":"https://api.github.com/repos/andreimatei/cockroach/git/commits{/sha}","comments_url":"https://api.github.com/repos/andreimatei/cockroach/comments{/number}","issue_comment_url":"https://api.github.com/repos/andreimatei/cockroach/issues/comments{/number}","contents_url":"https://api.github.com/repos/andreimatei/cockroach/contents/{+path}","compare_url":"https://api.github.com/repos/andreimatei/cockroach/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andreimatei/cockroach/merges","archive_url":"https://api.github.com/repos/andreimatei/cockroach/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andreimatei/cockroach/downloads","issues_url":"https://api.github.com/repos/andreimatei/cockroach/issues{/number}","pulls_url":"https://api.github.com/repos/andreimatei/cockroach/pulls{/number}","milestones_url":"https://api.github.com/repos/andreimatei/cockroach/milestones{/number}","notifications_url":"https://api.github.com/repos/andreimatei/cockroach/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andreimatei/cockroach/labels{/name}","releases_url":"https://api.github.com/repos/andreimatei/cockroach/releases{/id}","deployments_url":"https://api.github.com/repos/andreimatei/cockroach/deployments","created_at":"2015-12-09T21:34:16Z","updated_at":"2016-05-05T22:01:56Z","pushed_at":"2018-08-20T21:37:19Z","git_url":"git://github.com/andreimatei/cockroach.git","ssh_url":"git@github.com:andreimatei/cockroach.git","clone_url":"https://github.com/andreimatei/cockroach.git","svn_url":"https://github.com/andreimatei/cockroach","homepage":null,"size":530066,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"cockroachdb:master","ref":"master","sha":"120f5331e691378822018d608bfab1adaf287428","user":{"login":"cockroachdb","id":6748139,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3NDgxMzk=","avatar_url":"https://avatars3.githubusercontent.com/u/6748139?v=4","gravatar_id":"","url":"https://api.github.com/users/cockroachdb","html_url":"https://github.com/cockroachdb","followers_url":"https://api.github.com/users/cockroachdb/followers","following_url":"https://api.github.com/users/cockroachdb/following{/other_user}","gists_url":"https://api.github.com/users/cockroachdb/gists{/gist_id}","starred_url":"https://api.github.com/users/cockroachdb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cockroachdb/subscriptions","organizations_url":"https://api.github.com/users/cockroachdb/orgs","repos_url":"https://api.github.com/users/cockroachdb/repos","events_url":"https://api.github.com/users/cockroachdb/events{/privacy}","received_events_url":"https://api.github.com/users/cockroachdb/received_events","type":"Organization","site_admin":false},"repo":{"id":16563587,"node_id":"MDEwOlJlcG9zaXRvcnkxNjU2MzU4Nw==","name":"cockroach","full_name":"cockroachdb/cockroach","owner":{"login":"cockroachdb","id":6748139,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY3NDgxMzk=","avatar_url":"https://avatars3.githubusercontent.com/u/6748139?v=4","gravatar_id":"","url":"https://api.github.com/users/cockroachdb","html_url":"https://github.com/cockroachdb","followers_url":"https://api.github.com/users/cockroachdb/followers","following_url":"https://api.github.com/users/cockroachdb/following{/other_user}","gists_url":"https://api.github.com/users/cockroachdb/gists{/gist_id}","starred_url":"https://api.github.com/users/cockroachdb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cockroachdb/subscriptions","organizations_url":"https://api.github.com/users/cockroachdb/orgs","repos_url":"https://api.github.com/users/cockroachdb/repos","events_url":"https://api.github.com/users/cockroachdb/events{/privacy}","received_events_url":"https://api.github.com/users/cockroachdb/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cockroachdb/cockroach","description":"CockroachDB - the open source, cloud-native SQL database.","fork":false,"url":"https://api.github.com/repos/cockroachdb/cockroach","forks_url":"https://api.github.com/repos/cockroachdb/cockroach/forks","keys_url":"https://api.github.com/repos/cockroachdb/cockroach/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cockroachdb/cockroach/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cockroachdb/cockroach/teams","hooks_url":"https://api.github.com/repos/cockroachdb/cockroach/hooks","issue_events_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/events{/number}","events_url":"https://api.github.com/repos/cockroachdb/cockroach/events","assignees_url":"https://api.github.com/repos/cockroachdb/cockroach/assignees{/user}","branches_url":"https://api.github.com/repos/cockroachdb/cockroach/branches{/branch}","tags_url":"https://api.github.com/repos/cockroachdb/cockroach/tags","blobs_url":"https://api.github.com/repos/cockroachdb/cockroach/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cockroachdb/cockroach/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cockroachdb/cockroach/git/refs{/sha}","trees_url":"https://api.github.com/repos/cockroachdb/cockroach/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cockroachdb/cockroach/statuses/{sha}","languages_url":"https://api.github.com/repos/cockroachdb/cockroach/languages","stargazers_url":"https://api.github.com/repos/cockroachdb/cockroach/stargazers","contributors_url":"https://api.github.com/repos/cockroachdb/cockroach/contributors","subscribers_url":"https://api.github.com/repos/cockroachdb/cockroach/subscribers","subscription_url":"https://api.github.com/repos/cockroachdb/cockroach/subscription","commits_url":"https://api.github.com/repos/cockroachdb/cockroach/commits{/sha}","git_commits_url":"https://api.github.com/repos/cockroachdb/cockroach/git/commits{/sha}","comments_url":"https://api.github.com/repos/cockroachdb/cockroach/comments{/number}","issue_comment_url":"https://api.github.com/repos/cockroachdb/cockroach/issues/comments{/number}","contents_url":"https://api.github.com/repos/cockroachdb/cockroach/contents/{+path}","compare_url":"https://api.github.com/repos/cockroachdb/cockroach/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cockroachdb/cockroach/merges","archive_url":"https://api.github.com/repos/cockroachdb/cockroach/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cockroachdb/cockroach/downloads","issues_url":"https://api.github.com/repos/cockroachdb/cockroach/issues{/number}","pulls_url":"https://api.github.com/repos/cockroachdb/cockroach/pulls{/number}","milestones_url":"https://api.github.com/repos/cockroachdb/cockroach/milestones{/number}","notifications_url":"https://api.github.com/repos/cockroachdb/cockroach/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cockroachdb/cockroach/labels{/name}","releases_url":"https://api.github.com/repos/cockroachdb/cockroach/releases{/id}","deployments_url":"https://api.github.com/repos/cockroachdb/cockroach/deployments","created_at":"2014-02-06T00:18:47Z","updated_at":"2018-08-20T21:31:13Z","pushed_at":"2018-08-20T21:36:43Z","git_url":"git://github.com/cockroachdb/cockroach.git","ssh_url":"git@github.com:cockroachdb/cockroach.git","clone_url":"https://github.com/cockroachdb/cockroach.git","svn_url":"https://github.com/cockroachdb/cockroach","homepage":"https://www.cockroachlabs.com","size":1042857,"stargazers_count":14080,"watchers_count":14080,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1476,"mirror_url":null,"archived":false,"open_issues_count":1865,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":1476,"open_issues":1865,"watchers":14080,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cockroachdb/cockroach/pulls/28872"},"html":{"href":"https://github.com/cockroachdb/cockroach/pull/28872"},"issue":{"href":"https://api.github.com/repos/cockroachdb/cockroach/issues/28872"},"comments":{"href":"https://api.github.com/repos/cockroachdb/cockroach/issues/28872/comments"},"review_comments":{"href":"https://api.github.com/repos/cockroachdb/cockroach/pulls/28872/comments"},"review_comment":{"href":"https://api.github.com/repos/cockroachdb/cockroach/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cockroachdb/cockroach/pulls/28872/commits"},"statuses":{"href":"https://api.github.com/repos/cockroachdb/cockroach/statuses/bcbe89ac8975ae05480e48fe55eb857cb51bf216"}},"author_association":"MEMBER","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":2,"additions":154,"deletions":53,"changed_files":2}}
{"actor":{"display_login":"andreimatei"}}