{"action":"created","comment":{"url":"https://api.github.com/repos/arangodb/arangodb/pulls/comments/224036076","pull_request_review_id":163304737,"id":224036076,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNDAzNjA3Ng==","diff_hunk":"@@ -2126,43 +2131,22 @@ void RestReplicationHandler::handleCommandAddFollower() {\n   // get into trouble here we may need to be more lenient\n   TRI_ASSERT(checksumSlice.isString() && readLockIdSlice.isString());\n \n-  const std::string readLockId = readLockIdSlice.copyString();\n+  aql::QueryId readLockId = ExtractReadlockId(readLockIdSlice);\n   const std::string checksum = checksumSlice.copyString();\n \n-  std::string referenceChecksum;\n-  {\n-    CONDITION_LOCKER(locker, _condVar);\n-    auto it = _holdReadLockJobs.find(readLockId);\n-    if (it == _holdReadLockJobs.end()) {\n-      // Entry has been removed since, so we cancel the whole thing\n-      // right away and generate an error:\n-      generateError(rest::ResponseCode::SERVER_ERROR,\n-                    TRI_ERROR_TRANSACTION_INTERNAL,\n-                    \"read transaction was cancelled\");\n-      return;\n-    }\n-\n-    auto trx = it->second;\n-    if (!trx) {\n-      generateError(rest::ResponseCode::SERVER_ERROR,\n-                    TRI_ERROR_TRANSACTION_INTERNAL,\n-                    \"Read lock not yet acquired!\");\n-      return;\n-    }\n-\n-    // referenceChecksum is the stringified number of documents in the\n-    // collection\n-    uint64_t num = col->numberDocuments(trx.get(), transaction::CountType::Normal);\n-    referenceChecksum = std::to_string(num);\n+  auto referenceChecksum = computeCollectionChecksum(readLockId, col.get());","path":"arangod/RestHandler/RestReplicationHandler.cpp","position":45,"original_position":45,"commit_id":"baa4b2379cc419d0a9f04bd09c71fe61f37f6169","original_commit_id":"baa4b2379cc419d0a9f04bd09c71fe61f37f6169","user":{"login":"neunhoef","id":5286736,"node_id":"MDQ6VXNlcjUyODY3MzY=","avatar_url":"https://avatars3.githubusercontent.com/u/5286736?v=4","gravatar_id":"","url":"https://api.github.com/users/neunhoef","html_url":"https://github.com/neunhoef","followers_url":"https://api.github.com/users/neunhoef/followers","following_url":"https://api.github.com/users/neunhoef/following{/other_user}","gists_url":"https://api.github.com/users/neunhoef/gists{/gist_id}","starred_url":"https://api.github.com/users/neunhoef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neunhoef/subscriptions","organizations_url":"https://api.github.com/users/neunhoef/orgs","repos_url":"https://api.github.com/users/neunhoef/repos","events_url":"https://api.github.com/users/neunhoef/events{/privacy}","received_events_url":"https://api.github.com/users/neunhoef/received_events","type":"User","site_admin":false},"body":"This auto makes the code more difficult to read and understand. I do not insist on removing it, but I would prefer it if the type would be spelled out explicitly here.","created_at":"2018-10-10T11:26:00Z","updated_at":"2018-10-10T11:42:49Z","html_url":"https://github.com/arangodb/arangodb/pull/6784#discussion_r224036076","pull_request_url":"https://api.github.com/repos/arangodb/arangodb/pulls/6784","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/arangodb/arangodb/pulls/comments/224036076"},"html":{"href":"https://github.com/arangodb/arangodb/pull/6784#discussion_r224036076"},"pull_request":{"href":"https://api.github.com/repos/arangodb/arangodb/pulls/6784"}}},"pull_request":{"url":"https://api.github.com/repos/arangodb/arangodb/pulls/6784","id":221612447,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIxNjEyNDQ3","html_url":"https://github.com/arangodb/arangodb/pull/6784","diff_url":"https://github.com/arangodb/arangodb/pull/6784.diff","patch_url":"https://github.com/arangodb/arangodb/pull/6784.patch","issue_url":"https://api.github.com/repos/arangodb/arangodb/issues/6784","number":6784,"state":"open","locked":false,"title":"Bug fix 3.4/sync repl release thread","user":{"login":"mchacki","id":2317920,"node_id":"MDQ6VXNlcjIzMTc5MjA=","avatar_url":"https://avatars3.githubusercontent.com/u/2317920?v=4","gravatar_id":"","url":"https://api.github.com/users/mchacki","html_url":"https://github.com/mchacki","followers_url":"https://api.github.com/users/mchacki/followers","following_url":"https://api.github.com/users/mchacki/following{/other_user}","gists_url":"https://api.github.com/users/mchacki/gists{/gist_id}","starred_url":"https://api.github.com/users/mchacki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mchacki/subscriptions","organizations_url":"https://api.github.com/users/mchacki/orgs","repos_url":"https://api.github.com/users/mchacki/repos","events_url":"https://api.github.com/users/mchacki/events{/privacy}","received_events_url":"https://api.github.com/users/mchacki/received_events","type":"User","site_admin":false},"body":"This PR allows the hold read lock request in sync replication to release it's thread and not hold it forever.\r\n\r\n\r\nJenkins:\r\nhttp://jenkins01.arangodb.biz:8080/job/arangodb-matrix-pr-linux/2424/","created_at":"2018-10-09T23:03:33Z","updated_at":"2018-10-10T11:42:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"600d008073028c2618754b9a6a5acdaa8d289e36","assignee":{"login":"mchacki","id":2317920,"node_id":"MDQ6VXNlcjIzMTc5MjA=","avatar_url":"https://avatars3.githubusercontent.com/u/2317920?v=4","gravatar_id":"","url":"https://api.github.com/users/mchacki","html_url":"https://github.com/mchacki","followers_url":"https://api.github.com/users/mchacki/followers","following_url":"https://api.github.com/users/mchacki/following{/other_user}","gists_url":"https://api.github.com/users/mchacki/gists{/gist_id}","starred_url":"https://api.github.com/users/mchacki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mchacki/subscriptions","organizations_url":"https://api.github.com/users/mchacki/orgs","repos_url":"https://api.github.com/users/mchacki/repos","events_url":"https://api.github.com/users/mchacki/events{/privacy}","received_events_url":"https://api.github.com/users/mchacki/received_events","type":"User","site_admin":false},"assignees":[{"login":"mchacki","id":2317920,"node_id":"MDQ6VXNlcjIzMTc5MjA=","avatar_url":"https://avatars3.githubusercontent.com/u/2317920?v=4","gravatar_id":"","url":"https://api.github.com/users/mchacki","html_url":"https://github.com/mchacki","followers_url":"https://api.github.com/users/mchacki/followers","following_url":"https://api.github.com/users/mchacki/following{/other_user}","gists_url":"https://api.github.com/users/mchacki/gists{/gist_id}","starred_url":"https://api.github.com/users/mchacki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mchacki/subscriptions","organizations_url":"https://api.github.com/users/mchacki/orgs","repos_url":"https://api.github.com/users/mchacki/repos","events_url":"https://api.github.com/users/mchacki/events{/privacy}","received_events_url":"https://api.github.com/users/mchacki/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":961091834,"node_id":"MDU6TGFiZWw5NjEwOTE4MzQ=","url":"https://api.github.com/repos/arangodb/arangodb/labels/2%20-%20Working","name":"2 - Working","color":"CCCCCC","default":false},{"id":629824856,"node_id":"MDU6TGFiZWw2Mjk4MjQ4NTY=","url":"https://api.github.com/repos/arangodb/arangodb/labels/9%20Waiting%20for%20Jenkins","name":"9 Waiting for Jenkins","color":"1d76db","default":false}],"milestone":{"url":"https://api.github.com/repos/arangodb/arangodb/milestones/93","html_url":"https://github.com/arangodb/arangodb/milestone/93","labels_url":"https://api.github.com/repos/arangodb/arangodb/milestones/93/labels","id":3265849,"node_id":"MDk6TWlsZXN0b25lMzI2NTg0OQ==","number":93,"title":"3.4","description":null,"creator":{"login":"Simran-B","id":7819991,"node_id":"MDQ6VXNlcjc4MTk5OTE=","avatar_url":"https://avatars3.githubusercontent.com/u/7819991?v=4","gravatar_id":"","url":"https://api.github.com/users/Simran-B","html_url":"https://github.com/Simran-B","followers_url":"https://api.github.com/users/Simran-B/followers","following_url":"https://api.github.com/users/Simran-B/following{/other_user}","gists_url":"https://api.github.com/users/Simran-B/gists{/gist_id}","starred_url":"https://api.github.com/users/Simran-B/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Simran-B/subscriptions","organizations_url":"https://api.github.com/users/Simran-B/orgs","repos_url":"https://api.github.com/users/Simran-B/repos","events_url":"https://api.github.com/users/Simran-B/events{/privacy}","received_events_url":"https://api.github.com/users/Simran-B/received_events","type":"User","site_admin":false},"open_issues":19,"closed_issues":142,"state":"open","created_at":"2018-04-13T14:20:26Z","updated_at":"2018-10-10T11:06:26Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/arangodb/arangodb/pulls/6784/commits","review_comments_url":"https://api.github.com/repos/arangodb/arangodb/pulls/6784/comments","review_comment_url":"https://api.github.com/repos/arangodb/arangodb/pulls/comments{/number}","comments_url":"https://api.github.com/repos/arangodb/arangodb/issues/6784/comments","statuses_url":"https://api.github.com/repos/arangodb/arangodb/statuses/baa4b2379cc419d0a9f04bd09c71fe61f37f6169","head":{"label":"arangodb:bug-fix-3.4/syncReplReleaseThread","ref":"bug-fix-3.4/syncReplReleaseThread","sha":"baa4b2379cc419d0a9f04bd09c71fe61f37f6169","user":{"login":"arangodb","id":5547849,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU1NDc4NDk=","avatar_url":"https://avatars0.githubusercontent.com/u/5547849?v=4","gravatar_id":"","url":"https://api.github.com/users/arangodb","html_url":"https://github.com/arangodb","followers_url":"https://api.github.com/users/arangodb/followers","following_url":"https://api.github.com/users/arangodb/following{/other_user}","gists_url":"https://api.github.com/users/arangodb/gists{/gist_id}","starred_url":"https://api.github.com/users/arangodb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arangodb/subscriptions","organizations_url":"https://api.github.com/users/arangodb/orgs","repos_url":"https://api.github.com/users/arangodb/repos","events_url":"https://api.github.com/users/arangodb/events{/privacy}","received_events_url":"https://api.github.com/users/arangodb/received_events","type":"Organization","site_admin":false},"repo":{"id":2649214,"node_id":"MDEwOlJlcG9zaXRvcnkyNjQ5MjE0","name":"arangodb","full_name":"arangodb/arangodb","private":false,"owner":{"login":"arangodb","id":5547849,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU1NDc4NDk=","avatar_url":"https://avatars0.githubusercontent.com/u/5547849?v=4","gravatar_id":"","url":"https://api.github.com/users/arangodb","html_url":"https://github.com/arangodb","followers_url":"https://api.github.com/users/arangodb/followers","following_url":"https://api.github.com/users/arangodb/following{/other_user}","gists_url":"https://api.github.com/users/arangodb/gists{/gist_id}","starred_url":"https://api.github.com/users/arangodb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arangodb/subscriptions","organizations_url":"https://api.github.com/users/arangodb/orgs","repos_url":"https://api.github.com/users/arangodb/repos","events_url":"https://api.github.com/users/arangodb/events{/privacy}","received_events_url":"https://api.github.com/users/arangodb/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/arangodb/arangodb","description":"🥑 ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.","fork":false,"url":"https://api.github.com/repos/arangodb/arangodb","forks_url":"https://api.github.com/repos/arangodb/arangodb/forks","keys_url":"https://api.github.com/repos/arangodb/arangodb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/arangodb/arangodb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/arangodb/arangodb/teams","hooks_url":"https://api.github.com/repos/arangodb/arangodb/hooks","issue_events_url":"https://api.github.com/repos/arangodb/arangodb/issues/events{/number}","events_url":"https://api.github.com/repos/arangodb/arangodb/events","assignees_url":"https://api.github.com/repos/arangodb/arangodb/assignees{/user}","branches_url":"https://api.github.com/repos/arangodb/arangodb/branches{/branch}","tags_url":"https://api.github.com/repos/arangodb/arangodb/tags","blobs_url":"https://api.github.com/repos/arangodb/arangodb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/arangodb/arangodb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/arangodb/arangodb/git/refs{/sha}","trees_url":"https://api.github.com/repos/arangodb/arangodb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/arangodb/arangodb/statuses/{sha}","languages_url":"https://api.github.com/repos/arangodb/arangodb/languages","stargazers_url":"https://api.github.com/repos/arangodb/arangodb/stargazers","contributors_url":"https://api.github.com/repos/arangodb/arangodb/contributors","subscribers_url":"https://api.github.com/repos/arangodb/arangodb/subscribers","subscription_url":"https://api.github.com/repos/arangodb/arangodb/subscription","commits_url":"https://api.github.com/repos/arangodb/arangodb/commits{/sha}","git_commits_url":"https://api.github.com/repos/arangodb/arangodb/git/commits{/sha}","comments_url":"https://api.github.com/repos/arangodb/arangodb/comments{/number}","issue_comment_url":"https://api.github.com/repos/arangodb/arangodb/issues/comments{/number}","contents_url":"https://api.github.com/repos/arangodb/arangodb/contents/{+path}","compare_url":"https://api.github.com/repos/arangodb/arangodb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/arangodb/arangodb/merges","archive_url":"https://api.github.com/repos/arangodb/arangodb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/arangodb/arangodb/downloads","issues_url":"https://api.github.com/repos/arangodb/arangodb/issues{/number}","pulls_url":"https://api.github.com/repos/arangodb/arangodb/pulls{/number}","milestones_url":"https://api.github.com/repos/arangodb/arangodb/milestones{/number}","notifications_url":"https://api.github.com/repos/arangodb/arangodb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/arangodb/arangodb/labels{/name}","releases_url":"https://api.github.com/repos/arangodb/arangodb/releases{/id}","deployments_url":"https://api.github.com/repos/arangodb/arangodb/deployments","created_at":"2011-10-26T06:42:00Z","updated_at":"2018-10-10T09:56:31Z","pushed_at":"2018-10-10T11:31:11Z","git_url":"git://github.com/arangodb/arangodb.git","ssh_url":"git@github.com:arangodb/arangodb.git","clone_url":"https://github.com/arangodb/arangodb.git","svn_url":"https://github.com/arangodb/arangodb","homepage":"https://www.arangodb.com","size":861176,"stargazers_count":6504,"watchers_count":6504,"language":"C++","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":457,"mirror_url":null,"archived":false,"open_issues_count":458,"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":457,"open_issues":458,"watchers":6504,"default_branch":"devel"}},"base":{"label":"arangodb:3.4","ref":"3.4","sha":"fa683d3925db7118c00461da3d4028b760725b8e","user":{"login":"arangodb","id":5547849,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU1NDc4NDk=","avatar_url":"https://avatars0.githubusercontent.com/u/5547849?v=4","gravatar_id":"","url":"https://api.github.com/users/arangodb","html_url":"https://github.com/arangodb","followers_url":"https://api.github.com/users/arangodb/followers","following_url":"https://api.github.com/users/arangodb/following{/other_user}","gists_url":"https://api.github.com/users/arangodb/gists{/gist_id}","starred_url":"https://api.github.com/users/arangodb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arangodb/subscriptions","organizations_url":"https://api.github.com/users/arangodb/orgs","repos_url":"https://api.github.com/users/arangodb/repos","events_url":"https://api.github.com/users/arangodb/events{/privacy}","received_events_url":"https://api.github.com/users/arangodb/received_events","type":"Organization","site_admin":false},"repo":{"id":2649214,"node_id":"MDEwOlJlcG9zaXRvcnkyNjQ5MjE0","name":"arangodb","full_name":"arangodb/arangodb","private":false,"owner":{"login":"arangodb","id":5547849,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU1NDc4NDk=","avatar_url":"https://avatars0.githubusercontent.com/u/5547849?v=4","gravatar_id":"","url":"https://api.github.com/users/arangodb","html_url":"https://github.com/arangodb","followers_url":"https://api.github.com/users/arangodb/followers","following_url":"https://api.github.com/users/arangodb/following{/other_user}","gists_url":"https://api.github.com/users/arangodb/gists{/gist_id}","starred_url":"https://api.github.com/users/arangodb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arangodb/subscriptions","organizations_url":"https://api.github.com/users/arangodb/orgs","repos_url":"https://api.github.com/users/arangodb/repos","events_url":"https://api.github.com/users/arangodb/events{/privacy}","received_events_url":"https://api.github.com/users/arangodb/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/arangodb/arangodb","description":"🥑 ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.","fork":false,"url":"https://api.github.com/repos/arangodb/arangodb","forks_url":"https://api.github.com/repos/arangodb/arangodb/forks","keys_url":"https://api.github.com/repos/arangodb/arangodb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/arangodb/arangodb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/arangodb/arangodb/teams","hooks_url":"https://api.github.com/repos/arangodb/arangodb/hooks","issue_events_url":"https://api.github.com/repos/arangodb/arangodb/issues/events{/number}","events_url":"https://api.github.com/repos/arangodb/arangodb/events","assignees_url":"https://api.github.com/repos/arangodb/arangodb/assignees{/user}","branches_url":"https://api.github.com/repos/arangodb/arangodb/branches{/branch}","tags_url":"https://api.github.com/repos/arangodb/arangodb/tags","blobs_url":"https://api.github.com/repos/arangodb/arangodb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/arangodb/arangodb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/arangodb/arangodb/git/refs{/sha}","trees_url":"https://api.github.com/repos/arangodb/arangodb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/arangodb/arangodb/statuses/{sha}","languages_url":"https://api.github.com/repos/arangodb/arangodb/languages","stargazers_url":"https://api.github.com/repos/arangodb/arangodb/stargazers","contributors_url":"https://api.github.com/repos/arangodb/arangodb/contributors","subscribers_url":"https://api.github.com/repos/arangodb/arangodb/subscribers","subscription_url":"https://api.github.com/repos/arangodb/arangodb/subscription","commits_url":"https://api.github.com/repos/arangodb/arangodb/commits{/sha}","git_commits_url":"https://api.github.com/repos/arangodb/arangodb/git/commits{/sha}","comments_url":"https://api.github.com/repos/arangodb/arangodb/comments{/number}","issue_comment_url":"https://api.github.com/repos/arangodb/arangodb/issues/comments{/number}","contents_url":"https://api.github.com/repos/arangodb/arangodb/contents/{+path}","compare_url":"https://api.github.com/repos/arangodb/arangodb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/arangodb/arangodb/merges","archive_url":"https://api.github.com/repos/arangodb/arangodb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/arangodb/arangodb/downloads","issues_url":"https://api.github.com/repos/arangodb/arangodb/issues{/number}","pulls_url":"https://api.github.com/repos/arangodb/arangodb/pulls{/number}","milestones_url":"https://api.github.com/repos/arangodb/arangodb/milestones{/number}","notifications_url":"https://api.github.com/repos/arangodb/arangodb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/arangodb/arangodb/labels{/name}","releases_url":"https://api.github.com/repos/arangodb/arangodb/releases{/id}","deployments_url":"https://api.github.com/repos/arangodb/arangodb/deployments","created_at":"2011-10-26T06:42:00Z","updated_at":"2018-10-10T09:56:31Z","pushed_at":"2018-10-10T11:31:11Z","git_url":"git://github.com/arangodb/arangodb.git","ssh_url":"git@github.com:arangodb/arangodb.git","clone_url":"https://github.com/arangodb/arangodb.git","svn_url":"https://github.com/arangodb/arangodb","homepage":"https://www.arangodb.com","size":861176,"stargazers_count":6504,"watchers_count":6504,"language":"C++","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":457,"mirror_url":null,"archived":false,"open_issues_count":458,"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":457,"open_issues":458,"watchers":6504,"default_branch":"devel"}},"_links":{"self":{"href":"https://api.github.com/repos/arangodb/arangodb/pulls/6784"},"html":{"href":"https://github.com/arangodb/arangodb/pull/6784"},"issue":{"href":"https://api.github.com/repos/arangodb/arangodb/issues/6784"},"comments":{"href":"https://api.github.com/repos/arangodb/arangodb/issues/6784/comments"},"review_comments":{"href":"https://api.github.com/repos/arangodb/arangodb/pulls/6784/comments"},"review_comment":{"href":"https://api.github.com/repos/arangodb/arangodb/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/arangodb/arangodb/pulls/6784/commits"},"statuses":{"href":"https://api.github.com/repos/arangodb/arangodb/statuses/baa4b2379cc419d0a9f04bd09c71fe61f37f6169"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"neunhoef"}}