Skip to content

Move task status updates onto the RPC loop.#5768

Merged
rjpower merged 1 commit into
mainfrom
iris-on-loop-task-status
May 15, 2026
Merged

Move task status updates onto the RPC loop.#5768
rjpower merged 1 commit into
mainfrom
iris-on-loop-task-status

Conversation

@rjpower
Copy link
Copy Markdown
Collaborator

@rjpower rjpower commented May 15, 2026

No description provided.

@rjpower rjpower merged commit dc4d5df into main May 15, 2026
29 of 30 checks passed
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented May 15, 2026

Claude finished @rjpower's task in 5m 50s —— View job


Code review

No issues found. Checked for bugs and CLAUDE.md / AGENTS.md compliance.

What was reviewed

  • @on_loop decorator and AsyncServiceAdapter wiring in lib/iris/src/iris/rpc/async_adapter.py — marker is correctly detected on bound methods (attribute lookup proxies through __func__).

  • set_task_status_text annotated with @on_loop in lib/iris/src/iris/cluster/controller/service.py — handler delegates to two plain dict writes in ControllerTransitions.record_task_status_text; no I/O or locks, safe to run inline on the event loop. Concurrent reads from thread-pool handlers are GIL-atomic.

  • scheduler_min_interval bumped to 10.0s (now == scheduler_max_interval) in lib/iris/src/iris/cluster/controller/controller.pyExponentialBackoff is well-defined when initial == maximum; effectively a fixed 10s cadence.

  • New JSONL OutputFormat and default-format swap in lib/finelog/src/finelog/deploy/cli.py — printer is registered correctly in _PRINTERS.

  • Dashboard comment addition in lib/iris/src/iris/cluster/controller/dashboard.py — accurate clarification of the on-loop vs. threaded dispatch model.

  • Check PR review eligibility

  • Identify relevant CLAUDE.md / AGENTS.md files

  • Summarize PR changes

  • Run parallel review agents (compliance + bugs + logic/security)

  • Validate found issues

  • Post review
    • Branch: claude/pr-5768-20260515-1806

@rjpower rjpower deleted the iris-on-loop-task-status branch May 15, 2026 18:06
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8ffb73883d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".


# --- Task Status Text Push ---

@on_loop
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep SetTaskStatusText off the ASGI event loop

Decorating set_task_status_text with @on_loop moves this hot push-path onto the single-threaded ASGI event loop, so bursts of status updates from many running tasks are handled serially and can queue unrelated RPCs behind them. In practice this can degrade controller responsiveness (e.g., job control and worker RPC latency) under load, because AsyncServiceAdapter runs @on_loop handlers inline instead of asyncio.to_thread.

Useful? React with 👍 / 👎.

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