Skip to content

Pytest warning RuntimeError: Event loop is closed #11

Description

@gertvdijk

Seen in Python 3.12 as warning, and printed on stderr on 3.11.5.

tests/integration/examples/test_append_header_ip.py::test_append_header_ip[start_testserver0]
  /home/gert/repos/purepythonmilter/.direnv/python-3.12/lib/python3.12/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning: Exception ignored in: <function StreamWriter.__del__ at 0x7fc2455c71a0>
  
  Traceback (most recent call last):
    File "/home/gert/.pyenv/versions/3.12.0/lib/python3.12/asyncio/streams.py", line 397, in __del__
      self.close()
    File "/home/gert/.pyenv/versions/3.12.0/lib/python3.12/asyncio/streams.py", line 343, in close
      return self._transport.close()
             ^^^^^^^^^^^^^^^^^^^^^^^
    File "/home/gert/.pyenv/versions/3.12.0/lib/python3.12/asyncio/selector_events.py", line 1206, in close
      super().close()
    File "/home/gert/.pyenv/versions/3.12.0/lib/python3.12/asyncio/selector_events.py", line 871, in close
      self._loop.call_soon(self._call_connection_lost, None)
    File "/home/gert/.pyenv/versions/3.12.0/lib/python3.12/asyncio/base_events.py", line 772, in call_soon
      self._check_closed()
    File "/home/gert/.pyenv/versions/3.12.0/lib/python3.12/asyncio/base_events.py", line 519, in _check_closed
      raise RuntimeError('Event loop is closed')
  RuntimeError: Event loop is closed
  
    warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
$ pytest -v -k test_server_protocol_violation_close_connection
[...]
tests/integration/test_server.py::test_server_protocol_violation_close_connection[start_testserver0] PASSEDException ignored in: <function StreamWriter.__del__ at 0x7f05a1d22200>
Traceback (most recent call last):
  File "/usr/lib/python3.11/asyncio/streams.py", line 396, in __del__
    self.close()
  File "/usr/lib/python3.11/asyncio/streams.py", line 344, in close
    return self._transport.close()
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/selector_events.py", line 860, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "/usr/lib/python3.11/asyncio/base_events.py", line 761, in call_soon
    self._check_closed()
  File "/usr/lib/python3.11/asyncio/base_events.py", line 519, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
[...]

Unsure whether this is a test-only issue or an actual bug in real use cases too.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions