OMNeT++/OMNEST Bug Tracker - OMNeT++
View Issue Details
0000111OMNeT++runtime / Tkenvpublic2009-10-13 11:102009-10-13 11:29
resolvedwon't fix 
0000111: Crash when clicking on table heading of an inspector window
Tkenv crashes when one clicks on the table heading of an inspector window, trying to change the ordering of table rows.

This has been observed on Ubuntu 9.04 32-bit, using Tcl/Tk 8.4, with BLT (BLT provides the multi-column table widget).

This seems to be a bug in either Tcl8.4 or BLT 2.4z, and is caused (or triggered) by the blt::busy commmand. Removing the blt::busy calls from multicolumnlistbox_blt_sortcolumn in src/tkenv/widgets.tcl solves the issue.

Upgrading to Tcl/Tk 8.5 also makes the crash go away.

 - option 1: upgrade to Tcl/Tk 8.5: sudo apt-get install tk8.5-dev (then don't forget to rebuild OMNeT++: ./configure, make cleanall, make)
 - option 2: edit omnetpp/src/tkenv/widgets.tcl, and comment out the lines containing "blt::busy" (0000972 and 0000974) by prefixing them with #

A side effect of workaround 2 is that now the code won't prevent user interaction *while* the listbox ordering is being updated, so if some user action (e.g. "run simulation") is triggered too fast after clicking the table header, it may get called within the table ordering code, with unpredictable results. The practical chance of that actually happening is, however, virtually zero.

Run any simulation (e.g. samples/aloha), open an inspector for a simple module (e.g. double-click it); when the inspector comes up, click a table column (e.g. "Name") --> crash.
Stack trace:
            36 <symbol is not available> 0x00000000
            33 TclInvokeStringCommand() 0xb77015ce
            25 Tcl_GlobalEval() 0xb77055f6
            24 <symbol is not available> 0xb688f2bd
            23 Blt_TreeViewColumnOp() 0xb688e287
            22 Blt_TreeViewWidgetInstCmd() 0xb6885588
            21 TclEvalObjvInternal() 0xb770294e
            11 Tk_HandleEvent() 0xb77c1de6
            6 Tkenv::run()
            3 main()

No tags attached.
Issue History
2009-10-13 11:10andrasNew Issue
2009-10-13 11:12andrasNote Added: 0000184
2009-10-13 11:12andrasStatusnew => resolved
2009-10-13 11:12andrasResolutionopen => won't fix
2009-10-13 11:12andrasAssigned To => andras
2009-10-13 11:16andrasDescription Updated
2009-10-13 11:29andrasDescription Updated

2009-10-13 11:12   
Not a bug in OMNeT++; problem will go away as distros upgrade to Tk 8.5.