[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

glibc pthread_join freezing on sarge using pd/pdp/gem



Hi all again,

Time is running out for this machine...

After spending some time on debian-glibc it seems they are not convinced
that it is pthread crashing on my machine, but something happening in
the other threads.

So lets get to the tracing...

after I manually kill PD this is what I'm seeing in gdb:

Program received signal SIGTERM, Terminated.
[Switching to Thread 1076308992 (LWP 9384)]
0xffffe410 in __kernel_vsyscall ()
(gdb)
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x4012f288 in pthread_join () from /lib/tls/i686/cmov/libpthread.so.0
#2  0x403f7dad in videoV4L::stopTransfer () from
/usr/lib/pd/extra/Gem.pd_linux
#3  0x403f7f66 in videoV4L::setNorm () from /usr/lib/pd/extra/Gem.pd_linux
#4  0x403f3755 in pix_videoNEW::normMess () from
/usr/lib/pd/extra/Gem.pd_linux
#5  0x403f3f1a in pix_videoNEW::modeMessCallback ()
   from /usr/lib/pd/extra/Gem.pd_linux
#6  0x0809ba47 in pd_typedmess ()
#7  0x00000000 in ?? ()
#8  0x00000000 in ?? ()
#9  0x00000000 in ?? ()
#10 0x00000000 in ?? ()
#11 0x00000000 in ?? ()
#12 0x00000000 in ?? ()
#13 0x00000000 in ?? ()
#14 0x00000000 in ?? ()
#15 0x00000000 in ?? ()
#16 0x00000000 in ?? ()
#17 0x00000000 in ?? ()
#18 0x00000000 in ?? ()
#19 0xbfffdc30 in ?? ()
#20 0x00000000 in ?? ()
#21 0xbfffdc00 in ?? ()
#22 0xbfffdc20 in ?? ()
#23 0xbfffe1b8 in ?? ()
#24 0x0025771c in ?? ()
#25 0x00000000 in ?? ()
#26 0x08257628 in ?? ()
#27 0x00000000 in ?? ()
#28 0x080eccff in _IO_stdin_used ()
#29 0x082147b8 in ?? ()
#30 0x0809cf77 in outlet_anything ()
#31 0x08250728 in ?? ()
#32 0x080eccc3 in _IO_stdin_used ()
#33 0xbfffdc78 in ?? ()
#34 0x4050244c in ?? () from /usr/lib/pd/extra/Gem.pd_linux
#35 0x08250728 in ?? ()
#36 0xbfffdc60 in ?? ()
#37 0xbfffdc78 in ?? ()
#38 0x08257690 in ?? ()
#39 0x080f73d0 in stderr ()
#40 0x00000002 in ?? ()
#41 0x082318e0 in ?? ()
#42 0x0809cf77 in outlet_anything ()
#43 0x00000000 in ?? ()
#44 0x00000000 in ?? ()
#45 0x08256e48 in ?? ()
#46 0x00000002 in ?? ()
#47 0x080f73d0 in stderr ()
#48 0x0820b558 in ?? ()
#49 0x082508fc in ?? ()
#50 0x0809b696 in pd_typedmess ()
#51 0x404a60cc in GemMan::m_border () from /usr/lib/pd/extra/Gem.pd_linux
#52 0x00000000 in ?? ()
#53 0xbfffdcc8 in ?? ()
#54 0x40331af1 in GemMan::startRendering () from
/usr/lib/pd/extra/Gem.pd_linux
Previous frame inner to this frame (corrupt stack?)
(gdb) info threads
  2 Thread 1146301360 (LWP 9389)  0xffffe410 in __kernel_vsyscall ()
* 1 Thread 1076308992 (LWP 9384)  0xffffe410 in __kernel_vsyscall ()
(gdb) thread 2
[Switching to thread 2 (Thread 1146301360 (LWP 9389))]#0  0xffffe410 in
__kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x40203fe9 in ioctl () from /lib/tls/i686/cmov/libc.so.6
#2  0x403f7481 in videoV4L::capturing () from /usr/lib/pd/extra/Gem.pd_linux
#3  0x4012ee40 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#4  0x4020c60e in clone () from /lib/tls/i686/cmov/libc.so.6

This means very little to me, and it sure meant little to the glibc
folks. For completness here is the same deal for PDP, which is also
crashing with pdp_v4l:

Program received signal SIGTERM, Terminated.
[Switching to Thread 1076308992 (LWP 9395)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x4012f288 in pthread_join () from /lib/tls/i686/cmov/libpthread.so.0
#2  0x40294440 in pdp_sdl_setup () from /usr/lib/pd/extra/pdp.pd_linux
(gdb) info threads
  3 Thread 1109560240 (LWP 9399)  0xffffe410 in __kernel_vsyscall ()
  2 Thread 1099164592 (LWP 9398)  0xffffe410 in __kernel_vsyscall ()
* 1 Thread 1076308992 (LWP 9395)  0xffffe410 in __kernel_vsyscall ()
(gdb) thread 2
[Switching to thread 2 (Thread 1099164592 (LWP 9398))]#0  0xffffe410 in
__kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x40130d46 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/i686/cmov/libpthread.so.0
#2  0x402b16fc in pdp_procqueue_flush () from /usr/lib/pd/extra/pdp.pd_linux
#3  0x402b7350 in ?? () from /usr/lib/pd/extra/pdp.pd_linux
#4  0x00000001 in ?? ()
#5  0x00000001 in ?? ()
#6  0x402b7320 in ?? () from /usr/lib/pd/extra/pdp.pd_linux
#7  0x00000000 in ?? ()
#8  0x00000000 in ?? ()
#9  0x402b1898 in pdp_procqueue_add () from /usr/lib/pd/extra/pdp.pd_linux
#10 0x402b7320 in ?? () from /usr/lib/pd/extra/pdp.pd_linux
#11 0x40137ff4 in ?? () from /lib/tls/i686/cmov/libpthread.so.0
#12 0x00000000 in ?? ()
#13 0x007d0f00 in ?? ()
#14 0x4183e4c8 in ?? ()
#15 0x4000aaa0 in _dl_rtld_di_serinfo () from /lib/ld-linux.so.2
#16 0x00000002 in ?? ()
#17 0x4183e490 in ?? ()
#18 0x00000000 in ?? ()
#19 0x00000000 in ?? ()
#20 0x00000000 in ?? ()
#21 0x4183ebb0 in ?? ()
#22 0x00000000 in ?? ()
#23 0x00000000 in ?? ()
#24 0x00000000 in ?? ()
#25 0x40137ff4 in ?? () from /lib/tls/i686/cmov/libpthread.so.0
#26 0x00000000 in ?? ()
#27 0x007d0f00 in ?? ()
#28 0x4183e4c8 in ?? ()
#29 0x4183e470 in ?? ()
#30 0x4012ee14 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#31 0x4020c60e in clone () from /lib/tls/i686/cmov/libc.so.6
(gdb) thread 3
[Switching to thread 3 (Thread 1109560240 (LWP 9399))]#0  0xffffe410 in
__kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0x40203fe9 in ioctl () from /lib/tls/i686/cmov/libc.so.6
#2  0x40294626 in pdp_sdl_setup () from /usr/lib/pd/extra/pdp.pd_linux
#3  0x0000000a in ?? ()
#4  0x40047612 in snd_config_searcha () from /usr/lib/libasound.so.2
#5  0x4020c60e in clone () from /lib/tls/i686/cmov/libc.so.6

Not I am running libc 2.3.5 BUT the above trace contains:

#1  0x40130d46 in pthread_cond_wait@@GLIBC_2.3.2 ()

So looking through here I noticed that
/lib/tls/i686/cmov/libpthread.so.0 is what is being used, which says:

Native POSIX Threads Library by Ulrich Drepper et al
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Forced unwind support included.

And /lib/tls/i686/cmov/libc.so.6 says:

GNU C Library stable release version 2.3.5, by Roland McGrath et al.
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.0.2 20050725 (prerelease) (Debian 4.0.1-3).
Compiled on a Linux 2.6.13 system on 2005-08-27.
Available extensions:
        GNU libio by Per Bothner
        crypt add-on version 2.1 by Michael Glad and others
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Thread-local storage support included.
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

What I'm confused about it how this libc differs from /lib/libc.so.6:

Compiled by GNU CC version 4.0.2 20050725 (prerelease) (Debian 4.0.1-3).
Compiled on a Linux 2.6.13 system on 2005-08-27.
Available extensions:
        GNU libio by Per Bothner
        crypt add-on version 2.1 by Michael Glad and others
        linuxthreads-0.10 by Xavier Leroy
        BIND-8.2.3-T5B
        libthread_db work sponsored by Alpha Processor Inc
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Thread-local storage support included.
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

So why is /lib/tls/i686/cmov/libc.so.6 used and not /lib/libc.so.6 ?

Anyhow I'm way over my head debugging this so please lend me a hand,
what the heck is going on?!?!?! pdp_v4l does not happen to be very
similar to pix_video does it? Perhaps based on pix_video?

Thanks to all on glibc for at least getting me this far, I hope the gem
and PDP developers have a closer look at this.

b.



Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: