| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Avoid locking in the PyType_Lookup cache-miss path if the type's tp_version_tag is already valid.
|
🤖 New build scheduled with the buildbot fleet by @colesbury for commit 68c122c 🤖 Results will be shown at: https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F145774%2Fmerge If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again. |
Sorry, something went wrong.
There was a problem hiding this comment.
Would it be worth adding a test case to the scaling benchmark?
Sorry, something went wrong.
| END_TYPE_LOCK(); | ||
| } | ||
| else { | ||
| res = find_name_in_mro(type, name, out); |
There was a problem hiding this comment.
Do we need to hold the type lock around this?
Sorry, something went wrong.
There was a problem hiding this comment.
The operations in find_name_in_mro are individually thread-safe, although this allows for mutations to types to be interleaved with the MRO traversal. I think that's acceptable. There were already edge cases where that could happen due to ensure_shared_on_read() calls suspending the critical section during dictionary lookups in find_name_in_mro.
Importantly, if any type in the MRO chain is modified during lookup, the assigned version tag will be stale so any future cache lookups won't use it.
Sorry, something went wrong.
This improves the scaling behavior, but it's not enough to scale linearly so I don't want to add a benchmark to ftscalingbench.py yet. Here's the benchmark I've occasionally used locally: https://gist.github.com/colesbury/7d43e7dde89c1cb5574b5a2c73cc52b1 Some of the remaining issues:
|
Sorry, something went wrong.
|
Thanks @colesbury for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14. |
Sorry, something went wrong.
|
GH-145874 is a backport of this pull request to the 3.14 branch. |
Sorry, something went wrong.
⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️Hi! The buildbot AMD64 Ubuntu Shared 3.14 (tier-1) has failed when building commit cedff2d. What do you need to do:
You can take a look at the buildbot page here: https://buildbot.python.org/#/builders/1802/builds/838 Failed tests:
Failed subtests:
Summary of the results of the build (if available): == Click to see traceback logsTraceback (most recent call last):
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/subprocess.py", line 1138, in __del__
_warn("subprocess %s is still running" % self.pid,
ResourceWarning: subprocess 3913832 is still running
Warning -- Unraisable exception
Exception ignored while finalizing file <_io.FileIO name=10 mode='rb' closefd=True>:
Traceback (most recent call last):
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/unittest/case.py", line 668, in run
with outcome.testPartExecutor(self):
ResourceWarning: unclosed file <_io.TextIOWrapper name=10 encoding='UTF-8'>
Warning -- Unraisable exception
Exception ignored while finalizing file <_io.FileIO name=8 mode='rb' closefd=True>:
Traceback (most recent call last):
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/unittest/case.py", line 668, in run
with outcome.testPartExecutor(self):
ResourceWarning: unclosed file <_io.TextIOWrapper name=8 encoding='UTF-8'>
Traceback (most recent call last):
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/test/test_pyrepl/test_unix_console.py", line 390, in test_repl_eio
_, err = proc.communicate(timeout=support.LONG_TIMEOUT)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/subprocess.py", line 1220, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/subprocess.py", line 2153, in _communicate
self._check_timeout(endtime, orig_timeout, stdout, stderr)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/subprocess.py", line 1267, in _check_timeout
raise TimeoutExpired(
...<2 lines>...
stderr=b''.join(stderr_seq) if stderr_seq else None)
subprocess.TimeoutExpired: Command '['/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/python', '-E', '-S', '/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/test/test_pyrepl/eio_test_script.py']' timed out after 300.0 seconds
Traceback (most recent call last):
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/subprocess.py", line 1138, in __del__
_warn("subprocess %s is still running" % self.pid,
ResourceWarning: subprocess 3900353 is still running
Warning -- Unraisable exception
Exception ignored while finalizing file <_io.FileIO name=10 mode='rb' closefd=True>:
Traceback (most recent call last):
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/unittest/case.py", line 668, in run
with outcome.testPartExecutor(self):
ResourceWarning: unclosed file <_io.TextIOWrapper name=10 encoding='UTF-8'>
Warning -- Unraisable exception
Exception ignored while finalizing file <_io.FileIO name=8 mode='rb' closefd=True>:
Traceback (most recent call last):
File "/srv/buildbot/buildarea/3.14.bolen-ubuntu/build/Lib/unittest/case.py", line 668, in run
with outcome.testPartExecutor(self):
ResourceWarning: unclosed file <_io.TextIOWrapper name=8 encoding='UTF-8'>
|
Sorry, something went wrong.
…145774) Avoid locking in the PyType_Lookup cache-miss path if the type's tp_version_tag is already valid.
| Back | FazBrowse Home | New Git URL |
Avoid locking in the PyType_Lookup cache-miss path if the type's tp_version_tag is already valid.