Skip to content

[SDK Sentinel] Disable time skipping in Nexus retry test - #3085

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

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

Conversation

@sdk-sentinel-bot

@sdk-sentinel-bot sdk-sentinel-bot commented Sep 17, 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

A main-branch Java 23 edge run intermittently observed a workflow timeout instead of the expected Nexus timeout in retryableApplicationFailureIsRetried. The [preceding edge run](https://github.com/temporalio/sdk-java/actions/runs/35144081452) passed, the [first captured failure](https://github.com/temporalio/sdk-java/actions/runs/35147697059) failed, and the identical SHA passed on rerun.

Root cause

The test combined virtual server deadlines with real worker delivery. After the Nexus schedule-to-close timeout, virtual time advanced through a workflow-task timeout and the 200-second workflow deadline before the worker completion was accepted.

Fix

Disable time skipping for this test class so retries, worker delivery, and deadlines share wall-clock time. Existing behavioral assertions remain unchanged.

Validation

The unchanged baseline passed. All six focused tests passed after the edit on Java 23. The exact edge dependency set was unavailable offline, and the canonical candidate validator could not start because its Gradle cache was not chmod-able. The Java 23 edge job and trusted validator remain required; wall-clock execution may modestly increase test duration.

Validation status: validation-incomplete

  • Flake confidence: high
  • Fix confidence: high
  • Value: medium
  • Patch scope: standard — 1 changed file; 1.1 KiB
  • Local reproduction: not-reproduced — The pre-change focused Java 23 class passed once; the same-SHA CI rerun and failed workflow history provide the flake evidence.
  • Regression coverage: pass-after-only — The existing six-test class passed after the wall-clock harness change; no new assertion was needed.
  • Unchanged baseline (Gradle formatting and test-source compilation) — passed
  • Independent candidate (Gradle formatting and test-source compilation) — did not pass (failure)

Investigator-run checks

  • GRADLE_USER_HOME=.ci-flake-runtime/tmp/gradle-home ./gradlew --offline --no-daemon :temporal-sdk:test --tests 'io.temporal.workflow.nexus.OperationInputDeserializationErrorPropagationTest' -x :temporal-serviceclient:initSubmodules -x :temporal-serviceclient:updateSubmodules -x :temporal-sdk:compileJava17Java — passed; 1 attempt(s). Pre-change natural reproduction attempt passed on Java 23.
  • GRADLE_USER_HOME=.ci-flake-runtime/tmp/gradle-home ./gradlew --offline --no-daemon :temporal-sdk:test --tests 'io.temporal.workflow.nexus.OperationInputDeserializationErrorPropagationTest' -x :temporal-serviceclient:initSubmodules -x :temporal-serviceclient:updateSubmodules -x :temporal-sdk:compileJava17Java — passed; 1 attempt(s). After the candidate change, all six focused tests passed on Java 23 in 40 seconds.
  • GRADLE_USER_HOME=.ci-flake-runtime/tmp/gradle-home ./gradlew --offline --no-daemon :temporal-sdk:test --tests 'io.temporal.workflow.nexus.OperationInputDeserializationErrorPropagationTest' -PedgeDepsTest -PtestJavaVersion=23 — not run; 1 attempt(s). The exact edge-dependency test did not reach execution because slf4j-api 2.0.16 was unavailable in the offline cache.
  • .ci-flake-runtime/input/validate.sh — failed; 1 attempt(s). The trusted unchanged baseline succeeded, but candidate validation could not start Gradle because the preloaded daemon cache directory could not be chmodded by the investigation user.
  • git diff --check — passed; 1 attempt(s). The candidate diff has no whitespace errors.

Required target CI

  • Continuous Integration / Unit test with in-memory test service [Edge] on Linux with Java 23 and edge dependencies.
  • Canonical .ci-flake-runtime/input/validate.sh candidate validation in a writable Gradle cache environment.

Residual risks

  • The edge dependency combination was not exercised locally.
  • Independent candidate validation was blocked by cache permissions.
  • Using wall-clock deadlines increases this class's runtime, including its old-failure-format suite execution.

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: 3
  • First occurrence: 2026-09-16 20:46 UTC
  • Latest occurrence: 2026-09-18 18:42 UTC
  • Recent occurrences:

@sdk-sentinel-bot
sdk-sentinel-bot requested a review from a team as a code owner September 17, 2026 01:04
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