Yanqin Jin
be5cc4c7b8
Remove a race condition between lsdir and rm ( #4440 )
...
Summary:
In DBCompactionTestWithParam::ManualLevelCompactionOutputPathId, there is
a race condition between `DBTestBase::GetSstFileCount` and
`DBImpl::PurgeObsoleteFiles`. The following graph explains why.
```
Timeline db_compact_test_t bg_flush_t bg_compact_t
| [initiate bg flush and
| start waiting]
| flush
| DeleteObsoleteFiles
| [waken up by bg_flush_t which
| signaled in DeleteObsoleteFiles]
|
| [initiate compaction and
| start waiting]
|
| [compact,
| set manual.done to true]
| [signal at the end of
| BackgroundCallFlush]
|
| [waken up by bg_flush_t
| which signaled before
| returning from
| BackgroundCallFlush]
|
| Check manual.done is true
|
| GetSstFileCount <-- race condition --> PurgeObsoleteFiles
V
```
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4440
Differential Revision: D10122628
Pulled By: riversand963
fbshipit-source-id: 3ede73c39fee6ad804dc6ac1ed84759c7e63977f
2018-10-01 11:57:55 -07:00
..
2018-08-23 10:12:58 -07:00
2018-08-09 16:58:40 -07:00
2018-09-14 20:57:22 -07:00
2018-09-13 14:27:31 -07:00
2018-07-13 17:27:39 -07:00
2018-05-03 15:43:09 -07:00
2018-04-27 11:57:39 -07:00
2018-10-01 01:18:10 -07:00
2018-09-27 10:35:00 -07:00
2018-03-05 13:13:41 -08:00
2017-08-19 14:10:08 -07:00
2018-08-24 15:17:54 -07:00
2018-08-24 15:17:54 -07:00
2018-06-21 21:28:05 -07:00
2018-07-13 17:27:39 -07:00
2018-09-15 13:43:04 -07:00
2018-09-14 13:29:56 -07:00
2018-06-28 12:34:40 -07:00
2018-07-27 16:12:23 -07:00
2018-07-27 16:12:23 -07:00
2018-05-29 15:44:34 -07:00
2018-10-01 01:18:10 -07:00
2018-06-27 17:42:38 -07:00
2018-06-27 17:42:38 -07:00
2018-06-27 17:42:38 -07:00
2018-07-13 17:27:39 -07:00
2018-06-27 17:13:34 -07:00
2018-07-13 17:27:39 -07:00
2018-07-13 17:27:39 -07:00
2018-07-13 17:27:39 -07:00
2017-10-17 08:57:09 -07:00
2018-05-24 15:57:33 -07:00
2018-09-17 17:28:15 -07:00
2018-05-30 16:15:16 -07:00
2018-10-01 11:57:55 -07:00
2018-04-15 17:26:26 -07:00
2017-07-15 16:11:23 -07:00
2018-03-21 22:13:34 -07:00
2018-08-29 12:12:55 -07:00
2018-09-15 13:43:04 -07:00
2018-09-26 10:37:48 -07:00
2018-08-03 17:42:34 -07:00
2018-07-11 14:57:46 -07:00
2018-09-26 10:37:48 -07:00
2018-08-22 22:43:13 -07:00
2018-03-15 11:58:12 -07:00
2018-09-15 13:43:04 -07:00
2018-09-17 13:14:07 -07:00
2018-09-26 10:37:48 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-26 21:11:47 -07:00
2018-05-21 14:43:11 -07:00
2018-06-12 16:57:36 -07:00
2018-08-10 17:57:40 -07:00
2018-08-10 17:57:40 -07:00
2018-08-10 17:57:40 -07:00
2018-04-15 17:26:26 -07:00
2018-03-05 13:13:41 -08:00
2018-06-27 12:23:07 -07:00
2018-05-21 16:42:22 -07:00
2018-08-09 16:58:40 -07:00
2018-07-27 16:12:23 -07:00
2018-08-08 07:27:46 -07:00
2017-07-15 16:11:23 -07:00
2018-09-20 15:15:28 -07:00
2018-07-17 14:43:18 -07:00
2018-09-15 00:12:57 -07:00
2018-09-17 17:28:15 -07:00
2018-09-26 10:37:48 -07:00
2018-08-29 12:12:55 -07:00
2018-07-20 14:43:38 -07:00
2018-09-26 10:37:48 -07:00
2018-05-14 21:13:35 -07:00
2018-07-13 17:42:38 -07:00
2018-08-06 18:27:44 -07:00
2018-07-16 17:13:10 -07:00
2018-07-13 17:27:39 -07:00
2018-09-17 13:14:07 -07:00
2018-09-15 13:43:04 -07:00
2018-09-15 13:43:04 -07:00
2018-09-15 13:43:04 -07:00
2018-09-15 13:43:04 -07:00
2018-04-12 17:59:16 -07:00
2018-07-13 22:43:09 -07:00
2018-09-05 18:13:31 -07:00
2018-07-27 16:12:23 -07:00
2018-07-17 14:13:16 -07:00
2018-07-13 17:27:39 -07:00
2018-03-05 13:13:41 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-08-23 10:12:58 -07:00
2018-09-15 13:43:04 -07:00
2018-05-03 15:43:09 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-07-13 17:27:39 -07:00
2018-09-27 10:35:00 -07:00
2018-03-05 13:13:41 -08:00
2018-06-15 17:28:01 -07:00
2018-06-15 17:28:01 -07:00
2018-08-03 17:42:34 -07:00
2018-09-15 13:43:04 -07:00
2018-08-24 18:13:20 -07:00
2018-09-14 11:12:52 -07:00
2018-09-13 17:13:03 -07:00
2018-09-13 17:13:03 -07:00
2018-05-14 10:57:56 -07:00
2018-05-14 10:57:56 -07:00
2018-05-03 15:43:09 -07:00
2018-05-03 15:43:09 -07:00
2018-03-06 16:27:54 -08:00
2017-07-15 16:11:23 -07:00
2018-07-13 17:27:39 -07:00
2018-07-13 17:27:39 -07:00
2018-08-23 17:14:25 -07:00
2018-05-03 15:43:09 -07:00
2018-08-16 10:58:05 -07:00
2018-08-23 17:14:25 -07:00
2018-08-16 10:58:05 -07:00
2017-07-15 16:11:23 -07:00
2018-07-12 14:42:39 -07:00
2018-09-05 18:13:31 -07:00
2017-07-15 16:11:23 -07:00
2018-07-13 17:27:39 -07:00
2018-08-03 13:57:40 -07:00
2018-07-13 17:27:39 -07:00
2018-08-22 22:43:13 -07:00
2017-07-15 16:11:23 -07:00
2018-07-13 17:27:39 -07:00
2018-04-05 11:12:16 -07:00
2018-07-13 17:27:39 -07:00
2018-09-21 16:13:08 -07:00
2018-09-25 14:50:31 -07:00
2018-09-25 14:50:31 -07:00
2018-07-13 22:43:09 -07:00
2018-06-27 12:23:07 -07:00
2018-08-28 12:43:18 -07:00
2018-09-13 17:13:03 -07:00
2018-08-23 10:12:58 -07:00
2017-07-15 16:11:23 -07:00
2018-08-06 16:57:42 -07:00
2018-08-09 16:58:40 -07:00
2018-08-09 16:58:40 -07:00
2018-08-23 10:12:58 -07:00
2018-03-05 13:13:41 -08:00
2018-03-05 13:13:41 -08:00
2018-09-13 17:13:03 -07:00
2017-11-10 17:28:12 -08:00
2018-07-27 16:12:23 -07:00
2018-09-14 19:43:04 -07:00
2018-05-21 14:43:11 -07:00
2018-08-20 14:58:00 -07:00
2018-08-20 14:58:00 -07:00
2018-08-20 14:58:00 -07:00
2018-08-23 10:12:58 -07:00
2018-09-27 10:35:00 -07:00
2018-08-20 14:58:00 -07:00
2018-08-23 10:12:58 -07:00
2018-09-13 17:13:03 -07:00
2018-01-11 18:57:33 -08:00
2017-07-15 16:11:23 -07:00
2018-06-28 18:58:29 -07:00
2018-07-06 17:59:13 -07:00
2018-07-24 00:13:18 -07:00
2018-07-13 17:27:39 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-07-17 17:27:51 -07:00
2018-07-17 17:27:51 -07:00