STINNER Victor <[EMAIL PROTECTED]> added the comment: The bug looks to be specific to Python3 but may comes from Tk and not directly from tkinter module. I recompiled Tk with debug symbols to get a better backtrace: malformed bucket chain in Tcl_DeleteHashEntry
Program received signal SIGABRT, Aborted. [Switching to Thread 0xb7e178c0 (LWP 23520)] 0xb7fd1424 in __kernel_vsyscall () (gdb) where #0 0xb7fd1424 in __kernel_vsyscall () #1 0xb7e43640 in raise () from /lib/i686/cmov/libc.so.6 #2 0xb7e45018 in abort () from /lib/i686/cmov/libc.so.6 #3 0xb78c2cff in Tcl_PanicVA () from /usr/lib/libtcl8.4.so.0 #4 0xb78c2d27 in Tcl_Panic () from /usr/lib/libtcl8.4.so.0 #5 0xb78a469d in Tcl_DeleteHashEntry () from /usr/lib/libtcl8.4.so.0 #6 0xb7922c33 in Tk_FreeColor (colorPtr=0x987cfb0) at /tmp/tk8.4-8.4.19/unix/../generic/tkColor.c:492 #7 0xb79166cd in Tk_Free3DBorder (border=0x985b830) at /tmp/tk8.4-8.4.19/unix/../generic/tk3d.c:440 #8 0xb7938a6e in Tk_FreeOptions (specs=0xb79df240, widgRec=0x986f9d8 "", display=0x9733c88, needFlags=0) at /tmp/tk8.4-8.4.19/unix/../generic/tkOldConfig.c:1039 #9 0xb79984bb in DestroyText (memPtr=0x986f9d8 "") at /tmp/tk8.4-8.4.19/unix/../generic/tkText.c:996 #10 0xb78ca115 in Tcl_EventuallyFree () from /usr/lib/libtcl8.4.so.0 #11 0xb7998bae in TextEventProc (clientData=0x986f9d8, eventPtr=0xbfcea6bc) at /tmp/tk8.4-8.4.19/unix/../generic/tkText.c:1270 #12 0xb7928026 in Tk_HandleEvent (eventPtr=0xbfcea6bc) at /tmp/tk8.4-8.4.19/unix/../generic/tkEvent.c:1037 #13 0xb7945c1c in Tk_DestroyWindow (tkwin=0x987d9b0) at /tmp/tk8.4-8.4.19/unix/../generic/tkWindow.c:1423 #14 0xb7920020 in Tk_DestroyObjCmd (clientData=0x9735210, interp=0x961ea80, objc=2, objv=0xbfcea910) at /tmp/tk8.4-8.4.19/unix/../generic/tkCmds.c:471 #15 0xb786e926 in TclEvalObjvInternal () from /usr/lib/libtcl8.4.so.0 #16 0xb786eb79 in Tcl_EvalObjv () from /usr/lib/libtcl8.4.so.0 #17 0xb7b7cc0d in Tkapp_Call (selfptr=0xb7c97918, args=0xb6da1e4c) at /home/haypo/prog/py3k/Modules/_tkinter.c:1241 #18 0x0812121d in PyCFunction_Call (func=0xb7bfc6cc, arg=0xb6da1e4c, kw=0x0) at Objects/methodobject.c:81 #19 0x080942e4 in call_function (pp_stack=0xbfceab38, oparg=2) at Python/ceval.c:3398 #20 0x08091027 in PyEval_EvalFrameEx (f=0x9a4f6dc, throwflag=0) at Python/ceval.c:2205 (...) And the Python backtrace: (gdb) pystack /home/haypo/prog/py3k/Lib/tkinter/__init__.py (1929): destroy /home/haypo/prog/py3k/Lib/tkinter/__init__.py (1928): destroy /home/haypo/prog/py3k/Lib/tkinter/__init__.py (1928): destroy /home/haypo/prog/py3k/Lib/idlelib/WindowList.py (70): destroy /home/haypo/prog/py3k/Lib/idlelib/EditorWindow.py (887): _close /home/haypo/prog/py3k/Lib/idlelib/PyShell.py (260): _close /home/haypo/prog/py3k/Lib/idlelib/FileList.py (41): open /home/haypo/prog/py3k/Lib/idlelib/PyShell.py (1382): main Tools/scripts/idle (5): <module> So if I add the source code to the trace: --------------------------------------------------------------- /home/haypo/prog/py3k/Lib/tkinter/__init__.py (1929): destroy def destroy(self): """Destroy this and all descendants widgets.""" for c in list(self.children.values()): c.destroy() self.tk.call('destroy', self._w) if self._name in self.master.children: <~~~ HERE del self.master.children[self._name] Misc.destroy(self) /home/haypo/prog/py3k/Lib/tkinter/__init__.py (1928): destroy def destroy(self): """Destroy this and all descendants widgets.""" for c in list(self.children.values()): c.destroy() self.tk.call('destroy', self._w) <~~~ HERE if self._name in self.master.children: del self.master.children[self._name] Misc.destroy(self) /home/haypo/prog/py3k/Lib/tkinter/__init__.py (1928): destroy def destroy(self): """Destroy this and all descendants widgets.""" for c in list(self.children.values()): c.destroy() self.tk.call('destroy', self._w) <~~~ HERE if self._name in self.master.children: del self.master.children[self._name] Misc.destroy(self) /home/haypo/prog/py3k/Lib/idlelib/WindowList.py (70): destroy def destroy(self): registry.delete(self) Toplevel.destroy(self) # If this is Idle's last window then quit the mainloop # (Needed for clean exit on Windows 98) if not registry.dict: <~~~ HERE self.quit() /home/haypo/prog/py3k/Lib/idlelib/EditorWindow.py (887): _close def _close(self): (...) self.per.close() self.per = None self.top.destroy() if self.close_hook: <~~~ HERE # unless override: unregister from flist, terminate if last window self.close_hook() (...) --------------------------------------------------------------- Hum, the Python line numbers are maybe invalid. ---------- components: +IDLE versions: +Python 3.0 _______________________________________ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue4313> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com