Skip to content

checklocks: fix fragmentation shutdown locking - #14296

Closed
tamird wants to merge 1 commit into
google:masterfrom
tamird:checklocks-fragmentation-release
Closed

checklocks: fix fragmentation shutdown locking#14296
tamird wants to merge 1 commit into
google:masterfrom
tamird:checklocks-fragmentation-release

Conversation

@tamird

@tamird tamird commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

The post-Release check added in a4fb3b2 returns an error while still holding mu, so a later Process or Release blocks indefinitely. Unlock before returning and enforce the existing outer-state and release-helper lock contracts.

Document how marking a reassembler done excludes further processing and gives release exclusive cleanup ownership. Timeout callbacks run with the fragmentation mutex held and cannot reenter the owner.

Cover processing after release followed by another release, and make existing internal-state inspections follow the guarded contract.

Assisted-by: Codex

@tamird

tamird commented Aug 22, 2026

Copy link
Copy Markdown
Contributor Author

r? @konstantin-s-bogom Could you review post-release error-path unlocking and exclusive reassembler cleanup?

Focused local Bazel checks passed. Upstream checks have not reported yet.

cc @nybidari

Assisted-by: Codex

@github-actions
github-actions Bot requested review from nybidari and xinzhong August 22, 2026 11:44
The post-Release check added in a4fb3b2 returns an error while
still holding mu, so a later Process or Release blocks indefinitely.
Unlock before returning and enforce the outer-state, reassembly and
helper lock contracts.

Keep processing checked while narrowly exempting cleanup accesses after
release itself marks the reassembler done and gains exclusive ownership.
Use a value-based sort comparator instead of capturing guarded state.
Explain the missing owner at intrusive links and the timeout interface,
whose callbacks must not reenter the fragmentation owner.

Cover processing after release followed by another release, and make
existing internal-state inspections follow the guarded contract. Keep
a real deadline for the mutex-deadlock regression: such waits do not
advance synctest's clock.

Assisted-by: Codex
@tamird
tamird force-pushed the checklocks-fragmentation-release branch from 1ab6fbf to bc888a4 Compare August 22, 2026 16:19
@tamird

tamird commented Aug 23, 2026

Copy link
Copy Markdown
Contributor Author

Closing in favor of consolidated #14338. The expanded replacement commits are prepared locally; the replacement branch has not been pushed yet.

Assisted-by: Codex

@tamird tamird closed this Aug 23, 2026
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.

1 participant