Skip to content

Resumed tasks don't release resources if they fail #6682

@hendrikmakait

Description

@hendrikmakait

Reproducible failing test added in #6676:

def test_resumed_executing_task_releases_resources_on_error(ws_with_running_task):
    ws = ws_with_running_task

    ws.handle_stimulus(FreeKeysEvent("cancel", ["x"]))
    assert ws.tasks["x"].state == "cancelled"
    assert ws.available_resources == {"R": 0}

    instructions = ws.handle_stimulus(
        ComputeTaskEvent.dummy(
            key="y",
            who_has={"x": ["127.0.0.1:1235"]},
            nbytes={"x": 8},
            stimulus_id="compute",
        )
    )
    assert ws.tasks["x"].state == "resumed"
    assert not instructions

    ws.handle_stimulus(
        ExecuteFailureEvent(
            key="x",
            start=0.0,
            stop=1.0,
            exception=Serialize(ValueError("x")),
            traceback=Serialize("Fetch me instead"),
            exception_text="exc text",
            traceback_text="tb text",
            stimulus_id="failure",
        ),
    )
    assert ws.tasks["x"].state == "error"
    assert ws.available_resources == {"R": 1}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions