Skip to content

[hotfix][Process] Tolerate transient UNKNOWN execution-engine status - #4329

Open
czy006 wants to merge 5 commits into
apache:masterfrom
czy006:codex/hotfix-process-unknown-status
Open

czy006 wants to merge 5 commits into
apache:masterfrom
czy006:codex/hotfix-process-unknown-status

Conversation

@czy006

@czy006 czy006 commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Brief change log

Continue polling after transient UNKNOWN execution-engine statuses and fail only after the configured consecutive threshold. On persistent unknown status, the executor performs best-effort cancellation and records the failure.

How was this patch tested?

  • Add positive and negative test coverage for transient and persistent unknown statuses.
  • Add screenshots for manual tests if appropriate (not applicable: backend-only change).
  • Run TestTableProcessExecutor locally with JDK 11 before creating this pull request.

Documentation

  • Does this pull request introduce a new feature? (yes / no)
  • no
  • If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
  • not applicable

@github-actions github-actions Bot added the module:ams-server Ams server module label Aug 17, 2026
…ndoning a job

The polling loop only treated PENDING/RUNNING/SUBMITTED as executing, so
a single UNKNOWN - including on the first post-submit status query -
exited the loop into the 'unexpected terminal status' path: the job was
untracked despite its persisted identifier, hasAliveTableProcess stopped
gating, and the next tick could submit a concurrent job for the same
table. One read timeout, network blip or a new server-side status enum
was enough.

Keep polling while UNKNOWN within a budget (MAX_UNKNOWN_STATUS_POLLS=3,
counter reset on any known status), and on exceeding it cancel the job
best-effort and record a synthesized FAILED terminal state so the
normal COMPLETE_FAILED path (and retry) applies.

Red tests (with a compile shim on the old code): transient case stuck
at SUBMITTED instead of SUCCESS; persistent case never cancelled and
never FAILED. Complements the unpersisted-identifier fix.
Fix record: docs/fix-records/2026-08-16-fix-21-unknown-status-tolerance.md
@czy006
czy006 force-pushed the codex/hotfix-process-unknown-status branch from ca8a26c to 42ad935 Compare August 18, 2026 02:16
@czy006
czy006 marked this pull request as ready for review August 18, 2026 06:35
@zhoujinsong

Copy link
Copy Markdown
Contributor

@czy006 Some Checkstyle issues need to be fixed.

@github-actions

Copy link
Copy Markdown

This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@amoro.apache.org list. Thank you for your contributions.

@github-actions github-actions Bot added the stale label Oct 11, 2026

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants