Bugs item #1165761, was opened at 2005-03-17 21:18 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1165761&group_id=5470
Category: Threads Group: Python 2.4 Status: Open Resolution: None Priority: 5 Submitted By: Jeff Stearns (jeffstearns) Assigned to: Nobody/Anonymous (nobody) Summary: KeyboardInterrupt causes segmentation fault with threads Initial Comment: The attached sample program crashes Python 2.4.1c1 with a segmentation fault if it is interupted. I wrote a simple program which simulates multiple HTTP clients. The program is mult-threaded. It runs on Debian with a 2.6 kernel. If the program is interrupted (via ^C), Python 2.4.1c1 takes a segmentation fault. Investigation with gdb shows that the error occurs within PyEval_EvalFrame at line 1661 below. It's executing an END_FINALLY bytecode. The offending statement is v = POP(); The value of v is 0. This is then passed to PyInt_Check(), which attempts to dereference a NULL pointer. 1659 case END_FINALLY: 1660 v = POP(); 1661 if (PyInt_Check(v)) { 1662 why = (enum why_code) PyInt_AS_LONG(v); 1663 assert(why != WHY_YIELD); 1664 if (why == WHY_RETURN || 1665 why == WHY_CONTINUE) 1666 retval = POP(); 1667 } #0 PyEval_EvalFrame (f=0x821cd04) at Python/ceval.c:1661 #1 0x080ae6bd in fast_function (func=0x4030df8d, pp_stack=0xbfffe85c, n=1, na=1076944740, nk=1079484852) at Python/ceval.c:3629 #2 0x080ae254 in call_function (pp_stack=0xbfffe85c, oparg=1076944740) at Python/ceval.c:3568 #3 0x080ac7a6 in PyEval_EvalFrame (f=0x8227d04) at Python/ ceval.c:2163 #4 0x080ad21e in PyEval_EvalCodeEx (co=0x4037e660, globals=0x4030df64, locals=0x4030df8d, args=0x40295c78, argcount=1, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2730 #5 0x08105647 in function_call (func=0x4038a304, arg=0x40295c6c, kw=0x0) at Objects/funcobject.c:548 #6 0x0805c409 in PyObject_Call (func=0x8148088, arg=0x4030df64, kw=0x4030df64) at Objects/abstract.c:1751 #7 0x08062e38 in instancemethod_call (func=0x4038a304, arg=0x40295c6c, kw=0x4030df64) at Objects/classobject.c:2431 #8 0x0805c409 in PyObject_Call (func=0x8148088, arg=0x4030df64, kw=0x4030df64) at Objects/abstract.c:1751 #9 0x080ae0e7 in PyEval_CallObjectWithKeywords (func=0x4030df64, arg=0x4028702c, kw=0x405785a4) at Python/ ceval.c:3419 #10 0x0809101c in slot_tp_del (self=0x4057a1b4) at Objects/ typeobject.c:4818 #11 0x08086f93 in subtype_dealloc (self=0x4057a1b4) at Objects/ typeobject.c:669 #12 0x08062a4c in instancemethod_dealloc (im=0x4057857c) at Objects/classobject.c:2225 #13 0x080790a4 in dict_dealloc (mp=0x4056aacc) at Objects/ dictobject.c:734 #14 0x0805e544 in instance_dealloc (inst=0x40569dcc) at Objects/ classobject.c:687 #15 0x081042cb in frame_dealloc (f=0x8218f14) at Objects/ frameobject.c:418 #16 0x080dc1e9 in PyThreadState_Clear (tstate=0x81f9820) at Python/pystate.c:217 #17 0x080dbdf8 in PyInterpreterState_Clear (interp=0x8148048) at Python/pystate.c:93 #18 0x080dcef2 in Py_Finalize () at Python/pythonrun.c:408 #19 0x08055391 in Py_Main (argc=1, argv=0xbfffee14) at Modules/ main.c:504 #20 0x08054eeb in main (argc=1076944740, argv=0x4030df64) at Modules/python.c:23 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1165761&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com