Issue41336
This issue tracker has been migrated to GitHub,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2020-07-18 19:05 by xtreak, last changed 2022-04-11 14:59 by admin. This issue is now closed.
Pull Requests | |||
---|---|---|---|
URL | Status | Linked | Edit |
PR 21546 | merged | ZackerySpytz, 2020-07-19 11:02 | |
PR 21563 | merged | miss-islington, 2020-07-20 12:51 |
Messages (4) | |||
---|---|---|---|
msg373912 - (view) | Author: Karthikeyan Singaravelan (xtreak) * ![]() |
Date: 2020-07-18 19:05 | |
I get segfaults on random basis in the below program I wrote for issue41321 while trying to use Ctrl-C to stop the program. I used faulthandler but couldn't get to the exact case where it occurs. I tested it on Python 3.9 from deadsnakes ppa and it crashes. I tried using gdb to get a backtrace but using ctrl-C is caught by gdb. I tried using "handle SIGINT noprint pass" to ensure the ctrl-C is passed to the program by gdb and attached below is a backtrace during a sample segfault. I am wording it as during zoneinfo creation but isolated object creation under an infinite loop where ctrl-c is passed doesn't trigger this. Feel free to modify this as needed and also to add more since I am not good with debugging C issues. import datetime import zoneinfo timezones = zoneinfo.available_timezones() for year in range(1900, 2020): for tz in timezones: d1 = datetime.datetime(year, 5, 4, 7, 13, 22, tzinfo=zoneinfo.ZoneInfo(tz)).timestamp() d2 = datetime.datetime(year, 5, 4, 0, 0, 0, tzinfo=zoneinfo.ZoneInfo(tz)).timestamp() diff = d1 - d2 if diff != 26002: print(year, diff, tz) for tz in timezones: d1 = datetime.datetime(year, 5, 2, 7, 13, 22, tzinfo=zoneinfo.ZoneInfo(tz)).timestamp() d2 = datetime.datetime(year, 5, 2, 0, 0, 0, tzinfo=zoneinfo.ZoneInfo(tz)).timestamp() diff = d1 - d2 if diff != 26002: print("Diff using second day", year, diff, tz) $ python3.9 -X faulthandler ../backups/bpo41321.py ^CFatal Python error: Segmentation fault Current thread 0x00007f23bb2b9740 (most recent call first): File "/root/cpython/../backups/bpo41321.py", line 7 in <module> [1] 1234 segmentation fault (core dumped) python3.9 -X faulthandler ../backups/bpo41321.py Debug build on master branch $ ./python -X faulthandler ../backups/bpo41321.py ^Cpython: Objects/typeobject.c:3244: _PyType_Lookup: Assertion `!PyErr_Occurred()' failed. Fatal Python error: Aborted Current thread 0x00007f28c2256080 (most recent call first): File "/root/cpython/../backups/bpo41321.py", line 14 in <module> [1] 1386 abort (core dumped) ./python -X faulthandler ../backups/bpo41321.py (gdb) r Starting program: /root/cpython/python ../backups/bpo41321.py [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". ^C Program received signal SIGSEGV, Segmentation fault. zoneinfo_no_cache (cls=<optimized out>, args=<optimized out>, kwargs=<optimized out>) at /root/cpython/Modules/_zoneinfo.c:380 380 PyObject *out = zoneinfo_new_instance(cls, key); (gdb) bt #0 zoneinfo_no_cache (cls=<optimized out>, args=<optimized out>, kwargs=<optimized out>) at /root/cpython/Modules/_zoneinfo.c:380 #1 0x00007ffff65ff826 in zoneinfo_new ( type=0x7ffff6801480 <PyZoneInfo_ZoneInfoType>, args=<optimized out>, kw=<optimized out>) at /root/cpython/Modules/_zoneinfo.c:274 #2 0x000055555562a635 in type_call ( type=type@entry=0x7ffff6801480 <PyZoneInfo_ZoneInfoType>, args=args@entry=0x7ffff6fb7520, kwds=kwds@entry=0x0) at Objects/typeobject.c:1020 #3 0x00005555555c3018 in _PyObject_MakeTpCall ( tstate=tstate@entry=0x555555b2c350, callable=callable@entry=0x7ffff6801480 <PyZoneInfo_ZoneInfoType>, args=args@entry=0x7ffff6f20df8, nargs=<optimized out>, keywords=0x0) at Objects/call.c:191 #4 0x00005555555ab48b in _PyObject_VectorcallTstate (kwnames=<optimized out>, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>, tstate=<optimized out>) at ./Include/cpython/abstract.h:112 #5 PyObject_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, args=<optimized out>, callable=<optimized out>) at ./Include/cpython/abstract.h:123 #6 call_function (tstate=tstate@entry=0x555555b2c350, pp_stack=pp_stack@entry=0x7fffffffdf30, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:5121 #7 0x00005555555b17dd in _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3516 #8 0x00005555556864f5 in _PyEval_EvalFrame (throwflag=0, f=0x7ffff6f20c40, tstate=0x555555b2c350) at ./Include/internal/pycore_ceval.h:40 #9 _PyEval_EvalCode (qualname=0x7ffff6e860f0, name=0x7ffff6e860f0, closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwstep=2, kwcount=0, kwargs=0x0, kwnames=0x0, argcount=0, args=0x0, locals=0x0, globals=0x555555b2c350, _co=0x7ffff6ee6d40, tstate=0x555555b2c350) at Python/ceval.c:4376 #10 _PyEval_EvalCodeWithName (qualname=0x0, name=0x0, closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwstep=2, kwcount=0, kwargs=0x0, kwnames=0x0, argcount=0, args=0x0, locals=locals@entry=0x0, globals=globals@entry=0x555555b2c350, _co=0x7ffff6ee6d40, _co@entry=0x7ffff6f20da0) at Python/ceval.c:4408 #11 PyEval_EvalCodeEx (closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwcount=0, kws=0x0, argcount=0, args=0x0, locals=locals@entry=0x0, globals=globals@entry=0x555555b2c350, _co=0x7ffff6ee6d40, _co@entry=0x7ffff6f20da0) at Python/ceval.c:4424 ---Type <return> to continue, or q <return> to quit--- #12 PyEval_EvalCode (co=co@entry=0x7ffff6ee6d40, globals=globals@entry=0x7ffff6f4e440, locals=locals@entry=0x7ffff6f4e440) at Python/ceval.c:857 #13 0x00005555556d69c6 in run_eval_code_obj (locals=0x7ffff6f4e440, globals=0x7ffff6f4e440, co=0x7ffff6ee6d40, tstate=0x555555b2c350) at Python/pythonrun.c:1124 #14 run_mod (arena=0x7ffff6fa1910, flags=0x7fffffffe128, locals=0x7ffff6f4e440, globals=0x7ffff6f4e440, filename=0x7ffff6e815d0, mod=<optimized out>) at Python/pythonrun.c:1145 #15 PyRun_FileExFlags (fp=fp@entry=0x555555b89b40, filename_str=filename_str@entry=0x7ffff6f5a050 "/root/cpython/../backups/bpo41321.py", start=start@entry=257, globals=globals@entry=0x7ffff6f4e440, locals=locals@entry=0x7ffff6f4e440, closeit=closeit@entry=1, flags=0x7fffffffe128) at Python/pythonrun.c:1062 #16 0x00005555556d6b9d in PyRun_SimpleFileExFlags (fp=fp@entry=0x555555b89b40, filename=<optimized out>, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffe128) at Python/pythonrun.c:397 #17 0x00005555556d70e3 in PyRun_AnyFileExFlags (fp=fp@entry=0x555555b89b40, filename=<optimized out>, closeit=closeit@entry=1, flags=flags@entry=0x7fffffffe128) at Python/pythonrun.c:80 #18 0x00005555555b52a0 in pymain_run_file (cf=0x7fffffffe128, config=0x555555b28db0) at Modules/main.c:369 #19 pymain_run_python (exitcode=0x7fffffffe11c) at Modules/main.c:594 #20 Py_RunMain () at Modules/main.c:673 #21 0x00005555555b57d6 in pymain_main (args=0x7fffffffe210) at Modules/main.c:703 #22 Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:727 #23 0x00007ffff7041b97 in __libc_start_main (main=0x5555555aa2b0 <main>, argc=2, argv=0x7fffffffe368, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe358) at ../csu/libc-start.c:310 #24 0x00005555555b446a in _start () |
|||
msg374001 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * ![]() |
Date: 2020-07-20 12:51 | |
New changeset eca2549f5a5048b44ca88b9555f1c62f094e3c12 by Zackery Spytz in branch 'master': bpo-41336: Fix the error handling in zoneinfo_new_instance() (GH-21546) https://github.com/python/cpython/commit/eca2549f5a5048b44ca88b9555f1c62f094e3c12 |
|||
msg374007 - (view) | Author: miss-islington (miss-islington) | Date: 2020-07-20 13:10 | |
New changeset add7cfc4c63f2ce2e8649906e6c8d902e95d8701 by Miss Islington (bot) in branch '3.9': bpo-41336: Fix the error handling in zoneinfo_new_instance() (GH-21546) https://github.com/python/cpython/commit/add7cfc4c63f2ce2e8649906e6c8d902e95d8701 |
|||
msg374240 - (view) | Author: Karthikeyan Singaravelan (xtreak) * ![]() |
Date: 2020-07-25 04:53 | |
Closing it as resolved. Thanks Zackery. |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:59:33 | admin | set | github: 85508 |
2020-07-25 04:53:59 | xtreak | set | status: open -> closed resolution: fixed messages: + msg374240 stage: patch review -> resolved |
2020-07-20 13:10:14 | miss-islington | set | messages: + msg374007 |
2020-07-20 12:51:39 | miss-islington | set | nosy:
+ miss-islington pull_requests: + pull_request20708 |
2020-07-20 12:51:32 | serhiy.storchaka | set | messages: + msg374001 |
2020-07-20 06:37:54 | rhettinger | set | title: Random segfaults during zoneinfo object creation stopped using Ctrl-C -> Sporadic segfaults during zoneinfo object creation stopped using Ctrl-C |
2020-07-19 19:12:50 | rhettinger | set | priority: normal -> high |
2020-07-19 11:02:44 | ZackerySpytz | set | keywords:
+ patch nosy: + ZackerySpytz pull_requests: + pull_request20688 stage: patch review |
2020-07-18 19:05:41 | xtreak | create |