Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Feb 28, 2013
  1. @apage43 @Damienkatz

    MB-7828 Don't attempt to copy purged docs list

    apage43 authored Damienkatz committed
    We don't have a purged docs list (but we have started using the old
    purge_seq field), and some old code has broken. Removing it.
    
    Change-Id: I1b376920db2acddac595acbab0adb762fd22de44
    Reviewed-on: http://review.couchbase.org/24885
    Tested-by: abhinav dangeti <abhinav.dangeti@gmail.com>
    Reviewed-by: Damien Katz <damien@couchbase.com>
Commits on Feb 14, 2013
  1. @apage43 @fdmanana

    MB-7631 Interpret bp of 0 as empty body

    apage43 authored fdmanana committed
    By convention, in Couchstore/.couch files a body pointer of zero
    indicates that the item has no body/has an empty body.
    
    This commit makes CouchDB also have this behavior (otherwise, it will
    attempt to read data from position 0 in the file when encountering a
    deleted item)
    
    Change-Id: If4229b68a2b6fc79484535619b7acfbc5055ca0e
    Reviewed-on: http://review.couchbase.org/24586
    Reviewed-by: Junyi Xie <junyi.couchbase@gmail.com>
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Jin Lim <jin@couchbase.com>
    Tested-by: Aaron Miller <apage43@ninjawhale.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-on: http://review.couchbase.org/24596
    Reviewed-by: Aaron Miller <apage43@ninjawhale.com>
