◐ Shell
clean mode source ↗

bpo-46841: Use inline caching for attribute accesses by brandtbucher · Pull Request #31640 · python/cpython

Marking as DO-NOT-MERGE since LOAD_ATTR_MODULE is somehow causing assertion failures and unclosed resources in test_asyncio:

Details
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=8 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=10 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:561: ResourceWarning: unclosed transport <_UnixReadPipeTransport fd=8 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/base_events.py:684: ResourceWarning: unclosed event loop <_UnixSelectorEventLoop running=False closed=False debug=False>
  _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=9 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=10 mode='wb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:561: ResourceWarning: unclosed transport <_UnixReadPipeTransport fd=9 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed <socket.socket fd=6, family=1, type=1, proto=0>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=7 mode='wb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=7 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=7 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:561: ResourceWarning: unclosed transport <_UnixReadPipeTransport fd=7 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=12 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=14 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=11 mode='wb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=11 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/base_events.py:684: ResourceWarning: unclosed event loop <_UnixSelectorEventLoop running=False closed=False debug=False>
  _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=13 mode='wb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:561: ResourceWarning: unclosed transport <_UnixReadPipeTransport fd=12 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed <socket.socket fd=11, family=1, type=1, proto=0>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=12 mode='wb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=12 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=13 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:561: ResourceWarning: unclosed transport <_UnixReadPipeTransport fd=13 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=18 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=20 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=17 mode='wb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=17 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/base_events.py:684: ResourceWarning: unclosed event loop <_UnixSelectorEventLoop running=False closed=False debug=False>
  _warn(f"unclosed event loop {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=19 mode='wb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:561: ResourceWarning: unclosed transport <_UnixReadPipeTransport fd=18 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed <socket.socket fd=17, family=1, type=1, proto=0>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/support/__init__.py:705: ResourceWarning: unclosed file <_io.FileIO name=18 mode='wb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=18 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/test/test_asyncio/test_streams.py:40: ResourceWarning: unclosed file <_io.FileIO name=19 mode='rb' closefd=True>
  gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:561: ResourceWarning: unclosed transport <_UnixReadPipeTransport fd=19 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=21 idle bufsize=0>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/events.py:80: ResourceWarning: unclosed file <_io.FileIO name=22 mode='rb' closefd=True>
  self._context.run(self._callback, *self._args)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/events.py:80: ResourceWarning: unclosed file <_io.FileIO name=24 mode='rb' closefd=True>
  self._context.run(self._callback, *self._args)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=22 mode='rb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=24 mode='rb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=21 mode='wb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=21 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=25 mode='rb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=27 mode='rb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=23 mode='wb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=23 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=28 mode='rb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=26 mode='wb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=26 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=29 mode='wb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=29 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=31 mode='rb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/traceback.py:900: ResourceWarning: unclosed file <_io.FileIO name=30 mode='wb' closefd=True>
  for msg, exc in reversed(output):
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=30 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:1151: ResourceWarning: unclosed file <_io.FileIO name=23 mode='rb' closefd=True>
  with self._lock:
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:1151: ResourceWarning: unclosed file <_io.FileIO name=21 mode='wb' closefd=True>
  with self._lock:
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=21 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:1151: ResourceWarning: unclosed file <_io.FileIO name=24 mode='rb' closefd=True>
  with self._lock:
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:1151: ResourceWarning: unclosed file <_io.FileIO name=26 mode='rb' closefd=True>
  with self._lock:
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:1151: ResourceWarning: unclosed file <_io.FileIO name=22 mode='wb' closefd=True>
  with self._lock:
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=22 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:1151: ResourceWarning: unclosed file <_io.FileIO name=27 mode='rb' closefd=True>
  with self._lock:
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:1151: ResourceWarning: unclosed file <_io.FileIO name=25 mode='wb' closefd=True>
  with self._lock:
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=25 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:1151: ResourceWarning: unclosed file <_io.FileIO name=19 mode='rb' closefd=True>
  with self._lock:
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:561: ResourceWarning: unclosed transport <_UnixReadPipeTransport fd=19 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:1151: ResourceWarning: unclosed file <_io.FileIO name=28 mode='rb' closefd=True>
  with self._lock:
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:561: ResourceWarning: unclosed transport <_UnixReadPipeTransport fd=28 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=27 idle bufsize=0>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/events.py:80: ResourceWarning: unclosed file <_io.FileIO name=28 mode='rb' closefd=True>
  self._context.run(self._callback, *self._args)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/events.py:80: ResourceWarning: unclosed file <_io.FileIO name=30 mode='rb' closefd=True>
  self._context.run(self._callback, *self._args)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=21 mode='wb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=23 mode='rb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=25 mode='rb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=22 mode='wb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=26 mode='rb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=24 mode='wb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=24 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=28 mode='rb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=30 mode='rb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=27 mode='wb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=27 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=31 mode='rb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=35 mode='rb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=29 mode='wb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=29 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=36 mode='rb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/textwrap.py:482: ResourceWarning: unclosed file <_io.FileIO name=33 mode='wb' closefd=True>
  def prefixed_lines():
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/brandtbucher/cpython/Lib/asyncio/unix_events.py:760: ResourceWarning: unclosed transport <_UnixWritePipeTransport fd=33 open>
  _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
python: Python/ceval.c:5334: _PyEval_EvalFrameDefault: Assertion `frame->frame_obj == NULL' failed.
Fatal Python error: Aborted

Current thread 0x00007f0d476a3280 (most recent call first):
  File "/home/brandtbucher/cpython/Lib/textwrap.py", line 482 in prefixed_lines
  File "/home/brandtbucher/cpython/Lib/textwrap.py", line 485 in indent
  File "/home/brandtbucher/cpython/Lib/traceback.py", line 629 in emit
  File "/home/brandtbucher/cpython/Lib/traceback.py", line 907 in format
  File "/home/brandtbucher/cpython/Lib/traceback.py", line 140 in format_exception
  File "/home/brandtbucher/cpython/Lib/test/support/testresult.py", line 92 in __makeErrorDict
  File "/home/brandtbucher/cpython/Lib/test/support/testresult.py", line 102 in addError
  File "/home/brandtbucher/cpython/Lib/unittest/case.py", line 99 in _addError
  File "/home/brandtbucher/cpython/Lib/unittest/case.py", line 74 in testPartExecutor
  File "/home/brandtbucher/cpython/Lib/contextlib.py", line 155 in __exit__
  File "/home/brandtbucher/cpython/Lib/unittest/case.py", line 590 in run
  File "/home/brandtbucher/cpython/Lib/unittest/case.py", line 646 in __call__
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 122 in run
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 84 in __call__
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 122 in run
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 84 in __call__
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 122 in run
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 84 in __call__
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 122 in run
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 84 in __call__
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 122 in run
  File "/home/brandtbucher/cpython/Lib/unittest/suite.py", line 84 in __call__
  File "/home/brandtbucher/cpython/Lib/test/support/testresult.py", line 140 in run
  File "/home/brandtbucher/cpython/Lib/test/support/__init__.py", line 1064 in _run_suite
  File "/home/brandtbucher/cpython/Lib/test/support/__init__.py", line 1190 in run_unittest
  File "/home/brandtbucher/cpython/Lib/test/libregrtest/runtest.py", line 273 in _test_module
  File "/home/brandtbucher/cpython/Lib/test/libregrtest/runtest.py", line 309 in _runtest_inner2
  File "/home/brandtbucher/cpython/Lib/test/libregrtest/runtest.py", line 352 in _runtest_inner
  File "/home/brandtbucher/cpython/Lib/test/libregrtest/runtest.py", line 227 in _runtest
  File "/home/brandtbucher/cpython/Lib/test/libregrtest/runtest.py", line 257 in runtest
  File "/home/brandtbucher/cpython/Lib/test/libregrtest/runtest_mp.py", line 84 in run_tests_worker
  File "/home/brandtbucher/cpython/Lib/test/libregrtest/main.py", line 678 in _main
  File "/home/brandtbucher/cpython/Lib/test/libregrtest/main.py", line 658 in main
  File "/home/brandtbucher/cpython/Lib/test/libregrtest/main.py", line 736 in main
  File "/home/brandtbucher/cpython/Lib/test/regrtest.py", line 43 in _main
  File "/home/brandtbucher/cpython/Lib/test/regrtest.py", line 47 in <module>
  File "<frozen runpy>", line 88 in _run_code
  File "<frozen runpy>", line 198 in _run_module_as_main

Okay, that was officially the wildest bug I've ever dealt with.

The problematic bytecode sequence (buried deep in asyncio) was:

LOAD_ATTR
[CACHE]
[CACHE]
[CACHE]
[CACHE]
LOAD_FAST
LOAD_ATTR

Quickened:

LOAD_ATTR_ADAPTIVE
[CACHE]
[CACHE]
[CACHE]
[CACHE]
LOAD_FAST
LOAD_ATTR_ADAPTIVE

After specializating the first LOAD_ATTR_ADAPTIVE:

LOAD_ATTR_MODULE
[<counter>]
[<version[0]>]
[<version[1]>]
[<index>]
LOAD_FAST
LOAD_ATTR_ADAPTIVE

Finally, after specializing the second LOAD_ATTR_ADAPTIVE:

LOAD_ATTR_MODULE
[<counter>]
[<version[0]>]
[<version[1]>]
[LOAD_FAST]
LOAD_FAST__LOAD_ATTR_INSTANCE_VALUE
LOAD_ATTR_INSTANCE_VALUE

Did you catch that? The cached index was turned into a LOAD_FAST!

The code that did that is here. Basically, the low byte of the cached index just happened to be LOAD_FAST__LOAD_FAST, so the LOAD_FAST__LOAD_ATTR_INSTANCE_VALUE specialization code changed it "back" into a LOAD_FAST.

What it really did, though, was change the module attribute cached index from 169 to 124. This also just happened to be a valid index into the os module's __dict__, and on subsequent runs the code ended up calling os.mknod(self._fileno, False) instead of os.set_blocking(self._fileno, False). This silently "works", and causes the code to leak tons of resources and break later in more subtle ways.

Phew.