Skip to content

[SDK Sentinel] Avoid worker deployment routing propagation flake - #553

Closed
sdk-sentinel-bot wants to merge 1 commit into
temporalio:mainfrom
sdk-sentinel-forks:automation/sdk-sentinel/ci-flake/ruby/32431317264-1-fbdcf8ca5655
Closed

[SDK Sentinel] Avoid worker deployment routing propagation flake#553
sdk-sentinel-bot wants to merge 1 commit into
temporalio:mainfrom
sdk-sentinel-forks:automation/sdk-sentinel/ci-flake/ruby/32431317264-1-fbdcf8ca5655

Conversation

@sdk-sentinel-bot

Copy link
Copy Markdown

Caution

This PR contains untrusted AI-generated code. Do not approve or run CI until a maintainer has reviewed the diff. SDK Sentinel verified that GitHub Actions remained approval-gated with zero executable jobs when this PR was opened.

Summary

Prevents the worker-deployment versioning test from failing when routing propagation takes longer than the shared 10-second polling budget. A [macOS Ruby 3.3 job](https://github.com/temporalio/sdk-ruby/actions/runs/32416404833/job/96578433616) observed an in-progress state, while peer jobs on the same SHA completed. See the [last known good run](https://github.com/temporalio/sdk-ruby/actions/runs/32396288823) and [first observed failure](https://github.com/temporalio/sdk-ruby/actions/runs/32416404833).

Root cause

Routing configuration propagation is asynchronous. The test treated a legitimate in-progress state after 10 seconds as a failure, making it sensitive to server scheduling latency.

Fix

Use a call-specific 30-second bound for routing propagation. The existing 200ms polling and terminal-state assertions remain unchanged.

Validation

Five unchanged local attempts did not reproduce the failure, and five patched attempts passed. Focused RuboCop, syntax, and diff checks passed. The unchanged baseline passed. Canonical candidate validation could not start because Rust was unavailable; the macOS Ruby 3.3 job and canonical validation remain required.

Validation status: validation-incomplete

  • Flake confidence: high
  • Fix confidence: medium
  • Value: medium
  • Patch scope: standard — 1 changed file; 776 B
  • Local reproduction: not-reproduced — Five unchanged direct Linux executions passed; the standard Rake entry point was unavailable because Rust was absent.
  • Regression coverage: pass-after-only — The existing focused test passed five times after the change; no deterministic pre-change failure was obtained.
  • Unchanged baseline (RuboCop, Steep, Rust lint, and native compile) — passed
  • Independent candidate (RuboCop, Steep, Rust lint, and native compile) — did not pass (failure)

Investigator-run checks

  • bundle exec ruby -Itest -Ilib test/worker_workflow_versioning_test.rb --name=test_worker_deployment_version — passed; 5 attempt(s). Five unchanged Linux executions passed; the CI timing failure did not reproduce.
  • bundle exec ruby -Itest -Ilib test/worker_workflow_versioning_test.rb --name=test_worker_deployment_version — passed; 5 attempt(s). Five candidate executions passed against loopback Temporal servers.
  • .ci-flake-runtime/input/validate.sh (trusted unchanged baseline) — passed; 1 attempt(s). The trusted pre-change baseline passed.
  • .ci-flake-runtime/input/validate.sh — failed; 1 attempt(s). Candidate validation stopped during Rake initialization because rustup had no installed/default toolchain.
  • bundle exec rubocop test/worker_workflow_versioning_test.rb && ruby -c test/worker_workflow_versioning_test.rb && git diff --check — passed; 1 attempt(s). Focused lint, syntax, and whitespace checks passed.

Required target CI

  • Continuous Integration / build-lint-test (macos-latest, 3.3, false)
  • Canonical .ci-flake-runtime/input/validate.sh with an installed Rust toolchain

Residual risks

  • The 30-second bound was not exercised by a local reproduction.
  • macOS Ruby 3.3 behavior remains unverified.
  • Independent canonical validation was blocked before repository checks began.

Automation provenance

If this finding should not be fixed, apply the sdk-sentinel:false-positive label and close the PR. Sentinel will suppress the finding until its affected source changes.

SDK Sentinel recurrence history

  • Unique failed CI run attempts: 1
  • First occurrence: 2026-08-20 21:13 UTC
  • Latest occurrence: 2026-08-20 21:13 UTC
  • Recent occurrences:

@sdk-sentinel-bot
sdk-sentinel-bot requested a review from a team as a code owner August 21, 2026 01:11
@chris-olszewski

Copy link
Copy Markdown
Member

Unsure what this one is about, but it is referencing a PR branch failures

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