mirror of
https://github.com/versity/scoutfs.git
synced 2026-10-01 12:15:38 +00:00
Reproduce the freed-list commit deadlock and show a fixed server recovers. The alloc_fill_freed_list trigger stuffs both server_meta_freed heads to near-full in a single commit. It claims runs of free blocks and appends them straight into the head blocks, leaking whatever isn't used. Filling both heads in one commit makes the wedge reproducible. There's no window for the drain to empty one head before the other fills. An unfixed server is left with both heads full and wedges on the next commit. A fixed server drains them and stays live. Signed-off-by: Auke Kok <auke.kok@versity.com>
9 lines
241 B
Plaintext
9 lines
241 B
Plaintext
== make throwaway scratch fs
|
|
== stuff both server freed heads full in one commit
|
|
== confirm both heads were stuffed (not a no-op)
|
|
both freed heads stuffed
|
|
== a fixed server drains them and keeps making progress
|
|
one
|
|
two
|
|
== cleanup scratch fs
|