You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Other methods like str.split, bytes.split, and list.sort fail similarly. I caught this by running
./python -m test test_descr -m test_proxy_call -R3:20
Looking through stack traces, it appears the failure is on the res = cfunc(...) call in PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS instruction. It looks to be a 3.11-only bug.
If we're trying to emulate method_vectorcall_FASTCALL_KEYWORDS, then we're at least missing out on how method_check_args calls descr_check, which calls PyObject_TypeCheck(obj, descr->d_type). So we need one of these:
Marking as release blocker: it's easy to trigger but hard to reason about if you don't know about specialization, so it could create Heisenbugs, which would be unfortunate in the beta release.
Activity
sweeneyde commentedon Apr 29, 2022
If we're trying to emulate method_vectorcall_FASTCALL_KEYWORDS, then we're at least missing out on how
method_check_argscallsdescr_check, which callsPyObject_TypeCheck(obj, descr->d_type). So we need one of these:or
I might have an off-by-one error.
cc @Fidget-Spinner @kumaraditya303
sweeneyde commentedon Apr 30, 2022
Marking as release blocker: it's easy to trigger but hard to reason about if you don't know about specialization, so it could create Heisenbugs, which would be unfortunate in the beta release.
corona10 commentedon Apr 30, 2022
FYI, macOS meets the same issue as expected.
sweeneyde commentedon Apr 30, 2022
It looks like
PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGSis affected as well.sweeneyde commentedon Apr 30, 2022
PRECALL_NO_KW_METHOD_DESCRIPTOR_O as well
[-]`PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS` doesn't check types[/-][+]specialized PRECALL opcodes don't check types[/+]gh-92063: Enforce types in specialized PRECALL opcodes (GH-92068)