)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b95630d15f12d5321036f090d1e6bad666630acd","unresolved":false,"context_lines":[{"line_number":52,"context_line":"messages by the DcpProducer - this acquires the Stream::streamMutex"},{"line_number":53,"context_line":"before calling VBucket::seqnoAcknowledged(), however that function"},{"line_number":54,"context_line":"currently results in VBucket::commit() being called to synchronously"},{"line_number":55,"context_line":"complete the SyncWrite; which in turn must nodify all connected"},{"line_number":56,"context_line":"replica that a new seqno is available, requiring"},{"line_number":57,"context_line":"StreamContainer::rwlock to be acquired:"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ab3507de_bfc2e63e","line":55,"range":{"start_line":55,"start_character":43,"end_line":55,"end_character":49},"updated":"2019-08-23 15:36:11.000000000","message":"notify","commit_id":"f137552b4fcee90864e74aa2fd414d7051abb820"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b95630d15f12d5321036f090d1e6bad666630acd","unresolved":false,"context_lines":[{"line_number":53,"context_line":"before calling VBucket::seqnoAcknowledged(), however that function"},{"line_number":54,"context_line":"currently results in VBucket::commit() being called to synchronously"},{"line_number":55,"context_line":"complete the SyncWrite; which in turn must nodify all connected"},{"line_number":56,"context_line":"replica that a new seqno is available, requiring"},{"line_number":57,"context_line":"StreamContainer::rwlock to be acquired:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"  Mutex StreamContainer::rwlock acquired here while holding mutex Stream::streamMutex in thread T15:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"78b00c2a_8fc76fc2","line":56,"range":{"start_line":56,"start_character":0,"end_line":56,"end_character":7},"updated":"2019-08-23 15:36:11.000000000","message":"replicas","commit_id":"f137552b4fcee90864e74aa2fd414d7051abb820"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b95630d15f12d5321036f090d1e6bad666630acd","unresolved":false,"context_lines":[{"line_number":113,"context_line":"task is run, for each flag which is true it calls"},{"line_number":114,"context_line":"VBucket::processResolvedSyncWrites() for the associated VBucket."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"+Implementaiton Notes+"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Currently there is just a single DurabilityCompletionTask (per Bucket),"},{"line_number":119,"context_line":"this was chosen as 1 task per vBucket (i.e. 1024 per Bucket) would"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"2fdd455c_450fafea","line":116,"range":{"start_line":116,"start_character":1,"end_line":116,"end_character":15},"updated":"2019-08-23 15:36:11.000000000","message":"implementation","commit_id":"f137552b4fcee90864e74aa2fd414d7051abb820"}],"engines/ep/src/durability/durability_completion_task.cc":[{"author":{"_account_id":1004341,"name":"Ben Huddleston","email":"ben.huddleston@couchbase.com","username":"BenHuddleston","avatars":[{"url":"https://www.gravatar.com/avatar/ccb3e7e3b52c3d14e759d1b4c0507a3b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ccb3e7e3b52c3d14e759d1b4c0507a3b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ccb3e7e3b52c3d14e759d1b4c0507a3b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ccb3e7e3b52c3d14e759d1b4c0507a3b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"382371771201137cea9da111b5b4b135b1eff35b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    wakeUpScheduled.store(false);"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    const auto startTime \u003d std::chrono::steady_clock::now();"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    // Loop for each vBucket, starting from where we previously left off."},{"line_number":55,"context_line":"    // For each vbucket, if the pending flag is set then clear it process"},{"line_number":56,"context_line":"    // its\u0027 resolved SyncWrites."},{"line_number":57,"context_line":"    for (size_t count \u003d 0; count \u003c pendingVBs.size();"},{"line_number":58,"context_line":"         count++, vbid \u003d (vbid + 1) % pendingVBs.size()) {"},{"line_number":59,"context_line":"        if (pendingVBs[vbid].exchange(false)) {"}],"source_content_type":"text/x-c","patch_set":2,"id":"efa246f2_ecffc3d1","line":56,"range":{"start_line":53,"start_character":0,"end_line":56,"end_character":32},"updated":"2019-08-23 14:43:58.000000000","message":"This is incorrect now, we just start from 0","commit_id":"c25470267142833d31f3cbbc39ab109f5c5845cd"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b95630d15f12d5321036f090d1e6bad666630acd","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    const auto startTime \u003d std::chrono::steady_clock::now();"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    // Loop for each vBucket, starting from where we previously left off."},{"line_number":55,"context_line":"    // For each vbucket, if the pending flag is set then clear it process"},{"line_number":56,"context_line":"    // its\u0027 resolved SyncWrites."},{"line_number":57,"context_line":"    for (size_t count \u003d 0; count \u003c pendingVBs.size();"},{"line_number":58,"context_line":"         count++, vbid \u003d (vbid + 1) % pendingVBs.size()) {"}],"source_content_type":"text/x-c","patch_set":3,"id":"c5c2cb15_0f5b3619","line":55,"range":{"start_line":55,"start_character":65,"end_line":55,"end_character":66},"updated":"2019-08-23 15:36:11.000000000","message":"and?","commit_id":"f137552b4fcee90864e74aa2fd414d7051abb820"},{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b95630d15f12d5321036f090d1e6bad666630acd","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    // Loop for each vBucket, starting from where we previously left off."},{"line_number":55,"context_line":"    // For each vbucket, if the pending flag is set then clear it process"},{"line_number":56,"context_line":"    // its\u0027 resolved SyncWrites."},{"line_number":57,"context_line":"    for (size_t count \u003d 0; count \u003c pendingVBs.size();"},{"line_number":58,"context_line":"         count++, vbid \u003d (vbid + 1) % pendingVBs.size()) {"},{"line_number":59,"context_line":"        if (pendingVBs[vbid].exchange(false)) {"}],"source_content_type":"text/x-c","patch_set":3,"id":"61859a9c_f39afee4","line":56,"range":{"start_line":56,"start_character":10,"end_line":56,"end_character":11},"updated":"2019-08-23 15:36:11.000000000","message":"its","commit_id":"f137552b4fcee90864e74aa2fd414d7051abb820"}],"engines/ep/src/durability/durability_completion_task.h":[{"author":{"_account_id":1003828,"name":"James H","email":"james.harrison@couchbase.com","username":"jameseh96","avatars":[{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/70d2875f461e17e71a2a16972681c794.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"b95630d15f12d5321036f090d1e6bad666630acd","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    int vbid;"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    /**"},{"line_number":79,"context_line":"     * Flag which is used to check if a wakeup has already been schedueled for"},{"line_number":80,"context_line":"     * this task."},{"line_number":81,"context_line":"     */"},{"line_number":82,"context_line":"    std::atomic\u003cbool\u003e wakeUpScheduled{false};"}],"source_content_type":"text/x-csrc","patch_set":3,"id":"fcc6df26_2a756fcf","line":79,"range":{"start_line":79,"start_character":64,"end_line":79,"end_character":74},"updated":"2019-08-23 15:36:11.000000000","message":"scheduled","commit_id":"f137552b4fcee90864e74aa2fd414d7051abb820"}],"engines/ep/tests/module_tests/durability_monitor_test.cc":[{"author":{"_account_id":1004341,"name":"Ben Huddleston","email":"ben.huddleston@couchbase.com","username":"BenHuddleston","avatars":[{"url":"https://www.gravatar.com/avatar/ccb3e7e3b52c3d14e759d1b4c0507a3b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/ccb3e7e3b52c3d14e759d1b4c0507a3b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/ccb3e7e3b52c3d14e759d1b4c0507a3b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/ccb3e7e3b52c3d14e759d1b4c0507a3b.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"382371771201137cea9da111b5b4b135b1eff35b","unresolved":false,"context_lines":[{"line_number":1000,"context_line":"    notifyPersistence(1, 1, 0);"},{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":"    setSeqnoAckReceivedPostProcessHook([this, \u0026adm]() {"},{"line_number":1003,"context_line":"        adm.setReplicationTopology(nlohmann::json::array({{active, replica1}}));"},{"line_number":1004,"context_line":"    });"},{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"    adm.seqnoAckReceived(\"replica1\", 1);"}],"source_content_type":"text/x-c","patch_set":2,"id":"a1b449e2_ee87e751","line":1003,"range":{"start_line":1003,"start_character":0,"end_line":1003,"end_character":80},"updated":"2019-08-23 14:43:58.000000000","message":"this test now needs processResolvedSyncWrites after setting the topology as that\u0027s where we saw the race.","commit_id":"c25470267142833d31f3cbbc39ab109f5c5845cd"}]}
