Levi Tamasi
cc4c9e80e4
Fix the sorting of KeyContexts for batched MultiGet ( #8633 )
...
Summary:
`CompareKeyContext::operator()` on the trunk has a bug: when comparing
column family IDs, `lhs` is used for both sides of the comparison. This
results in the `KeyContext`s getting sorted solely based on key, which
in turn means that keys with the same column family do not necessarily
form a single range in the sorted list. This violates an assumption of the
batched `MultiGet` logic, leading to the same column family
showing up multiple times in the list of `MultiGetColumnFamilyData`.
The end result is the code attempting to check out the thread-local
`SuperVersion` for the same CF multiple times, causing an
assertion violation in debug builds and memory corruption/crash in
release builds.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/8633
Test Plan: `make check`
Reviewed By: riversand963
Differential Revision: D30169182
Pulled By: ltamasi
fbshipit-source-id: a47710652df7e95b14b40fb710924c11a8478023
2021-09-08 12:25:27 -07:00
..
2020-12-14 13:48:22 -08:00
2020-12-07 20:11:35 -08:00
2021-09-08 12:25:27 -07:00
2020-12-04 21:29:38 -08:00
2020-12-04 21:29:38 -08:00
2020-11-12 18:44:34 -08:00
2020-11-12 18:44:34 -08:00
2020-10-16 11:04:01 -07:00
2020-10-28 23:22:27 -07:00
2020-11-23 21:08:22 -08:00
2020-12-11 11:18:21 -08:00
2020-12-18 21:34:36 -08:00
2020-07-02 19:25:41 -07:00
2020-10-01 19:14:14 -07:00
2020-02-20 12:09:57 -08:00
2020-10-28 23:22:27 -07:00
2020-05-12 18:23:33 -07:00
2020-11-20 18:40:24 -08:00
2020-11-07 22:23:27 -08:00
2021-09-08 12:25:27 -07:00
2020-12-09 21:21:16 -08:00
2020-11-12 20:46:14 -08:00
2020-10-28 10:12:58 -07:00
2020-11-23 21:08:22 -08:00
2020-10-19 11:38:48 -07:00
2020-10-27 10:33:09 -07:00
2020-09-10 22:35:25 -07:00
2020-12-03 19:22:24 -08:00
2020-10-22 17:06:20 -07:00
2020-06-15 10:47:02 -07:00
2020-08-17 18:42:25 -07:00
2020-08-17 18:42:25 -07:00
2020-12-04 21:29:38 -08:00
2020-12-04 21:29:38 -08:00
2020-12-09 21:21:16 -08:00
2020-12-04 21:29:38 -08:00
2020-12-08 15:55:04 -08:00
2020-08-17 18:42:25 -07:00
2020-12-09 21:21:16 -08:00
2020-12-08 15:55:04 -08:00
2020-12-08 15:55:04 -08:00
2020-12-08 15:55:04 -08:00
2020-11-11 20:32:28 -08:00
2020-10-27 10:33:09 -07:00
2020-11-07 22:23:27 -08:00
2020-10-27 10:33:09 -07:00
2020-09-04 23:25:03 -07:00
2020-11-06 14:25:14 -08:00
2020-08-17 18:42:25 -07:00
2020-12-07 10:24:33 -08:00
2020-12-08 15:55:04 -08:00
2020-10-27 10:33:09 -07:00
2020-10-27 10:33:09 -07:00
2020-10-27 10:33:09 -07:00
2020-12-09 21:21:16 -08:00
2020-12-02 13:00:53 -08:00
2020-08-17 18:42:25 -07:00
2020-12-09 21:21:16 -08:00
2020-10-28 23:22:27 -07:00
2020-12-02 13:00:53 -08:00
2020-12-02 13:00:53 -08:00
2020-10-22 17:06:20 -07:00
2021-01-08 10:15:54 -08:00
2021-01-08 10:15:54 -08:00
2020-12-07 20:11:35 -08:00
2020-10-02 16:41:13 -07:00
2020-08-25 10:46:11 -07:00
2020-02-20 12:09:57 -08:00
2020-12-09 21:21:16 -08:00
2020-12-09 21:21:16 -08:00
2020-08-18 16:20:54 -07:00
2020-12-07 17:37:17 -08:00
2020-10-28 23:22:27 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-10-28 23:22:27 -07:00
2020-12-03 19:22:24 -08:00
2020-12-02 09:31:14 -08:00
2020-12-02 09:31:14 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-12-08 15:55:04 -08:00
2020-04-15 17:40:44 -07:00
2020-10-28 10:12:58 -07:00
2020-08-18 16:20:54 -07:00
2020-10-27 10:33:09 -07:00
2020-12-19 08:00:14 -08:00
2020-12-19 08:00:14 -08:00
2020-05-04 15:08:13 -07:00
2020-10-28 23:22:27 -07:00
2020-02-20 12:09:57 -08:00
2020-11-30 18:11:38 -08:00
2020-08-26 10:39:20 -07:00
2020-11-30 18:11:38 -08:00
2020-06-18 10:09:12 -07:00
2020-03-27 16:04:43 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-03-04 20:15:25 -08:00
2020-12-03 19:22:24 -08:00
2020-12-14 13:48:22 -08:00
2020-12-14 13:48:22 -08:00
2020-12-14 13:48:22 -08:00
2020-12-14 13:48:22 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-10-28 10:12:58 -07:00
2020-10-28 10:12:58 -07:00
2020-02-20 12:09:57 -08:00
2020-10-26 18:23:01 -07:00
2020-10-28 23:22:27 -07:00
2020-09-16 15:48:07 -07:00
2020-11-10 23:42:13 -08:00
2020-11-10 23:42:13 -08:00
2020-10-27 10:33:09 -07:00
2020-10-27 10:33:09 -07:00
2021-01-21 12:35:30 -08:00
2021-01-21 12:35:30 -08:00
2020-02-20 12:09:57 -08:00
2020-10-28 23:22:27 -07:00
2020-02-20 12:09:57 -08:00
2020-10-02 17:01:15 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-10-28 10:12:58 -07:00
2020-10-28 10:12:58 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-08-14 19:20:58 -07:00
2020-09-29 16:30:08 -07:00
2020-11-12 18:44:34 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-11-03 09:45:41 -08:00
2020-08-27 11:21:52 -07:00
2020-09-14 17:01:01 -07:00
2020-10-28 10:12:58 -07:00
2020-02-20 12:09:57 -08:00
2020-08-18 16:20:54 -07:00
2020-08-12 17:31:23 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-10-28 23:22:27 -07:00
2020-12-14 14:07:52 -08:00
2020-06-09 16:51:23 -07:00
2020-12-05 14:18:22 -08:00
2020-11-11 08:00:14 -08:00
2021-01-20 08:34:52 -08:00
2021-01-20 08:34:52 -08:00
2021-01-20 08:34:52 -08:00
2020-12-11 11:18:21 -08:00
2020-12-14 13:48:22 -08:00
2020-12-18 21:34:36 -08:00
2020-12-09 16:02:12 -08:00
2020-12-09 16:02:12 -08:00
2020-12-09 16:02:12 -08:00
2020-10-22 17:06:20 -07:00
2020-10-22 17:06:20 -07:00
2020-08-12 17:31:23 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-12-08 15:55:04 -08:00
2020-11-23 16:29:04 -08:00
2020-06-30 12:31:30 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-12-09 21:21:16 -08:00
2020-10-14 10:47:58 -07:00