code: def test_workerstate_resumed_fetch_to_cancelled_to_executing(
      ws_with_running_task,
  ):
      """Test state loops:
  
      - executing -> cancelled -> resumed(fetch) -> cancelled -> executing
      - executing -> long-running -> cancelled -> resumed(fetch) -> cancelled -> long-running
  
      See also: test_workerstate_resumed_waiting_to_flight
      """
      ws = ws_with_running_task
      ws2 = "127.0.0.1:2"
      prev_state = ws.tasks["x"].state
  
      instructions = ws.handle_stimulus(
          FreeKeysEvent(keys=["x"], stimulus_id="s1"),
          ComputeTaskEvent.dummy(
              "y", who_has={"x": [ws2]}, stimulus_id="s2"
          ),
          FreeKeysEvent(keys=["y", "x"], stimulus_id="s3"),
          ComputeTaskEvent.dummy(
              "x", resource_restrictions={"R": 1}, stimulus_id="s4"
          ),
      )
      if prev_state == "executing":
          assert not instructions
      else:
          assert instructions == [
              LongRunningMsg(
                  key="x", compute_duration=None, stimulus_id="s4"
              )
          ]
      assert ws.tasks["x"].state == prev_state
  
imports: from __future__ import annotations
  import asyncio
  import pytest
  import distributed
  from distributed import Event, Lock, Worker
  from distributed.client import wait
  from distributed.utils_test import BlockedExecute, BlockedGatherDep, BlockedGetData, _LockedCommPool, assert_story, async_poll_for, freeze_batched_send, gen_cluster, inc, lock_inc, wait_for_state, wait_for_stimulus
  from distributed.worker_state_machine import AddKeysMsg, ComputeTaskEvent, Execute, ExecuteFailureEvent, ExecuteSuccessEvent, FreeKeysEvent, GatherDep, GatherDepFailureEvent, GatherDepNetworkFailureEvent, GatherDepSuccessEvent, LongRunningMsg, ReleaseWorkerDataMsg, RemoveReplicasEvent, RescheduleEvent, SecedeEvent, TaskFinishedMsg, UpdateDataEvent
label_desc: Use image node_id 9 for calling a global function with example usage: test_workerstate_resumed_fetch_to_cancelled_to_executing(ws_with_running_task) without return types