Skip to content

Harden: stage-1 (Hardware/Shadow) reclaim re-block never advances proof_failures / never parks (latent leak) #514

Description

@ryanbreen

Summary

The reclaim drain's second-proof re-push path in kernel/src/task/process_task.rs (~L939-961) only increments proof_failures for Cached/LiveRow re-block reasons. An entry that is perpetually re-blocked by Hardware/Shadow never gets its proof_failures counter advanced, so it never crosses the parking/aging threshold — it just gets re-pushed onto the queue indefinitely.

This is a real structural asymmetry in the re-block handling, not a flake: it does not currently trigger the reclaim-pairing test failure (that was a test-observation race, fixed separately in the branch that merged as fix/reclaim-pairing-test-quiesce), but it represents a latent leak path where an entry stuck in a Hardware/Shadow re-block loop is never parked/aged out.

Where

kernel/src/task/process_task.rs, second-proof re-push path around lines 939-961.

Ask

Audit the re-block reason handling in that path and make proof_failures accounting (and therefore parking/aging) symmetric across all re-block reasons (Cached, LiveRow, Hardware, Shadow), or explicitly document why Hardware/Shadow are intentionally exempt if that is in fact correct.

Context

Surfaced during root-cause investigation of the reclaim-pairing test flake (PR #513). Separate hardening work — not blocking, not part of that fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions