Skip to content

[SDK Sentinel] Extend local activity executor recovery test timeout - #3181

Open
sdk-sentinel-bot wants to merge 1 commit into
temporalio:mainfrom
sdk-sentinel-forks:automation/sdk-sentinel/ci-flake/java/40977414228-1-cc0bd9c24faf
Open

sdk-sentinel-bot wants to merge 1 commit into
temporalio:mainfrom
sdk-sentinel-forks:automation/sdk-sentinel/ci-flake/java/40977414228-1-cc0bd9c24faf

Conversation

@sdk-sentinel-bot

@sdk-sentinel-bot sdk-sentinel-bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

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

Give the fault-injection test enough time to recover in Temporal Cloud. The [target-branch Cloud job](https://github.com/temporalio/sdk-java/actions/runs/40974431076/job/123798841103) timed out while the companion CLI execution passed. No breaking changes; no server PR is required.

Root cause

The test deliberately rejects seven local-activity executor submissions. That fails workflow-task processing and requires server-mediated recovery. Cloud execution, introduced by the Cloud test classification change, can cross the SDK test rule's unrelated 10-second default. The unchanged source [passed immediately before](https://github.com/temporalio/sdk-java/actions/runs/40774443363/job/123119910543) and then [timed out](https://github.com/temporalio/sdk-java/actions/runs/40774855862/job/123121368943).

Fix

Override only this test's JUnit timeout to 30 seconds, preserving its injected failures and completion assertion.

Validation

The focused in-memory test and formatting/compilation checks pass. The fixed validator was blocked only by read-only submodule metadata in the investigation sandbox. Cloud CI remains required to exercise the original mode.

Validation status: validation-incomplete

  • Flake confidence: high
  • Fix confidence: high
  • Value: high
  • Patch scope: standard — 1 changed file; 774 B
  • Local reproduction: not-reproduced — The in-memory focused test passed before the edit; Temporal Cloud was unavailable locally.
  • Regression coverage: pass-after-only — The existing fault-injection test passed after receiving the Cloud-appropriate timeout override.
  • Unchanged baseline (Gradle formatting and test-source compilation) — passed
  • Independent candidate (Gradle formatting and test-source compilation) — did not pass (failure)

Investigator-run checks

  • ./gradlew --offline --no-daemon :temporal-sdk:test --tests 'io.temporal.worker.LocalActivitySlotThreadPoolTests' -x :temporal-serviceclient:initSubmodules -x :temporal-serviceclient:updateSubmodules — passed; 1 attempt(s). The unchanged in-memory test passed, so the Cloud timeout did not reproduce locally.
  • ./gradlew --offline --no-daemon :temporal-sdk:cleanTest :temporal-sdk:test --tests 'io.temporal.worker.LocalActivitySlotThreadPoolTests' -x :temporal-serviceclient:initSubmodules -x :temporal-serviceclient:updateSubmodules — passed; 1 attempt(s). The focused class passed after the timeout override.
  • .ci-flake-runtime/input/validate.sh — failed; 1 attempt(s). Spotless checks reached the changed module successfully, but validation stopped at temporal-serviceclient:updateSubmodules because the sandbox makes .git/modules metadata read-only. The trusted unchanged baseline had passed.
  • ./gradlew --offline --no-daemon spotlessCheck testClasses -x test -x :temporal-serviceclient:initSubmodules -x :temporal-serviceclient:updateSubmodules — passed; 1 attempt(s). The validator's formatting and compilation checks passed when the sandbox-blocked submodule refresh tasks were excluded.

Required target CI

  • Continuous Integration / Unit test with cloud
  • Canonical candidate validation with writable Git submodule metadata

Residual risks

  • The 30-second budget has not been exercised against Temporal Cloud locally.
  • The canonical validator could not complete because of the investigation sandbox's read-only .git/modules metadata.

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

@sdk-sentinel-bot
sdk-sentinel-bot requested a review from a team as a code owner October 30, 2026 00:45

This branch has not been deployed

No deployments
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