[xmonad] Bug in program depends on number of tiled windows

John Jumper jumper at uchicago.edu
Mon Mar 12 05:21:16 CET 2012


On Sun, Mar 11, 2012 at 8:01 PM, Brandon Allbery <allbery.b at gmail.com> wrote:
> On Sun, Mar 11, 2012 at 17:54, Wirt Wolff <wirtwolff at gmail.com> wrote:
>>
>> With two, three, or four, all but the newest are blank until resized, so
>> far as I can tell with just a few tests.
>>
>> Mod-n to refresh and focus changes do nothing, but any xmonad operation
>> that resizes triggers redrawing.
>>
>> Another weird symptom is that with 3 plots, the third plotted and the
>> first two blank...  changing to an empty workspace and then back to the
>> plot workspace draws two of the plots but not consistently. Sometimes 1
>> and 3 get drawn, and other times 2 and 3. :/
>>
>>
>> Toggling plots to and from full-screen also give unpredictable behavior.
>
>
> Somehow I'm thinking R is waiting until some negotiation is complete, that
> xmonad thinks is already complete.  I'm curious as to whether it relies on
> libX11/xcb/whatever toolkit it's using handling ConfigureRequest or tries to
> do so itself; that's the most obvious difference between the various cases
> *and* where xmonad is likely to differ from other window managers.
>
> I'd be curious as to whether any problems have been reported with R in other
> nonreparenting or tiling window managers.  (Note, the two are not the same
> thing.)
>
> --
> brandon s allbery                                      allbery.b at gmail.com
> wandering unix systems administrator (available)     (412) 475-9364 vm/sms
>

I looked at the documentation for x11() in R, and the default is to
use type="X11".  If I install the Cairo library 1.5_1 for R and launch
two CairoX11 plots, I get a segfault whenever I resize.  I will
probably file this as a bug report with the R developers.  The
segfault should be much easier to track down that drawing bugs.

gdb output (using R -d gdb):
> library('Cairo'); CairoX11() ; CairoX11()
>
Program received signal SIGSEGV, Segmentation fault.
0x009f6704 in Rcairo_backend_resize (be=0xceb0, width=570, height=296)
at cairotalk.c:1025
1025            if (!be || !be->dd) return;

I do not know if this has been reproduced with other tiling window managers.

John



More information about the xmonad mailing list