-
-
Notifications
You must be signed in to change notification settings - Fork 30.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
asyncio exception handler called with incorrect context #96704
Comments
Maybe you can retrieve the task from the dict arg to the handler and use its ‘_context’ attribute? Or maybe we need to add a ‘get_context()’ method to Task? That’s a complex API change b/c custom task implementations though. Otherwise the implementation seems far from easy, given how many places call this? |
I only care about correct context in the task finalizer so that exception handler is called with correct context. I don't want to rely on any private attribute and it can change. |
Your wish is my command. :-) (Sorry if you had a PR already, if you did we can compare notes, if you didn't you can review mine. :-) |
…andler() (#96756) Co-authored-by: Kumar Aditya <[email protected]>
* main: (66 commits) pythongh-65961: Raise `DeprecationWarning` when `__package__` differs from `__spec__.parent` (python#97879) docs(typing): add "see PEP 675" to LiteralString (python#97926) pythongh-97850: Remove all known instances of module_repr() (python#97876) I changed my surname early this year (python#96671) pythongh-93738: Documentation C syntax (:c:type:<C type> -> :c:expr:<C type>) (python#97768) pythongh-91539: improve performance of get_proxies_environment (python#91566) build(deps): bump actions/stale from 5 to 6 (python#97701) pythonGH-95172 Make the same version `versionadded` oneline (python#95172) pythongh-88050: Fix asyncio subprocess to kill process cleanly when process is blocked (python#32073) pythongh-93738: Documentation C syntax (Function glob patterns -> literal markup) (python#97774) pythongh-93357: Port test cases to IsolatedAsyncioTestCase, part 2 (python#97896) pythongh-95196: Disable incorrect pickling of the C implemented classmethod descriptors (pythonGH-96383) pythongh-97758: Fix a crash in getpath_joinpath() called without arguments (pythonGH-97759) pythongh-74696: Pass root_dir to custom archivers which support it (pythonGH-94251) pythongh-97661: Improve accuracy of sqlite3.Cursor.fetchone docs (python#97662) pythongh-87092: bring compiler code closer to a preprocessing-opt-assembler organisation (pythonGH-97644) pythonGH-96704: Add {Task,Handle}.get_context(), use it in call_exception_handler() (python#96756) pythongh-93738: Documentation C syntax (:c:type:`PyTypeObject*` -> :c:expr:`PyTypeObject*`) (python#97778) pythongh-97825: fix AttributeError when calling subprocess.check_output(input=None) with encoding or errors args (python#97826) Add re.VERBOSE flag documentation example (python#97678) ...
…tion_handler() (python#96756) Co-authored-by: Kumar Aditya <[email protected]>
Reproducer:
On main:
The exception handler is called with incorrect context hence the
AssertionError
. It should called with the same context as the task.My use case is retrieving the current request id from the context var if there are any unhandled error but because of this bug, I always get the default value.
The text was updated successfully, but these errors were encountered: