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
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sergej Pupykin (sergej)
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

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

Closed by  Sergej Pupykin (sergej)
Thursday, 12 September 2013, 09:46 GMT
Reason for closing:  Fixed
Comment by fabrizio castellano (faxx) - Friday, 19 April 2013, 12:56 GMT
The problem is still there with python 3.3.1-1
Comment by fabrizio castellano (faxx) - Thursday, 11 July 2013, 15:13 GMT
bug still present after update to:
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?
Comment by fabrizio castellano (faxx) - Friday, 12 July 2013, 16:00 GMT
After some more investigation I think the problem is in the tix package.

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
Comment by fabrizio castellano (faxx) - Monday, 05 August 2013, 14:24 GMT
Update:
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.
Comment by fabrizio castellano (faxx) - Tuesday, 06 August 2013, 10:17 GMT

Loading...