[BP] MB-16366: Obtain vbstate readlock in numerous operations
Any KV update operations grab the lock early and test that VB state
is active, they keep the lock until complete, this certainly protects
queueDirty from colliding with a VB state change and also any other
paths we're unaware of.
The GET operations only use the read lock if the GET has triggered a
expiry/queueDirty.
A couple of other locations that trigger queueDirty are also interlocked
with VB state changes.
(Already Reviewed-on: http://review.couchbase.org/55868)
Change-Id: Icaee69520da230a9fdde6eb85365a7ddae790fd6
Reviewed-on: http://review.couchbase.org/62965
Well-Formed: buildbot <build@couchbase.com>
Reviewed-by: Manu Dhundi <manu@couchbase.com>
Tested-by: buildbot <build@couchbase.com>