You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
MicroVM worker: the unknown-outcome warning says jobs are refused after the refusal ended #806
The worker's warning for a SuspendMicrovm call with an unknown outcome says that jobs are refused, even when the refusal already ended during the call.
Details
The warning says: "The worker refuses jobs until the MicroVM resumes, or for 30 seconds."
The worker chooses this text for every unknown outcome without a terminate hook. It does not check whether the refusal is still in effect.
A resume hook during the call ends the refusal. So does the 30-second end of a suspend hook's refusal during the call.
After such a call, the worker starts no new refusal. A job sent right after the warning gets HTTP 202.
Reviews measured this in three sequences:
a resume hook during the call;
a suspend hook, then a resume hook, during the call;
a suspend hook whose 30 seconds ended during the call.
The first sequence is the likely one when the worker's own call suspended the MicroVM and its response was lost across the freeze.
So the log states a refusal that has already ended. Behavior is correct; only the text is wrong.
Proposed fix
When the refusal is no longer in effect at the outcome, log a separate text. For example: "the suspend call for the idle MicroVM had an unknown outcome. The refusal of jobs already ended during the call, on a resume hook or after 30 seconds. So the worker accepts jobs, and the idle time starts again." Add the three sequences as tests. The JavaScript and Python workers have the same text, so both need the same change. JavaScript tracking issue: aws/aws-durable-execution-sdk-js#1056.
Activity