asgiref icon indicating copy to clipboard operation
asgiref copied to clipboard

Task was destroyed but it is pending!

Open mtelka opened this issue 3 months ago • 1 comments

While running tests for asgiref 3.8.0 I see following unexpected lines at the end of the test report:

======================== 71 passed, 1 xfailed in 12.82s ========================
Task was destroyed but it is pending!
task: <Task pending name='Task-33' coro=<StatelessServer.application_checker() running at $(BUILD_DIR)/asgiref/server.py:136> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fffadd838e0>()]>>
Task was destroyed but it is pending!
task: <Task pending name='Task-55' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-57' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-59' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-61' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-63' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-65' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-67' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-69' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-71' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-73' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
Task was destroyed but it is pending!
task: <Task pending name='Task-75' coro=<server.<locals>.app() running at $(BUILD_DIR)/tests/test_server.py:81> wait_for=<Future cancelled>>
  py39: OK (13.70=setup[0.06]+cmd[13.65] seconds)
  congratulations :) (14.51 seconds)

mtelka avatar Mar 21 '24 07:03 mtelka

Yes, this is an issue with the structure of StatelessServer, such that it doesn't clean up the app tasks in the test cases.

You can see the discussion here for some more detail

It would be a good clean up if you'd like to take it on.

carltongibson avatar Mar 21 '24 07:03 carltongibson