Andrew Kryczka a265ac75ab Fix compression dictionary sampling with dedicated range tombstone SSTs (#8141)
Summary:
Return early in case there are zero data blocks when
`BlockBasedTableBuilder::EnterUnbuffered()` is called. This crash can
only be triggered by applying dictionary compression to SST files that
contain only range tombstones. It cannot be triggered by a low buffer
limit alone since we only consider entering unbuffered mode after
buffering a data block causing the limit to be breached, or `Finish()`ing the file. It also cannot
be triggered by a totally empty file because those go through
`Abandon()` rather than `Finish()` so unbuffered mode is never entered.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/8141

Test Plan: added a unit test that repro'd the "Floating point exception"

Reviewed By: riversand963

Differential Revision: D27495640

Pulled By: ajkr

fbshipit-source-id: a463cfba476919dc5c5c380800a75a86c31ffa23
2021-04-01 10:00:27 -07:00
..
2021-03-19 12:13:59 -07:00
2021-03-09 20:44:23 -08:00
2021-03-09 02:21:25 -08:00
2020-06-15 10:47:02 -07:00
2021-03-18 09:47:31 -07:00
2021-03-09 20:53:33 -08:00
2020-12-23 16:55:53 -08:00
2020-12-09 16:02:12 -08:00