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.
B. Bogart wrote:
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.
just to make sure: do other threaded objects work (like [readsf~] ?)
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
i see you are using libc6-i686 could you try deinstalling it ?
What I'm confused about it how this libc differs from /lib/libc.so.6:
yours should be optimized for i686, while the normal lib6 is just generic.
So why is /lib/tls/i686/cmov/libc.so.6 used and not /lib/libc.so.6 ?
i guess that /etc/ld.so.conf is overriding /lib/ (but my guess might be pretty nonsense; anyhow it should be something like that)
what i would do (if the above doesn't help) is to add post()s in the videoV4L.cpp code and random/strategic positions to see what it is doing (e.g. whether it is really hanging at pthread_join())
another solution would be to make the use of threads optional (if pthreads are the problem) but this would make video really not smooth
mfg.a.frew IOhannes
IOhannes m zmoelnig wrote:
just to make sure: do other threaded objects work (like [readsf~] ?)
ReadSF~ works fine. I hear sound, no freezing.
i see you are using libc6-i686 could you try deinstalling it ?
That is libc6 2.3.5, I started off with 2.3.2 genertic and that was also crashing.
i guess that /etc/ld.so.conf is overriding /lib/ (but my guess might be pretty nonsense; anyhow it should be something like that)
Ok, I'll try and mess with ld.so.conf and see what happens.
what i would do (if the above doesn't help) is to add post()s in the videoV4L.cpp code and random/strategic positions to see what it is doing (e.g. whether it is really hanging at pthread_join())
Sure, just tell me where to put them and I'll post the results.
another solution would be to make the use of threads optional (if pthreads are the problem) but this would make video really not smooth
Probably not the best solution...
b.