sdong dade61ac26 Mitigate regression bug of options.max_successive_merges hit during DB Recovery
Summary:
After 1b8a2e8fdd1db0dac3cb50228065f8e7e43095f0, DB Pointer is passed to WriteBatchInternal::InsertInto() while DB recovery. This can cause deadlock if options.max_successive_merges hits. In that case DB::Get() will be called. Get() will try to acquire the DB mutex, which is already held by the DB::Open(), causing a deadlock condition.

This commit mitigates the problem by not passing the DB pointer unless 2PC is allowed.

Test Plan: Add a new test and run it.

Reviewers: IslamAbdelRahman, andrewkr, kradhakrishnan, horuff

Reviewed By: kradhakrishnan

Subscribers: leveldb, andrewkr, dhruba

Differential Revision: https://reviews.facebook.net/D62625
2016-08-25 17:30:34 -07:00
..
2016-05-17 13:11:56 -07:00
2016-05-17 13:11:56 -07:00
2016-06-09 19:03:10 -07:00
2016-07-08 17:50:51 -07:00
2016-08-11 23:34:19 -07:00
2016-07-08 17:50:51 -07:00
2016-07-27 18:45:53 -07:00
2016-07-13 15:36:22 -07:00
2016-06-25 08:29:40 +01:00