Skip to content

Navigation Menu

Sign in
Sign up

fix(relay): add a retry hint when shared admission is unavailable - #7405

Open
frahlg wants to merge 1 commit into
block:main from
frahlg:codex/admission-retry-hint-20260905
Open

fix(relay): add a retry hint when shared admission is unavailable #7405
frahlg wants to merge 1 commit into
block:main from
frahlg:codex/admission-retry-hint-20260905

Conversation

@frahlg

@frahlg frahlg commented Sep 6, 2026
edited
Loading

Copy link
Copy Markdown

When Redis admission fails, the relay sends rate-limited: shared admission unavailable without a retry hint. Mobile treats a rate-limited CLOSED with no hint as a ten-second session-wide gate, even if the Redis failure was brief.

Add retry in 1s to this WebSocket rejection. This is a retry delay, not a claim that Redis will recover within a second. Admission still fails closed, configured quota resets keep their existing hints, and EVENT/REQ/COUNT rejections keep their existing correlation fields. HTTP responses do not change.

The three regression assertions drive enforce_ws_admission with deliberately unreachable Redis and inspect the actual outbound EVENT, REQ, and COUNT responses. All three failed before the production change. All seven rejection tests pass after it.

Validation beyond the seven rejection tests:

  • Full just ci passed on a local checkout combining this PR, fix(mobile): close retired relay handshakes #7386 , and perf(mobile): parallelize independent channel startup reads #7397 .
  • All 1,040 relay library tests passed with isolated PostgreSQL 17 and Redis 7 (89 ignored). A mesh echo test timed out on the first run, then passed alone and in the complete repeat. The six earlier media fixture failures passed once PostgreSQL was available.
  • All nine relay boot-lifecycle integration tests passed.
  • just test remains red at buzz-db::observability_source::p0_pool_acquisitions_use_typed_operation_pairs_without_other, which reports event production path bypasses operation attribution with .fetch_all(pool). The same test fails with the same message from an untouched archive of base commit f038cbbb0. This PR changes none of its source inputs. That failure stops the combined integration run before later packages, so the relay tests above ran separately.

chatgpt-codex-connector[bot] reacted with thumbs up emoji
Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown

🔐 Codex Security Review

Status: review required for the current range.

The current range is 3c7f288c60d67df78577b237e27c3dfc8831aaa1...2f9550a90d66d4a3de576484162b07aebb1a3be8.
A new review must complete for this exact range. When manual authorization
is required, a Block organization member must comment exactly
@buzz-security-review 2f9550a90d66d4a3de576484162b07aebb1a3be8 to authorize a new review.
Any previous review applies only to its recorded range.

chatgpt-codex-connector Bot commented Sep 6, 2026
edited
Loading

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026年09月06日T06:01:21.870307Z 2f9550a Draft marked ready
i️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

AltStyle によって変換されたページ (->オリジナル) /