Issue 802417: Bogus use of Tkinter.PhotoImage can give sig11 (original) (raw)
Running the following script can cause a signal11 (the script is invalid, but presumably should result only in a traceback, not a sig11): from Tkinter import * t = Tk() i = PhotoImage(t) print "here"
The signal 11 happens before the print statement is reached.
My system is RedHat9, tcl/tk 8.3.5, Python 2.2.2 (also observed on 2.3b1)
This may be a tk bug (thus unfixable in Python/Tkinter), because the following sequence kills wish: % image create photo . Illegal instruction
The traceback looks like this: (gdb) run tkinter-image-bug.py Starting program: /usr/local/bin/python tkinter-image-bug.py [New Thread 1074993152 (LWP 30584)]
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1074993152 (LWP 30584)] 0x082b4518 in ?? () (gdb) where #0 0x082b4518 in ?? () #1 0x405cc169 in Tk_DeleteImage () from /usr/lib/libtk8.3.so #2 0x405cb77d in Tk_ImageObjCmd () from /usr/lib/libtk8.3.so #3 0x4065e517 in TclExpandTokenArray () from /usr/lib/libtcl8.3.so #4 0x4065e638 in Tcl_EvalObjv () from /usr/lib/libtcl8.3.so #5 0x4047016c in Tkapp_Call (_self=0x81e7528, args=0x81d634c) at /usr/src/Python-2.3b1/Modules/_tkinter.c:1292 #6 0x080f4bcc in PyCFunction_Call (func=0x81e674c, arg=0x81d634c, kw=0x82afb20) at Objects/methodobject.c:108 #7 0x080a5ea5 in call_function (pp_stack=0xbfffeaec, oparg=137053208) at Python/ceval.c:3416 #8 0x080a4494 in eval_frame (f=0x819b4bc) at Python/ceval.c:2093 #9 0x080a4f0c in PyEval_EvalCodeEx (co=0x826b120, globals=0x82b4418, locals=0x0, args=0x81cfd28, argcount=5, kws=0x82c6780, kwcount=0, defs=0x8272b50, defcount=3, closure=0x0) at Python/ceval.c:2640 #10 0x080f4821 in function_call (func=0x827f064, arg=0x81cfd1c, kw=0x827edfc) at Objects/funcobject.c:501 #11 0x0805cca8 in PyObject_Call (func=0xa30a5208, arg=0x81cfd1c, kw=0x827edfc) at Objects/abstract.c:1755 #12 0x08062c7c in instancemethod_call (func=0x827f064, arg=0x81cfd1c, kw=0x827edfc) at Objects/classobject.c:2432 #13 0x0805cca8 in PyObject_Call (func=0xa30a5208, arg=0x81cfd1c, kw=0x827edfc) at Objects/abstract.c:1755 #14 0x080a6301 in ext_do_call (func=0x81d643c, pp_stack=0xbfffeeec, flags=0, na=5, nk=0) at Python/ceval.c:3690 #15 0x080a4883 in eval_frame (f=0x81a6d3c) at Python/ceval.c:2128 #16 0x080a4f0c in PyEval_EvalCodeEx (co=0x826b4a0, globals=0x81cfd1c, locals=0x0, args=0x81a6e88, argcount=2, kws=0x0, kwcount=0, defs=0x8272b78, defcount=3, closure=0x0) at Python/ceval.c:2640 #17 0x080f4821 in function_call (func=0x827f25c, arg=0x81f158c, kw=0x0) at Objects/funcobject.c:501 #18 0x0805cca8 in PyObject_Call (func=0xa30a5208, arg=0x81f158c, kw=0x0) at Objects/abstract.c:1755 #19 0x08062c7c in instancemethod_call (func=0x827f25c, arg=0x81f158c, kw=0x0) at Objects/classobject.c:2432 #20 0x0805cca8 in PyObject_Call (func=0xa30a5208, arg=0x81d2e0c, kw=0x0) at Objects/abstract.c:1755 #21 0x080a5c3f in PyEval_CallObjectWithKeywords (func=0x81d1fcc, arg=0x81d2e0c, kw=0x0) at Python/ceval.c:3323 #22 0x0805da9d in PyInstance_New (klass=0x82745fc, arg=0x81d2e0c, kw=0x0) at Objects/classobject.c:575 #23 0x0805cca8 in PyObject_Call (func=0xa30a5208, arg=0x81d2e0c, kw=0x0) at Objects/abstract.c:1755 #24 0x080a606b in do_call (func=0x82745fc, pp_stack=0xbffff37c, na=1, nk=136130060) at Python/ceval.c:3621 #25 0x080a5d27 in call_function (pp_stack=0xbffff37c, oparg=136130060) at Python/ceval.c:3437 #26 0x080a4494 in eval_frame (f=0x820c164) at Python/ceval.c:2093 #27 0x080a4f0c in PyEval_EvalCodeEx (co=0x81c7f20, globals=0x81d2e0c, locals=0x815079c, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:2640 #28 0x080a742e in PyEval_EvalCode (co=0x81c7f20, globals=0x815079c, locals=0x815079c) at Python/ceval.c:537 #29 0x080cc185 in run_node (n=0x8138410, filename=0xbffffb7d "tkinter-image-bug.py", globals=0x815079c, locals=0x815079c, flags=0xbffff4d8) at Python/pythonrun.c:1173 #30 0x080cba41 in PyRun_SimpleFileExFlags (fp=0x8136f48, filename=0xbffffb7d "tkinter-image-bug.py", closeit=1, flags=0xbffff4d8) at Python/pythonrun.c:770 #31 0x0805599c in Py_Main (argc=0, argv=0xbffff554) at Modules/main.c:417 #32 0x0805554e in main (argc=2, argv=0xbffff554) at Modules/python.c:26 #33 0x420156a4 in __libc_start_main () from /lib/tls/libc.so.6