Merge remote-tracking branch 'couchbase/3.0.x' 57/65657/2
authorManu Dhundi <manu@couchbase.com>
Mon, 11 Jul 2016 22:10:48 +0000 (15:10 -0700)
committerManu Dhundi <manu@couchbase.com>
Mon, 11 Jul 2016 22:51:24 +0000 (15:51 -0700)
*
|\
| * 6e10f8a 2016-07-11 | MB-20105: Ensure purge_seq is not reset when no items are purged in a compaction
| * 1fe3aac 2016-07-07 | MB-20054: Fix windows build error by adding size() func in class AtomicQueue
| * 536e32f 2016-07-07 | MB-20054: Fix windows build error by including a missing header file

Change-Id: Ib01ecb053ffa4b6fe2a6bac6cfbe6eccc3630549

1  2 
src/atomicqueue.h
src/ep.cc
tests/ep_testsuite.cc
tests/module_tests/ep_unit_tests_main.cc

@@@ -45,6 -46,6 +45,9 @@@ public
          }
      }
  
++    /**
++     * True if this queue is empty.
++     */
      bool empty() {
          std::lock_guard<std::mutex> lock(mutex);
          return queue.empty();
diff --cc src/ep.cc
+++ b/src/ep.cc
@@@ -1361,8 -1221,12 +1361,11 @@@ ENGINE_ERROR_CODE EventuallyPersistentS
          return ENGINE_NOT_MY_VBUCKET;
      }
  
+     /* Update the compaction ctx with the previous purge seqno */
+     c.max_purged_seq = vb->getPurgeSeqno();
      LockHolder lh(compactionLock);
 -    ExTask task = new CompactVBucketTask(&engine, Priority::CompactorPriority,
 -                                         vbid, c, cookie);
 +    ExTask task = new CompactVBucketTask(&engine, vbid, c, cookie);
      compactionTasks.push_back(std::make_pair(vbid, task));
      if (compactionTasks.size() > 1) {
          if ((stats.diskQueueSize > compactionWriteQueueCap &&
Simple merge