[Rd] misbehaviour of some tk windows, R 2.6.0 on SUSE 10.1?

Peter Dalgaard p.dalgaard at biostat.ku.dk
Tue Oct 9 22:31:45 CEST 2007

Peter Dalgaard wrote:
> David Firth wrote:
>> I don't know whether this is specific to (my installation 
>> of) SUSE 10.1, or is more general.  
>> With R 2.6.0, I am finding that some widgets made through 
>> the tcltk package are having problems which become evident 
>> through scrollbar activity.  An example is demo(tkfaq) -- 
>> see below.  To reproduce the problem, I do the following: 
>> after the tk window appears, hold down the "scroll-down" 
>> tab at the foot of the window for a few seconds, then 
>> release.  If scrolling stops (as it should, if all is 
>> working correctly), do the same thing again.  Repeating 
>> this 2 or 3 times usually results in uncontrolled 
>> (unstoppable) scrolling activity; and closing the window 
>> when that happens delivers the errors that appear in the 
>> transcript below.
>> My R 2.6.0 was built on my own system,
>> OS:  SUSE linux 10.1
>> tcl: 8.4.12-14
>> tk:  8.4.12-14
>> gcc: 4.1.0-25
>> Since I had not seen this behaviour with previous versions 
>> of R, I did a check with R 2.5.1: a fresh build today of R 
>> 2.5.1 on the same system does not appear to have the same 
>> problem.
>> Any ideas?  Is anyone else seeing this behaviour?
>> David
> Looks a bit nasty. I see it on SUSE 10.2 as well. Increasing the
> repeatinterval setting for the scrollbar helps, but even at a setting of
> 50, I still see the effect. It is usually stoppable with the middle
> button over the trough.
> The error message is what you'd expect from killing a window while
> something is trying to talk to widgets inside of it. The details of the
> popup dialog is a little more informative:
>     while executing
> "$w cget -repeatinterval"
>     (procedure "tk::ScrollSelect" line 12)
>     invoked from within
> "tk::ScrollSelect .3.2 arrow2 again"
>     ("after" script)
> I think there's a clue in there. It has the hallmarks of a race
> condition: As I understand it the autorepeat feature runs an "after"
> script which effectively presses the arrow again 5 ms later, invoking
> another "after" script, etc. A button release is supposed to kill the
> after script, but it might not do so in time, in which case it may try
> to kill something that already died, etc.
> Can't offhand see that we did anything to the event loop that could
> cause this, though.
Exactly the same behaviour on Fedora 7. Looping scrolling with 2.6.0+, 
no probs with 2.5.1.

Can probably eliminate OS issues and hardware then (2x3.2GHz, 64 bit 
SUSE vs. 600MHz, 32bit Fedora).  Argh....

   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907

More information about the R-devel mailing list