FS#33607 - [tix] segmentation fault when using tkinter.tix
Attached to Project:
Community Packages
Opened by fabrizio castellano (faxx) - Monday, 28 January 2013, 11:28 GMT
Last edited by Sergej Pupykin (sergej) - Thursday, 12 September 2013, 09:46 GMT
Opened by fabrizio castellano (faxx) - Monday, 28 January 2013, 11:28 GMT
Last edited by Sergej Pupykin (sergej) - Thursday, 12 September 2013, 09:46 GMT
|
Details
Description:
I have a gui application written in tkinter/tix, everything works fine (menus, buttons, sliders, canvas ...) except dialog boxes, which cause a segmentation fault. Steps to reproduce: Here is the minimal code that produces the bug: import tkinter.tix as tk root = tk.Tk() print("root = ",root) dialog = tk.ExFileSelectDialog(root)de: this is the output: [faxx@pcfabrizio ~]$ python tktest.py root = . Segmentation fault (core dumped) the segmentation fault is produced at line 323 in /usr/lib/python3.3/tix.py : 322 if widgetName: 323 self.tk.call(widgetName, self._w, *extra) Current package versions installed are: python 3.3.0-3 tix-8.4.3-4 tk-8.6.0-1 tcl-8.6.0-3 The bug is not present if the system is downgraded to: python 3.3.0-2 tix-8.4.3-3 tk-8.5.13-1 tcl-8.5.13-1 Downgrading to tix-8.4.3-3 alone does not remove the bug. I don't know how to determine if this is an arch packaging issue or an upstream issue with the new version of tcl/tk. |
This task depends upon
python 3.3.2
tix 8.4.3-4
tk 8.6.0-1
tcl 8.6.0-4
is there any chance to have some feedback on this?
Here is my test tix program, if executed with the wish interpreter it will dump core:
package require Tix
tixExFileSelectDialog .dialog
another test program, with some code borrowed from the tix package files and a few debug puts:
package require Tix
proc tixExFileSelectDialog:ConstructWidget {w} {
puts "2"
upvar #0 $w data
puts "3"
tixChainMethod $w ConstructWidget
puts "4"
set data(w:fsbox) [tixExFileSelectBox $w.fsbox -dialog $w -command $data(-command)]
puts "5"
pack $data(w:fsbox) -expand yes -fill both
puts "6"
}
puts "1"
tixExFileSelectDialog .dialog
this is the output:
1
2
3
4
Segmentation fault (core dumped)
so the problem is in the "set data ..." line, that is line 41 of /usr/lib/Tix8.4.3/EFileDlg.tcl
the problem seems to be in the tixBusy function in /usr/lib/Tix8.4.3/Utils.tcl, line 208.
There is a call to tixInputOnly that causes the segfault.
I patched the file inserting a return statement at line 179, so that the tixBusy function returns immediatly.
That fixed the problem for my program, I don't know if other parts of tix are affected by this.