aglinxinyuan opened a new pull request, #5922:
URL: https://github.com/apache/texera/pull/5922

   ### What changes were proposed in this PR?
   
   Consolidates execution init-error reporting into a **single site owned by 
`WorkflowExecutionService`**, replacing the two-phase split #5781 introduced 
(per @Yicong-Huang's suggestion, tracked in #5921).
   
   - `WorkflowExecutionService` now registers its `fatalErrors → 
WorkflowErrorEvent` (and state) diff handler as the **first** construction 
action. Construction itself does no external work and cannot throw — it only 
assigns `workflowSettings`, creates a `WebsocketInput` (a `PublishSubject`), 
and registers the handler. All throwing work lives in `executeWorkflow()`, 
which runs **after** `executionService.onNext(...)` publishes the execution, so 
any failure there is recorded by `errorHandler` into the metadata store and 
surfaced by the handler that `connectToExecution` forwards.
   - `WorkflowService.initExecutionService` drops the pre-publish 
`errorSubject` fallback: the `executionPublished` gating and 
`reportFatalErrorsToSubscribers` are gone, and the catch is simply 
`errorHandler(e)`. The now-unused `errorSubject` field and its `connect()` 
subscription are removed.
   - `WorkflowServiceSpec` is removed — it only tested the deleted 
`reportFatalErrorsToSubscribers`; the surfacing behavior is exercised by the 
integration/e2e suites.
   
   Net: a single reporting path (the metadata-store diff handler), with no 
change to the init-error surfacing #5781 added — construction is provably 
side-effect-free, so the pre-publish window no longer has a failure mode.
   
   ### Any related issues, documentation, discussions?
   
   Resolves #5921 — the follow-up refactor agreed during the #5781 review.
   
   ### How was this PR tested?
   
   `scalafmtCheckAll` clean. This is a behavior-preserving refactor of 
init-error reporting: the single reporting path is the metadata-store diff 
handler that already surfaced post-publish errors, and construction is 
side-effect-free so no error can escape it. The full compile, scalafix, and the 
integration/e2e suites that exercise init-error surfacing run in CI.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Co-authored with Claude Opus 4.8 in compliance with ASF.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to