Levi Tamasi
db536ee045
Propagate errors from UpdateBoundaries ( #9851 )
...
Summary:
In `FileMetaData`, we keep track of the lowest-numbered blob file
referenced by the SST file in question for the purposes of BlobDB's
garbage collection in the `oldest_blob_file_number` field, which is
updated in `UpdateBoundaries`. However, with the current code,
`BlobIndex` decoding errors (or invalid blob file numbers) are swallowed
in this method. The patch changes this by propagating these errors
and failing the corresponding flush/compaction. (Note that since blob
references are generated by the BlobDB code and also parsed by
`CompactionIterator`, in reality this can only happen in the case of
memory corruption.)
This change necessitated updating some unit tests that involved
fake/corrupt `BlobIndex` objects. Some of these just used a dummy string like
`"blob_index"` as a placeholder; these were replaced with real `BlobIndex`es.
Some were relying on the earlier behavior to simulate corruption; these
were replaced with `SyncPoint`-based test code that corrupts a valid
blob reference at read time.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/9851
Test Plan: `make check`
Reviewed By: riversand963
Differential Revision: D35683671
Pulled By: ltamasi
fbshipit-source-id: f7387af9945c48e4d5c4cd864f1ba425c7ad51f6
2022-04-15 20:25:48 -07:00
..
2022-04-15 20:25:48 -07:00
2022-04-15 20:25:48 -07:00
2022-04-14 17:12:16 -07:00
2022-03-15 09:50:21 -07:00
2021-09-29 04:04:40 -07:00
2022-04-15 20:25:48 -07:00
2022-04-14 11:11:04 -07:00
2022-04-05 09:52:33 -07:00
2022-03-23 10:00:54 -07:00
2021-12-10 08:13:26 -08:00
2022-03-24 13:05:17 -07:00
2022-04-13 07:34:01 -07:00
2022-02-22 12:23:00 -08:00
2021-12-10 08:13:26 -08:00
2022-02-16 23:18:14 -08:00
2022-04-11 15:39:31 -07:00
2021-10-18 23:32:01 -07:00
2022-04-11 15:39:31 -07:00
2022-04-14 09:38:55 -07:00
2022-04-13 17:10:43 -07:00
2021-07-23 08:38:45 -07:00
2022-04-15 20:25:48 -07:00
2022-01-27 13:01:09 -08:00
2021-07-23 08:38:45 -07:00
2022-04-01 16:06:14 -07:00
2022-03-31 20:00:52 -07:00
2021-07-30 12:16:44 -07:00
2020-06-15 10:47:02 -07:00
2022-03-21 12:04:33 -07:00
2021-11-08 11:05:59 -08:00
2021-05-05 14:00:17 -07:00
2022-01-28 13:28:38 -08:00
2022-04-11 10:26:55 -07:00
2022-04-11 10:26:55 -07:00
2021-07-23 08:38:45 -07:00
2022-04-15 20:25:48 -07:00
2021-08-10 11:10:07 -07:00
2022-03-04 11:35:28 -08:00
2021-07-23 08:38:45 -07:00
2022-04-05 12:26:36 -07:00
2021-07-23 08:38:45 -07:00
2022-02-08 19:31:28 -08:00
2022-04-14 09:38:55 -07:00
2022-03-15 09:50:21 -07:00
2022-03-08 13:19:39 -08:00
2022-04-13 13:28:09 -07:00
2022-04-06 10:33:00 -07:00
2021-09-07 13:28:29 -07:00
2022-04-06 10:33:00 -07:00
2021-07-23 08:38:45 -07:00
2022-03-18 16:35:51 -07:00
2022-02-09 12:36:43 -08:00
2022-03-22 10:22:18 -07:00
2022-03-29 14:36:35 -07:00
2021-11-18 17:31:50 -08:00
2022-04-11 15:39:31 -07:00
2022-03-11 16:13:23 -08:00
2022-02-08 12:15:35 -08:00
2021-11-08 11:05:59 -08:00
2021-11-08 11:05:59 -08:00
2021-11-08 11:05:59 -08:00
2021-11-10 10:49:04 -08:00
2022-03-11 16:13:23 -08:00
2021-11-08 11:05:59 -08:00
2022-03-15 14:45:34 -07:00
2022-03-15 14:45:34 -07:00
2022-03-15 14:45:34 -07:00
2022-03-23 19:41:31 -07:00
2021-12-08 14:30:57 -08:00
2022-03-18 16:35:51 -07:00
2022-04-15 18:12:06 -07:00
2022-04-15 18:12:06 -07:00
2021-12-16 17:15:13 -08:00
2022-01-04 16:45:49 -08:00
2021-12-13 09:00:36 -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
2022-03-30 15:55:31 -07:00
2022-02-08 12:15:35 -08:00
2022-04-14 11:11:04 -07:00
2022-03-15 14:45:34 -07:00
2020-02-20 12:09:57 -08:00
2021-03-19 12:09:47 -07:00
2022-01-12 09:31:12 -08:00
2022-01-21 11:37:46 -08:00
2022-01-21 11:37:46 -08:00
2022-03-11 16:13:23 -08:00
2022-02-18 18:23:07 -08:00
2021-12-16 17:15:13 -08:00
2021-07-23 08:38:45 -07:00
2022-04-14 09:38:55 -07:00
2022-04-13 13:36:30 -07:00
2022-04-14 11:11:04 -07:00
2021-11-16 10:20:50 -08:00
2022-02-22 12:23:00 -08:00
2022-02-17 16:19:31 -08:00
2022-03-09 15:49:53 -08:00
2022-03-09 15:49:53 -08:00
2022-03-09 15:49:53 -08:00
2022-03-09 15:49:53 -08:00
2022-03-09 15:49:53 -08:00
2020-02-20 12:09:57 -08:00
2021-03-19 12:09:47 -07:00
2021-09-29 04:04:40 -07:00
2021-09-07 11:31:59 -07:00
2020-02-20 12:09:57 -08:00
2022-01-12 09:31:12 -08:00
2022-03-15 14:45:34 -07:00
2022-03-31 20:00:52 -07:00
2022-03-15 14:45:34 -07:00
2022-01-27 14:55:04 -08:00
2022-04-13 07:34:01 -07:00
2021-05-10 12:50:25 -07:00
2021-11-19 17:53:47 -08:00
2021-11-19 17:53:47 -08:00
2021-11-19 17:53:47 -08:00
2020-02-20 12:09:57 -08:00
2022-01-04 16:45:49 -08:00
2021-12-10 11:05:35 -08:00
2020-12-23 16:55:53 -08:00
2021-09-29 04:04:40 -07:00
2021-09-29 04:04:40 -07:00
2021-03-15 04:34:11 -07:00
2021-07-23 08:38:45 -07:00
2022-03-12 11:45:56 -08:00
2022-03-12 11:45:56 -08:00
2021-09-07 11:31:59 -07:00
2022-01-21 11:37:46 -08:00
2021-09-10 10:00:26 -07:00
2021-03-15 04:34:11 -07:00
2021-10-06 07:48:31 -07:00
2021-10-06 07:48:31 -07:00
2020-10-28 10:12:58 -07:00
2021-03-25 21:18:08 -07:00
2021-10-06 07:48:31 -07:00
2021-06-18 04:57:27 -07:00
2021-06-18 04:57:27 -07:00
2021-09-10 10:00:26 -07:00
2021-07-28 16:44:14 -07:00
2022-04-15 20:25:48 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2021-09-10 10:00:26 -07:00
2022-03-15 09:55:49 -07:00
2022-01-21 11:37:46 -08:00
2021-11-18 11:43:44 -08:00
2021-03-25 15:00:45 -07:00
2021-11-19 11:37:06 -08:00
2022-04-14 17:12:16 -07:00
2022-04-14 17:12:16 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2022-02-09 12:36:43 -08:00
2022-02-09 12:36:43 -08:00
2022-01-21 11:37:46 -08:00
2022-03-23 19:41:31 -07:00
2021-06-10 12:55:20 -07:00
2022-04-15 20:25:48 -07:00
2022-04-15 20:25:48 -07:00
2022-04-15 20:25:48 -07:00
2022-03-23 19:41:31 -07:00
2022-04-15 20:25:48 -07:00
2022-04-13 07:34:01 -07:00
2022-03-18 16:35:51 -07: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
2021-09-21 09:23:48 -07:00
2022-04-14 17:12:16 -07:00
2022-04-14 17:12:16 -07:00
2020-02-20 12:09:57 -08:00
2022-02-22 14:23:01 -08:00
2022-02-22 14:23:01 -08:00
2022-04-01 10:30:17 -07:00
2021-07-07 11:14:05 -07:00
2020-02-20 12:09:57 -08:00
2021-03-18 09:47:31 -07:00
2021-03-18 09:47:31 -07:00
2021-03-18 09:47:31 -07:00
2022-03-08 13:19:39 -08:00
2022-03-08 13:19:39 -08:00