Hi,

> In this dump, it's the first call to stroke that fails.  I'd guess that
> most of the cairo calls before this are local and don't interface with
> the X server.  So, what would be interesting to see is a) increasing the
> draw rate so that the clock locks-up more quickly, and then seeing if
> the failure always occurs at the same point in draw.cc.
> 
> Do you think you could run this test?
> 
> I think you may only have to remove the test in clock.cxx where it says:
> 
>                                 // Return immediately if there is
>                                 // nothing new to render.
>   if (seconds == m_seconds)
>     return false;
> 
> We'd let it draw every time it is activated, or if you are interested in
> more control you could calculate a more precise time delta.  The alarm
> is configured for 100ms which would be the upper bound on redraw if you
> removed the test above.

I've done this, and indeed it only took a couple of days for buici-clock
to hang. Here's the backtrace:

#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fe6e76b831e in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fe6e76b9697 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fe6e76b98bb in xcb_wait_for_reply ()
   from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#4  0x00007fe6e76ba393 in xcb_get_extension_data ()
   from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#5  0x00007fe6e76ba567 in xcb_generate_id ()
   from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#6  0x00007fe6e8945f9f in _XAllocIDs ()
   from /usr/lib/x86_64-linux-gnu/libX11.so.6
#7  0x00007fe6e8948b87 in ?? () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#8  0x00007fe6e62f8dc9 in XRenderCreatePicture ()
   from /usr/lib/x86_64-linux-gnu/libXrender.so.1
#9  0x00007fe6e84863a7 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#10 0x00007fe6e848148d in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#11 0x00007fe6e846b4d3 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#12 0x00007fe6e846c6d9 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#13 0x00007fe6e841b1fe in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#14 0x00007fe6e8484b83 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#15 0x00007fe6e845a2fe in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#16 0x00007fe6e8422925 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
---Type <return> to continue, or q <return> to quit---
#17 0x00007fe6e841ccc4 in ?? () from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#18 0x00007fe6e8416145 in cairo_stroke ()
   from /usr/lib/x86_64-linux-gnu/libcairo.so.2
#19 0x0000000000407bae in draw_hands (display=0x15968b0, visual=0x15a14f0,
    pixmap=8388619, dx=99, dy=99, seconds=2072) at draw.cc:172
#20 0x0000000000404eb0 in WTopLevel::render (this=0x15af240) at
clock.cxx:541
#21 0x000000000040638b in signal_alarm (pv=0x15af240) at clock.cxx:965
#22 0x00000000004070f7 in LSignal::handler (signal=14) at signal.cxx:215
#23 <signal handler called>
#24 0x00007fe6e799cdf8 in *__GI___poll (fds=0x7fff8cf15fd0, nfds=1,
    timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:83
#25 0x00007fe6e76b81c2 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#26 0x00007fe6e76b993f in xcb_wait_for_event ()
   from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#27 0x00007fe6e8945d88 in _XReadEvents ()
   from /usr/lib/x86_64-linux-gnu/libX11.so.6
#28 0x00007fe6e89350a8 in XNextEvent ()
   from /usr/lib/x86_64-linux-gnu/libX11.so.6
#29 0x00000000004090f4 in LDisplay::next_event (this=0x7fff8cf161b0,
    pEvent=0x7fff8cf160c0) at ldisplay.h:153
#30 0x0000000000408587 in LDisplay::dispatch_next_event
(this=0x7fff8cf161b0)
    at ldisplay.cxx:62
#31 0x00000000004062ac in do_clock () at clock.cxx:946
---Type <return> to continue, or q <return> to quit---
#32 0x00000000004036b5 in main (argc=3, argv=0x7fff8cf163f8) at main.cxx:140


HTH,

Matthew


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to