aglinxinyuan opened a new pull request, #4441: URL: https://github.com/apache/texera/pull/4441
### What changes were proposed in this PR? This PR adds backend support for restarting a workflow region after it has already completed or been terminated. This is needed for control-flow execution, where the same region may run multiple times. The changes clean up stale control-channel state, allow region execution state to be reinitialized, and make result URI registration idempotent across repeated region runs. We have two future use cases planned for this feature. In the for loop implementation, we need to restart the same region multiple times. For the py2udf work, we also need to call the same region by function call multiple times. - Allow `WorkflowExecution` to reinitialize an existing region execution. - Remove stale input/output control-channel state when terminating region workers. - Expose input/output gateways through `AsyncRPCClient` for region termination cleanup. - Make operator-port result URI insertion idempotent with `onConflict().doNothing()`. - Add tests for control-channel cleanup and duplicate result URI insertion. - Update test RPC helper for the new `AsyncRPCClient` constructor. ### Any related issues, documentation, discussions? Closes #4440 ### How was this PR tested? sbt "WorkflowExecutionService/compile" sbt "WorkflowExecutionService/testOnly org.apache.texera.amber.engine.architecture.messaginglayer.NetworkInputGatewaySpec org.apache.texera.web.resource.dashboard.user.workflow.WorkflowExecutionsResourceSpec" ### Was this PR authored or co-authored using generative AI tooling? No. -- 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]
