Skip to content

Merge upstream/main into kannaka-buzz main (sync 2026-07-28 #4) - #9

Merged
flaukowski merged 2 commits into
mainfrom
sync/upstream-20260728-4
Jul 29, 2026
Merged

Merge upstream/main into kannaka-buzz main (sync 2026-07-28 #4)#9
flaukowski merged 2 commits into
mainfrom
sync/upstream-20260728-4

Conversation

@flaukowski

Copy link
Copy Markdown
Owner

Summary

Pulls the one outstanding upstream commit: fix(relay): avoid subscription lock inversion (block#3413) — a relay deadlock-class fix, which is why it's worth a sync on its own. Conflict-free; cargo check -p buzz-relay clean locally. Fork is 0 behind block/buzz:main after this lands.

Merge with a merge commit (no squash/rebase).

City-Agent: claude-fable-5

🤖 Generated with Claude Code

tlongwell-block and others added 2 commits July 28, 2026 21:13
## Summary
- drop the `subs` DashMap guard before mutating subscription indexes
- snapshot fan-out candidate vectors so index guards are dropped before
looking up `subs`
- add concurrent fan-out/replacement regression coverage

## Why
`fan_out_scoped` previously held an index guard while `push_match`
acquired `subs`, while CLOSE and same-ID replacement held `subs` while
removing from an index. The reverse ordering made an AB/BA deadlock
reachable and could synchronously park all Tokio workers.

## Validation
- `rustup run 1.95.0 cargo test -p buzz-relay` — 769 library tests
passed, 33 ignored; 11 binary tests passed; doc tests passed
- push hooks with pinned Rust 1.95 — branch-skew, repository Rust
suites, and desktop Tauri suite passed
- `git diff --check`

## Residual risk
Fan-out now clones bounded candidate vectors before matching. This adds
allocation/copy cost proportional to the indexed candidate set, in
exchange for eliminating nested DashMap guards. This fixes the concrete
lock cycle but does not prove every observed production wedge had this
cause.

---------

Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@buzz.block.builderlab.xyz>
Signed-off-by: npub1jh9wn95s0472h86ahapupaf7m6kx4v9sx2n0atj2hltcfer8k06s5n3pyf <95cae996907d7cab9f5dbf43c0f53edeac6ab0b032a6feae4abfd784e467b3f5@buzz.block.builderlab.xyz>
Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@buzz.block.builderlab.xyz>
Co-authored-by: npub1jh9wn95s0472h86ahapupaf7m6kx4v9sx2n0atj2hltcfer8k06s5n3pyf <95cae996907d7cab9f5dbf43c0f53edeac6ab0b032a6feae4abfd784e467b3f5@buzz.block.builderlab.xyz>
@flaukowski
flaukowski merged commit 3a41f86 into main Jul 29, 2026
48 of 50 checks passed
@flaukowski
flaukowski deleted the sync/upstream-20260728-4 branch July 30, 2026 11:56
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