[PD] mysterious segfault while receiving midi commands...
Jörn Nettingsmeier
nettings at stackingdwarves.net
Wed Oct 31 17:40:55 CET 2012
On 10/30/2012 10:10 PM, Hans-Christoph Steiner wrote:
> That's a tough one to track down. One thing I'd recommend is to reduce the
> complexity. Specifically, [readanysf~] is a wonderful object, but relies on
> many many libraries and has many layers in it. This bug could have come from
> any one of those libraries in addition to Pd, readanysf, etc.
>
> For the media that you're using, I recommend converting them with 32-bit float
> WAVs, the internal format used in Pd. Then you can use [readsf~] or even
> better, load them into tables and play them with [tabplay~].
very good points. i'll definitely follow that advice.
nonetheless, i'd very much like to track down the issue. yesterday, i
had a very similar crash and was finally able to get a post-mortem:
Reading symbols from /usr/local/lib64/pd/bin/pd...done.
[New LWP 19272]
[New LWP 19278]
[New LWP 19276]
[New LWP 19783]
[New LWP 19803]
[New LWP 19785]
[New LWP 19784]
[New LWP 19788]
[New LWP 19787]
[New LWP 19798]
[New LWP 19786]
[New LWP 19799]
[New LWP 19801]
[New LWP 19802]
[New LWP 19800]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `pd DasLamm.pd'.
Program terminated with signal 11, Segmentation fault.
#0 0x000000000046d343 in vu_float ()
Missing separate debuginfos, use: zypper install
glibc-debuginfo-2.15-22.6.4.x86_64
libFLAC8-debuginfo-1.2.1-96.1.2.x86_64
libasound2-debuginfo-1.0.25-3.5.1.x86_64
libgcc47-debuginfo-4.7.1_20120723-1.1.1.x86_64
libjpeg62-debuginfo-62.0.0-15.5.1.x86_64
libmad0-debuginfo-0.15.1b-3.2.x86_64
libogg0-debuginfo-1.3.0-4.1.2.x86_64
libpng12-0-debuginfo-1.2.49-2.1.2.x86_64
libspeex1-debuginfo-1.1.999_1.2rc1-16.1.2.x86_64
libstdc++47-debuginfo-4.7.1_20120723-1.1.1.x86_64
libtheora0-debuginfo-1.1.1-20.1.2.x86_64
libtiff3-debuginfo-3.9.5-8.10.1.x86_64
libvorbis0-debuginfo-1.3.3-1.1.2.x86_64
libvorbisenc2-debuginfo-1.3.3-1.1.2.x86_64 zlib-debuginfo-1.2.7-2.1.2.x86_64
(gdb) thread apply all bt
Thread 15 (Thread 0x7f1542ea9700 (LWP 19800)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb02a in ReadMedia::waitA() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfc62e in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 14 (Thread 0x7f15416a6700 (LWP 19802)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb02a in ReadMedia::waitA() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfc62e in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 13 (Thread 0x7f1541ea7700 (LWP 19801)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb02a in ReadMedia::waitA() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfc62e in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 12 (Thread 0x7f15426a8700 (LWP 19799)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb02a in ReadMedia::waitA() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfc62e in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 11 (Thread 0x7f1546f15700 (LWP 19786)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb10c in ReadMedia::waitDispatch() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfbdb8 in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 10 (Thread 0x7f15436aa700 (LWP 19798)):
---Type <return> to continue, or q <return> to quit---thread apply all bt
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb02a in ReadMedia::waitA() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfc62e in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 9 (Thread 0x7f1549369700 (LWP 19787)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb10c in ReadMedia::waitDispatch() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfbdb8 in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 8 (Thread 0x7f1548924700 (LWP 19788)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb10c in ReadMedia::waitDispatch() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfbdb8 in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 7 (Thread 0x7f1543eab700 (LWP 19784)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb10c in ReadMedia::waitDispatch() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfbdb8 in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 6 (Thread 0x7f153bfff700 (LWP 19785)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb10c in ReadMedia::waitDispatch() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfbdb8 in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 5 (Thread 0x7f1540ea5700 (LWP 19803)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb02a in ReadMedia::waitA() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
---Type <return> to continue, or q <return> to quit---
#2 0x00007f154bdfc62e in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 4 (Thread 0x7f1546714700 (LWP 19783)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f154bdfb10c in ReadMedia::waitDispatch() () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#2 0x00007f154bdfbdb8 in ?? () from
/usr/local/lib64/pd/extra/readanysf~.pd_linux
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 3 (Thread 0x7f155094d700 (LWP 19276)):
#0 0x00007f15516058f4 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1 0x00007f1550cfdd8b in mb_thread_func () from
/usr/local/lib64/libjack.so.0
#2 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#3 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7f1551c7f700 (LWP 19278)):
#0 0x00007f1550a2a13f in poll () from /lib64/libc.so.6
#1 0x00007f1550cfc806 in jack_cycle_wait () from
/usr/local/lib64/libjack.so.0
#2 0x00007f1550cfcb38 in jack_process_thread_work () from
/usr/local/lib64/libjack.so.0
#3 0x00007f1551601e0e in start_thread () from /lib64/libpthread.so.0
#4 0x00007f1550a322bd in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f1551cfc700 (LWP 19272)):
#0 0x000000000046d343 in vu_float ()
#1 0x000000000047345f in outlet_float ()
#2 0x000000000047345f in outlet_float ()
#3 0x000000000047345f in outlet_float ()
#4 0x000000000047f412 in m_mainloop ()
#5 0x00007f155096f455 in __libc_start_main () from /lib64/libc.so.6
#6 0x0000000000414df1 in _start () at ../sysdeps/x86_64/elf/start.S:113
(gdb)
nothing midi-specific, but obviously a breakage in the vu meter. i
wonder if the odd-looking vus i'm getting (see
http://stackingdwarves.net/download/pd-odd_vu_meter.png) are a hint?
i think i copied-and-pasted the two vus when i created the 6-channel
player, but i don't see how that could cause a segfault later...
looks like i'm having a hard time to create a proper reproducible test
case, but maybe some devs are inspired by this backtrace anyway :)
best,
jörn
--
Jörn Nettingsmeier
Lortzingstr. 11, 45128 Essen, Tel. +49 177 7937487
Meister für Veranstaltungstechnik (Bühne/Studio)
Tonmeister VDT
http://stackingdwarves.net
More information about the Pd-list
mailing list