Skip to content

fix(processor): zero tuples handed out again after a shrinking resize - #1323

Merged
adsharma merged 1 commit into
LadybugDB:mainfrom
zahariash:fix/ftable-truncate-zeroing
Oct 22, 2026
Merged

adsharma merged 1 commit into
LadybugDB:mainfrom
zahariash:fix/ftable-truncate-zeroing

Conversation

@zahariash

Copy link
Copy Markdown
Contributor

This work was produced with the help of language models.

Follow-up to #1300 (review nit).

FactorizedTable::resize() to fewer tuples gave the tuples back to the block without counting them as uninitialized, so growing the table again handed out the old tuples' bytes instead of zeros. Nothing hits this today: the only shrinking caller, HashTableQueue::mergeInto, only reads the shrunk table and deletes it, so that path does no extra zeroing either.

Fix. The shrink branch goes through DataBlock::truncate(), which gives the bytes back and sets numUninitializedBytes = freeSize, so they are zeroed when claimed again. A DASSERT checks it only shrinks.

Tests. FactorizedTableTest.TuplesAreZeroAfterShrinkAndRegrow shrinks a table to 5 tuples and regrows it via resize() and appendEmptyTuple() across several 4 KB zeroing steps; the regrown tuples must be zero and the kept ones intact. It fails without the new line. Full ctest: 3118/3118.

Shrinking a FactorizedTable with resize() gave tuples back to the block
without counting them as uninitialized, so growing the table again
handed out the old tuples' bytes instead of zeros. The only shrinking
caller (HashTableQueue::mergeInto) never grows the table again, so
nothing hits this today. DataBlock::truncate() gives the bytes back and
marks them to be zeroed when claimed again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@adsharma
adsharma merged commit b630237 into LadybugDB:main Oct 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants