Repository navigation
NGLASS-2330 feat: Add optional async workflow submission timeout - #897
Open
afonsobspinto wants to merge 2 commits into
Open
afonsobspinto wants to merge 2 commits into
afonsobspinto wants to merge 2 commits into
Conversation
afonsobspinto
marked this pull request as ready for review
November 9, 2026 19:50
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Neuroglass's skeleton ingestion admission holds a study-row lock while submitting its Argo Workflow. CloudHarness's asynchronous
execute()has no HTTP submission timeout, so a stalled Argo response can leave the API request and row lock waiting indefinitely. MNP currently bypassesexecute()and constructs the SDK request directly to bound that wait.Change
Add an optional keyword-only
request_timeouttoargo_service.submit_workflow().AsyncOperation.execute(**kwargs)andContainerizedOperation.submit(**kwargs)forward submission options to that service:The value is forwarded to the existing Argo SDK as its HTTP timeout, accepting seconds or a
(connect, read)tuple. Existing calls without the keyword retain their behaviour and return the same Workflow wrapper. Synchronous operations' existing completion-waittimeoutis unchanged. The submission HTTP client is closed on success and failure; exceptions propagate and no automatic resubmission is added.This allows MNP #1466 to use CloudHarness's normal execution path while retaining exact-name reconciliation of uncertain submissions. A timeout does not imply that Argo rejected the Workflow.
Validation
0f7c4bf): 72 common-library tests, 10 model tests, 281 deployment CLI tests, and 8 Argo component tests passed. Lint and CodeQL also passed.lint-check.shpassed.execute(): one CREATE times out and is reconciled without waiting for the server or submitting again.