Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 249406 - x11-misc/xsnow - freezes after half an hour
Summary: x11-misc/xsnow - freezes after half an hour
Status: RESOLVED TEST-REQUEST
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Desktop Misc. Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-11-30 17:32 UTC by Jaak Ristioja
Modified: 2010-06-08 05:46 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jaak Ristioja 2008-11-30 17:32:41 UTC
Running x11-misc/xsnow on the desktop for half an hour, it suddenly stopped, leaving Santa Claus, all of the reindeer and snowflakes frozen and stuck in the sky. =(

Attaching to the xsnow process with gave me the following results:

(gdb) bt
#0  0x00007f42b5527108 in __lll_mutex_lock_wait () from /lib/libc.so.6
#1  0x00007f42b548f25f in _L_lock_10 () from /lib/libc.so.6
#2  0x00007f42b548f081 in __random () at random.c:296
#3  0x00007f42b548f749 in rand () at rand.c:28
#4  0x0000000000402a88 in RandInt ()
#5  0x0000000000402aa0 in sig_alarm ()
#6  <signal handler called>
#7  __random_r (buf=0x7f42b57954a0, result=0x7fffbe35ed14) at random_r.c:404
#8  0x00007f42b548f092 in __random () at random.c:298
#9  0x00007f42b548f749 in rand () at rand.c:28
#10 0x0000000000402a88 in RandInt ()
#11 0x00000000004032f7 in UpdateSnowflake ()
#12 0x00000000004041c1 in main ()
#13 0x00007f42b5479b74 in __libc_start_main (main=0x403880 <main>, argc=3, ubp_av=0x7fffbe35f008, init=<value optimized out>,
    fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fffbe35eff8) at libc-start.c:229
#14 0x0000000000401b59 in _start ()
(gdb) disassemble
Dump of assembler code for function __lll_mutex_lock_wait:
0x00007f42b55270f0 <__lll_mutex_lock_wait+0>:   push   %r10
0x00007f42b55270f2 <__lll_mutex_lock_wait+2>:   push   %rdx
0x00007f42b55270f3 <__lll_mutex_lock_wait+3>:   xor    %r10,%r10
0x00007f42b55270f6 <__lll_mutex_lock_wait+6>:   mov    $0x2,%edx
0x00007f42b55270fb <__lll_mutex_lock_wait+11>:  xor    %esi,%esi
0x00007f42b55270fd <__lll_mutex_lock_wait+13>:  cmp    %edx,%eax
0x00007f42b55270ff <__lll_mutex_lock_wait+15>:  jne    0x7f42b5527108 <__lll_mutex_lock_wait+24>
0x00007f42b5527101 <__lll_mutex_lock_wait+17>:  mov    $0xca,%eax
0x00007f42b5527106 <__lll_mutex_lock_wait+22>:  syscall
0x00007f42b5527108 <__lll_mutex_lock_wait+24>:  mov    %edx,%eax
0x00007f42b552710a <__lll_mutex_lock_wait+26>:  xchg   %eax,(%rdi)
0x00007f42b552710c <__lll_mutex_lock_wait+28>:  test   %eax,%eax
0x00007f42b552710e <__lll_mutex_lock_wait+30>:  jne    0x7f42b5527101 <__lll_mutex_lock_wait+17>
0x00007f42b5527110 <__lll_mutex_lock_wait+32>:  pop    %rdx
0x00007f42b5527111 <__lll_mutex_lock_wait+33>:  pop    %r10
0x00007f42b5527113 <__lll_mutex_lock_wait+35>:  retq
End of assembler dump.

By setting a breakpoint at 0x7f42b552710a I was able to determine, that it never left the syscall. I left xsnow attached to GDB just in case.

sys-libs/glibc-2.6.1
sys-kernel/gentoo-sources-2.6.27-r3
x11-misc/xsnow-1.42

Kernel modules loaded: nls_iso8859_1, nls_cp437, vfat, fat, tun, bridge, stp, llc, snd_seq_midi, snd_seq_oss, snd_seq_midi_event, snd_seq, snd_pcm_oss, snd_mixer_oss, snd_mpu401, snd_via82xx, snd_ac97_codec, ac97_bus, snd_pcm, snd_timer, snd_page_alloc, snd_mpu401_uart, snd_rawmidi, snd_seq_device, snd.

Here's most of emerge --info:

Portage 2.1.4.5 (default/linux/amd64/2008.0/developer, gcc-4.1.2, glibc-2.6.1-r0, 2.6.27-gentoo-r3-worship x86_64)
=================================================================
System uname: 2.6.27-gentoo-r3-worship x86_64 AMD Athlon(tm) 64 Processor 3200+
Timestamp of tree: Sat, 29 Nov 2008 14:05:01 +0000
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
app-shells/bash:     3.2_p33
dev-lang/python:     2.5.2-r7
dev-util/cmake:      2.4.6-r1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r2
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=athlon64 -ggdb"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="-O2 -pipe -march=athlon64 -ggdb"
FEATURES="collision-protect cvs digest distlocks fixpackages metadata-transfer multilib-strict parallel-fetch sandbox sfperms sign splitdebug strict unmerge-orphans userfetch usersandbox"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="en et en_GB en_US de"
MAKEOPTS="-j2"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Please save Santa!
Comment 1 Jaak Ristioja 2008-12-01 22:52:11 UTC
I still think this is at least a glibc issue, because the lock happens in rand().
Comment 2 Samuli Suominen (RETIRED) gentoo-dev 2010-06-06 15:15:55 UTC
(In reply to comment #1)
> I still think this is at least a glibc issue, because the lock happens in
> rand().
> 

It's been ~2 years. Can you retry with up-to-date glibc >= 2.10, and see if you can still reproduce? Reopen if so.
Comment 3 Jaak Ristioja 2010-06-08 05:46:46 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > I still think this is at least a glibc issue, because the lock happens in
> > rand().
> > 
> 
> It's been ~2 years. Can you retry with up-to-date glibc >= 2.10, and see if you
> can still reproduce? Reopen if so.
> 

Running xsnow inside Xnest didn't deadlock. Although since its been ~2 years, I'm running it on a different processor, different Gentoo setup (glibc-2.10.1-r1) etc. I used Xnest because xsnow doesn't work well with KDE 4.