-
-
Notifications
You must be signed in to change notification settings - Fork 31.2k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Multi-line arguments in a function call crashes CPython #101928
Comments
Thanks for the report! I bisected this to #101633 cc @penguin-wwy @iritkatriel |
Thank you @hauntsaninja. I see the problem - we are now creating a basicblock with RETURN_CONST followed by NOP, and the redundant NOP is not being removed before propagate_line_numbers() uses BB_HAS_FALLTHROUGH on the block, which only looks at the last instruction to see if it exits the block. Possible fixes:
I'll fix it tomorrow if nobody else will beat me to it. |
@iritkatriel Thanks for the fix suggestion, I tried to fix it using the first method and it seems to have minimal impact and is effective. |
Thanks for the report @xiaxinmeng, and for the fix @penguin-wwy . |
Crash report
In a function call, if one argument is split in two lines, CPython crashes. For example, we split the lambda expression, i.e., lamda_exp=lambda:1, in test2.py into two lines (See test1.py) . CPython reports a segmentation fault.
This crash just occurs on the latest main branch(e.g.commit a1f08f5, 8a2b7ee ). The older version of CPython(e.g. CPython 3.10.8, CPython 3.9.0 ) does not report any crash.
test1.py (Segmentation fault)
test2.py (work well )
Error messages
Segmentation Fault
Your environment
Linked PRs
The text was updated successfully, but these errors were encountered: