SIGN IN SIGN UP

Preserve expired but unreaped fields across listpack-to-hashtable conversion (#4704)

`hashTypeConvertListpack()` iterates with `hashTypeNext()`, which skips
logically-expired fields, so a field whose TTL has passed but which the
reaper hasn't collected yet never reaches the new hashtable. It's
deleted as a side
effect of an encoding change.

## What I did

Bracket the conversion loop in `hashTypeIgnoreTTL()` so expired fields
are carried across and the normal reaper deletes and propagates them.
Also introduced a new function `hashTypeListpackTTLIsIgnored` which
returns the file-scoped TTL Ignored boolean flag, this is used to save
the state and then restore it.

Closes #4699

---------

Signed-off-by: frostzt <aidenfrostbite@gmail.com>
S
Sourav Singh Rawat committed
7b87fee268b8f3de41e9e1fbd4bbb3f1a8fbd0aa
Parent: 1c847e8
Committed by GitHub <noreply@github.com> on 9/18/2026, 7:29:51 AM