Commits on Feb 13, 2013
  1. @fdmanana

    MB-7702 Fix groups received from the compactor

    fdmanana authored fdmanana committed
    Due to the interaction with the updater, the compactor
    might receive a group snapshot from the updater that
    doesn't reflect the state of the snapshot in the parent
    view group process. Therefore, in the view group process,
    before accepting a group from the compactor, fix that
    group so that it reflects the latest state, just like what
    is done when the view group process receives a group
    snapshot from the updater.
    
    This could lead to a permanent bad index state (missing
    passive partitions, or partitions marked as passive when
    they should be active and vice-versa). This was a regression
    introduced by MB-7522:
    
    "Optimize very common index state transitions (rebalance)"
    
    Change-Id: I2637d0fda838e803b5bcd474a86fb02c16cfe992
    Reviewed-on: http://review.couchbase.org/24534
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Feb 9, 2013
  1. @fdmanana

    MB-6895 Correct error processing for dev views

    fdmanana authored fdmanana committed
    Change-Id: I51ad9fa63cc0b415cb992601c16c4b5c8f396c49
    Reviewed-on: http://review.couchbase.org/24481
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Feb 7, 2013
  1. @fdmanana

    MB-6895 Fix badmatch on error

    fdmanana authored fdmanana committed
    For old couchdb views, used for development subset, expect
    error results to be inlined with non-error results.
    
    Change-Id: I5cd33ee7caeeec4bd65b548431788b2f3967fb35
    Reviewed-on: http://review.couchbase.org/24474
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Feb 5, 2013
  1. @fdmanana

    MB-7569 Ignore eacces errors on delete dir init

    fdmanana authored fdmanana committed
    Ignore those and have index cleanup delete any files in
    that directory too. Index cleanup is already periodically
    called by the compaction scheduler (ns_server), so that we
    don't risk having files in the delete directory that are
    never deleted.
    
    Change-Id: Ib55bdeab07deed876822c21acacbfebda7fb639e
    Reviewed-on: http://review.couchbase.org/24398
    Reviewed-by: Sriram Melkote <siri.couchbase@gmail.com>
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jan 28, 2013
  1. @fdmanana

    MB-7413 Periodically call file:advise/4

    fdmanana authored fdmanana committed
    After a full batch is read from the temporary file, tell
    the OS that the data read from the file won't be accessed
    anymore, so that it can remove it from its page cache.
    
    Change-Id: Ia5645df48bcfd563abbd9ca75fe0248e039659dc
    Reviewed-on: http://review.couchbase.org/24229
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
  2. @fdmanana

    MB-6895 Better map function error isolation

    fdmanana authored fdmanana committed
    If an error occurs for a map function of a view group,
    don't discard the results from all other map functions
    of the view group.
    
    Change-Id: I49dde86e6698b018dade35d7ca7257f12ba53b86
    Reviewed-on: http://review.couchbase.org/24205
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jan 25, 2013
  1. @apage43 @fdmanana

    MB-7542 Fix unset revision number on deserialization

    apage43 authored fdmanana committed
    Change-Id: I18b1f478c3fed736e381ea1eb970d811b318d37d
    Reviewed-on: http://review.couchbase.org/24000
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jan 24, 2013
  1. @fdmanana

    MB-7592 Race condition free management of tmp files

    fdmanana authored fdmanana committed
    Don't delete the temporary files when the compactor is
    started or when it finishes because the updater might
    still be using some of them.
    Also, whenever the compactor is shutdown or dies, ensure
    the log files field is reset.
    
    Change-Id: I89209b4cffff1cad42f190dd465cbbd83e5325af
    Reviewed-on: http://review.couchbase.org/24178
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jan 22, 2013
  1. @fdmanana

    MB-7413 Count # of seqs processed for initial build

    fdmanana authored fdmanana committed
    The new seqs processed stat was only being computed for
    incremental index updates. Account it for the initial
    index build as well.
    
    Change-Id: I9c71daec96cdb42b7dad76c9cacf068be6d60487
    Reviewed-on: http://review.couchbase.org/24125
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
  2. @apage43 @Damienkatz

    CBD-720 Allow passing compactor option to drop deletes

    apage43 authored Damienkatz committed
    Change-Id: I18f6c826d6cb697c3f4a443f00cf64006ce8428f
    Reviewed-on: http://review.couchbase.org/23835
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Damien Katz <damien@couchbase.com>
Commits on Jan 21, 2013
  1. @fdmanana

    MB-7396 Don't open view groups without views

    fdmanana authored fdmanana committed
    If a design document doesn't define any mapreduce views,
    don't start a corresponding view group process, as it's
    not useful and it only consumes resources (memory and file
    descriptors).
    
    Change-Id: Iba7b1fb512b40f2e9e4c3b2f2753deb5a2b7d045
    Reviewed-on: http://review.couchbase.org/24032
    Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jan 17, 2013
  1. @fdmanana

    MB-7535 Start updater if there are update listeners

    fdmanana authored fdmanana committed
    If there are update listeners waiting for indexing of
    specific partitions up to certain sequences, trigger the
    updater.
    
    Change-Id: Iac5e96176de1e549372ae58c654e631fe8079155
    Reviewed-on: http://review.couchbase.org/24031
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
  2. @fdmanana

    MB-7535 Get seqs of indexable partitions synchronously

    fdmanana authored fdmanana committed
    If there are update listeners or waiting clients (stale=false
    query requests), ensure we get the latest seq numbers of all
    the indexable partitions by asking the db set process to get
    them synchronously.
    
    Change-Id: Ic303f4ac83034e7a91f7af832d8864c1a8ff5549
    Reviewed-on: http://review.couchbase.org/24026
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
  3. @fdmanana

    MB-7535 Promote some logging from debug to info level

    fdmanana authored fdmanana committed
    For all log messages related to monitoring index updates,
    promote their level from debug to info. Also, everytime
    an indexed sequence is not high enough to unblock a client,
    log a message mentioning this information.
    
    Change-Id: I4cd8f98d585dd67909e680a210a1d9e15b86517c
    Reviewed-on: http://review.couchbase.org/24020
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
  4. @fdmanana

    MB-7525 Reset replica index utilization stats as well

    fdmanana authored fdmanana committed
    When receive an utilization stats reset request, don't
    forget to reset them in the replica index as well.
    
    Change-Id: Ib1d5d671f786745478dca4f341882f33a73d1d5e
    Reviewed-on: http://review.couchbase.org/24015
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
  5. @fdmanana

    MB-7522 Do updater restarts if a pending transition exists

    fdmanana authored fdmanana committed
    So that we don't dive into too much complex state transitions.
    
    Change-Id: I4314018838ea20e804e087960bb533e34c397f12
    Reviewed-on: http://review.couchbase.org/24014
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
  6. @fdmanana

    MB-7413 Remove duplicated checkpoint logic

    fdmanana authored fdmanana committed
    Not needed, as same logic is performed in flush_writes/1.
    
    Change-Id: I559369df53e17b6875eb4444a50e186343719ac3
    Reviewed-on: http://review.couchbase.org/24013
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
  7. @fdmanana

    Fix race condition in test 06-main-compaction.t

    fdmanana authored fdmanana committed
    Ensure that automatic cleanup is disabled before adding
    partition for cleanup and verifying the index state was
    updated to reflect that state transition.
    
    Change-Id: I1334f4ac0e851fa754ec0d28468ea3134d5150fa
    Reviewed-on: http://review.couchbase.org/24012
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jan 14, 2013
  1. @fdmanana

    MB-7525 Add utilization stats for set views (per ddoc)

    fdmanana authored fdmanana committed
    Using a special URL, it's possible to get view engine utilization
    stats per design document (index), and per node.
    These stats consist on the total indexing time (sum of indexing times
    for all index updater runs), total compaction time, number of index
    updates, number of compactions, etc.
    
    At any time, it's possible to ask to reset these stats.
    This is useful for rebalance performance/analysus tests, for example,
    right after an index is created and before the rebalance it triggered,
    a test can ask to reset the stats and after the rebalance finishes
    it queries the stats - these allows the test to know how much of
    the total rebalance time was spent on indexing and index compaction
    per design document and per node.
    
    Note that these stats are kept in memory, not persisted to disk.
    This means that after a node is restarted, all the stats values
    are zeroed.
    
    Examples:
    
     # Get current utilization stats for design document A, bucket 'default'
    
    $ curl -s http://192.168.1.2:9500/_set_view/default/_design/A/_get_utilization_stats | json_xs
    {
       "updater_interruptions" : 0,
       "compactor_interruptions" : 0,
       "useful_indexing_time" : 82.364292,
       "updates" : 1,
       "wasted_indexing_time" : 0,
       "total_indexing_time" : 82.364292,
       "compactions" : 0,
       "compaction_time" : 0
    }
    
     # Reset the utilization stats for the previous design document and bucket.
     # Success return HTTP code is 201
    
    $ curl -X POST http://192.168.1.2:9500/_set_view/default/_design/A/_reset_utilization_stats
    true
    
     # Get the utilization stats again.
    
    $ curl -s http://192.168.1.2:9500/_set_view/default/_design/A/_get_utilization_stats | json_xs
    {
       "updater_interruptions" : 0,
       "compactor_interruptions" : 0,
       "useful_indexing_time" : 0,
       "updates" : 0,
       "wasted_indexing_time" : 0,
       "total_indexing_time" : 0,
       "compactions" : 0,
       "compaction_time" : 0
    }
    
    Change-Id: Ie3e18e9527f5550a791e4d4559a09ef9fb907285
    Reviewed-on: http://review.couchbase.org/23900
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
  2. @fdmanana

    MB-7522 Further test improvements/coverage

    fdmanana authored fdmanana committed
    Verify that the state transitions don't restart the updater
    during incremental index updates as well (instead of only
    initial index updates).
    
    Change-Id: Iea677e75217d7e4f927cd4c503dd4487cff790ba
    Reviewed-on: http://review.couchbase.org/23899
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jan 12, 2013
  1. @fdmanana

    MB-7522 Fix race condition in test

    fdmanana authored fdmanana committed
    Ensure we don't use the PID of the old, dead, view
    group process (we're racing with couch_set_view).
    
    Change-Id: Ifa1c68e88c61a93a3565585523a407a220d74d09
    Reviewed-on: http://review.couchbase.org/23895
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
  2. @fdmanana

    MB-7522 Improve test 24-updater-add-more-passive-partitions.t

    fdmanana authored fdmanana committed
    Verify that toggling partitions between the passive and active
    states (and vice-versa) while the updater is running doesn't
    lead to crashes, a bad state or data loss.
    
    Change-Id: I565b8e04b38d39b13949ad9aa6ae52e2651e1647
    Reviewed-on: http://review.couchbase.org/23893
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jan 11, 2013
  1. @fdmanana

    MB-7522 Optimize index state transitions (rebalance)

    fdmanana authored fdmanana committed
    Optimize 2 types of common state transitions:
    
    1) If a state transition consists only of moving partitions
    between the passive and active states (or vice-versa), that
    is, no new partitions are added nor existing partitions are
    marked for cleanup, don't restart the updater (at the expense
    of more complex logic to correct snapshots received from a
    currently running updater).
    
    2) If a state transition only adds new partitions to the
    passive state (as ns_server's rebalance frequently calls),
    don't restart the updater, and send the updater the new
    list of passive partitions, so that it has a chance to
    iterate over those partitions' content and index them in
    the same run.
    
    As long as the rebalancer in ns_server doesn't keep changing
    its logic regarding state transitions all the time, this
    provides a significant reduction of the indexing time. However
    for at least some scenarios, there's still significant portion
    of rebalance time not spent on indexing nor index compaction.
    
    Change-Id: I2b7960fd73052ce476fbacee6c1aca4d01490d5a
    Reviewed-on: http://review.couchbase.org/23871
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Jan 8, 2013
  1. @fdmanana

    MB-7413 More efficient and faster incremental updates

    fdmanana authored fdmanana committed
    At any time, insert larger batches of kv pairs into the
    btrees. These batches are on disk sorted files, and while
    they're applied to the btrees, the next batch is prepared
    in parallel (maps, conversion to binaries, sorting, etc).
    This reduces index update time, slows down fragmentation
    and requires less disk space.
    
    This has a very significant positive impact if the number
    of changes to apply to an index are large, such as the case
    when adding a group of new partitions (active, passive of
    replica) to an index.
    
    Small/medium scale performance test descriptions follows.
    
    Test 1:
    
    Initially 3.2M documents, design document with 4 views (both
    from evperf lucky8 tests), index was built and later more
    3.2M documents were added (new 512 partitions added to the
    index as active).
    
    Initial build took:                        11m17.911s
    Index file size after initial build:       380Mb
    
    ** Before this change
    
    Incremental update took:                   75m43.575s
    Index file size after incremental update:  30.0Gb
    
    ** After this change
    
    Incremental update took:                   18m36.762s
    Index file size after incremental update:  4.0Gb
    
    Test 2:
    
    Initially 3.2M documents (from lucky8 evperf test), design
    document with a single view (emits meta.id key and null value
    for each document), index was built and later more 3.2M documents
    were added (new 512 partitions added to the index as active).
    
    Initial build took:                        6m23.199s
    Index file size after initial build:       134Mb
    
    ** Before this change
    
    Incremental update took:                   21m31.615s
    Index file size after incremental update:  8.6Gb
    
    ** After this change
    
    Incremental update took:                   7m13.394s
    Index file size after incremental update:  1.8Gb
    
    Change-Id: I66fde0adeb0f7a810c125bf7cb42cdd17dd03d9d
    Reviewed-on: http://review.couchbase.org/23674
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
Commits on Dec 27, 2012
  1. @alk

    MB-6638: use fork of file_sorter that doesn't use compression

    alk authored alk committed
    We've found that file driver may close underlying file (either OS file
    or gzFile) well before async read on it is done. With real OS file
    that's mostly harmless, and kernel will synchronize racing close and
    read (or any other syscall for same fd) and read will either succeed
    just before close or it'll get EBADF (well, or read some other newly
    opened innocent file).
    
    But gzFile doesn't have any synchronization. So attempt to read it
    concurrently or shortly after close may cause lots of problems.
    
    Given we don't really use compressed feature of file sorter I'm just
    cutting out one small piece of it that's using this efile feature.
    
    Entire file_sorter.erl is forked inside couchdb source tree and single
    change is made. It removes compressed option in file:open call in
    read_fun.
    
    NOTE: file_sorter.erl is building improper lists which dialyzer
    authors choose to dislike. I had to disable that somewhat questionable
    warning in order to keep code dialyzer-clean. "Fixing" file_sorter.erl
    is IMHO not an option as we want to keep it as intact as possible.
    
    Change-Id: I8ded572c18e236661d5b7df2a780c8f293fc689d
    Reviewed-on: http://review.couchbase.org/23555
    Reviewed-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Commits on Dec 21, 2012
  1. @melkote @alk

    MB-7390: Fix vulnerability by porting fix for Mochiweb Issue 92

    melkote authored alk committed
    The vulnerability of accessing arbitrary files via Mochiweb
    is logged and fixed as issue #92 on Mochiweb. Port the same
    fix to the copy of Mochiweb in our codebase. See issue at
    mochi/mochiweb#92
    
    Change-Id: I3977a5296d2413fa7659b5e722c4103190602d0f
    Reviewed-on: http://review.couchbase.org/23395
    Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
    Tested-by: Sriram Melkote <siri@couchbase.com>
Commits on Dec 17, 2012
  1. @fdmanana

    MB-100 Fix race condition in test

    fdmanana authored fdmanana committed
    It's possible the compaction finishes before we ask
    to monitor it, therefore don't abort the test if this
    is the case.
    
    Change-Id: Ibd9312e8a2fd63a5894320b50638f87eddf9a92b
    Reviewed-on: http://review.couchbase.org/23355
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
  2. @fdmanana

    MB-7407 Fix memory leak on context creation failure

    fdmanana authored fdmanana committed
    If a context is created with a syntactically invalid
    JavaScript function, not all previously allocated memory
    is released, due to the fact the context was never returned
    to Erlang.
    
    Change-Id: I76a7970774c6f4ad50b4916045206597ddd090c7
    Reviewed-on: http://review.couchbase.org/23260
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
  3. @fdmanana

    MB-100 Remove unreliable and not needed test

    fdmanana authored fdmanana committed
    This is for old CouchDB functionallity, and it fails in the
    build bot very often for unknown reasons. Equivalent test,
    for new view engine under src/couch_set_view/test, without
    any failures.
    
    Change-Id: If65423d5ce42d8bf09f5e74a79eaee08454636cb
    Reviewed-on: http://review.couchbase.org/23262
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
  4. @fdmanana

    MB-7371 Retry directory fold and creation on Windows

    fdmanana authored fdmanana committed
    The filelib:ensure_dir/1 and filelib:fold_files/5 functions
    do calls to some file module operations (file:read_file_info/1)
    that can fail with temporary eacces errors (Windows file share
    violation) because we have in parallel other processes calling
    file module functions that do not open the target files/directories
    with all the Windows share flags (such as file:read_file_info/1).
    
    This is an extension to MB-6957.
    
    Change-Id: I81f9eb68e353682c34839492b9631e6f9267d5fc
    Reviewed-on: http://review.couchbase.org/23120
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Reviewed-by: Volker Mische <volker.mische@gmail.com>
  5. @fdmanana

    MB-7338 Fix bad JSON responses for queries with ?on_error=stop

    fdmanana authored fdmanana committed
    This change was missed in commit:
    b4391e4
    
    Change-Id: Id3dd5de6121157a80ac23b801dd1124a239cb000
    Reviewed-on: http://review.couchbase.org/23023
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Dec 13, 2012
  1. @vmx @fdmanana

    MB-7193: Make MapReduce Views work that contain slashes

    vmx authored fdmanana committed
    MapReduce Views that contained slashed in either the Design Document
    or the function name didn't work.
    
    Those three commits need to be merged at the same time:
    http://review.couchbase.org/23138
    http://review.couchbase.org/23175
    http://review.couchbase.org/23139
    
    Change-Id: I9cd37e5ccfda3ae5d2009abd8e242451a4ebb86b
    Reviewed-on: http://review.couchbase.org/23138
    Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
    Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Commits on Dec 3, 2012
  1. @farshidce

    Merge remote-tracking branch 'couchbase/2.0.0' into 2.0.1

    farshidce authored
    * couchbase/2.0.0:
      MB-7285 Fix badmatch in index updater on cleanup
    
    Change-Id: I36a4af9e2f0154828c1d73e166f1681982f4522c
Something went wrong with that request. Please try again.