MB-20247: Check callback return value for failure 37/68937/3
authorJim Walker <jim@couchbase.com>
Wed, 19 Oct 2016 16:04:18 +0000 (17:04 +0100)
committerDave Rigby <daver@couchbase.com>
Thu, 20 Oct 2016 20:09:07 +0000 (20:09 +0000)
commit059e4bc4989bfb8d6e097eb4a1162d644338e5a9
treee74e0a8c1f9a22f7db9469b97ef63b81710a8eed
parent980832010d294f499fc7ab4565ce8da8bc648190
MB-20247: Check callback return value for failure

The batchWarmupCallback applies many items to the vbucket yet
is not coded to handle failures, e.g. ENOMEM.

These errors are now checked for and the warmup stops when an error
is found.

Testing of this is difficult as it was always quite theoretical:

1. The real failure case here is very hard to hit, I think if you
warmup close to DGM whilst racing deletes/evict from the frontend
you could encounter this situation.

2. warmup has very little unit-testing that can be adapted.

However I've built an instrumented ep-engine that would force the
error condition after n callbacks and I've ran that version under
valgrind and ASAN.

Change-Id: I05d35e10e577a3b5c2c7d21807996ab7b8455cc1
Reviewed-on: http://review.couchbase.org/68937
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
src/ep.cc
src/warmup.cc