(gdb) bt #0 0x4ef5a247 in raise () from /lib/libc.so.6 #1 0x4ef5b96a in abort () from /lib/libc.so.6 #2 0x4ef533f7 in __assert_fail () from /lib/libc.so.6 #3 0x0807737e in decoder_read (decoder=0x30, is=0x81eb655, buffer=0x82727a0, length=32768) at src/decoder_api.c:140 #4 0x080624f8 in mpd_ffmpeg_read (h=0x826d750, buf=0x82727a0 " ", size=32768) at src/decoder/ffmpeg_plugin.c:91 #5 0x4472f313 in get_buffer () from /usr/lib/libavformat.so.52 #6 0x000036c8 in ?? () (gdb) fr 4 #4 0x080624f8 in mpd_ffmpeg_read (h=0x826d750, buf=0x82727a0 " ", size=32768) at src/decoder/ffmpeg_plugin.c:91 91 return decoder_read(stream->decoder, stream->input, (gdb) fr 3 #3 0x0807737e in decoder_read (decoder=0x30, is=0x81eb655, buffer=0x82727a0, length=32768) at src/decoder_api.c:140 140 assert(decoder == NULL ||
Точнее, там то ABRT, то SEGV, но при decoder=0x30 я бы как раз SEGV ожидал, странно что в данном случае ассерт не прошёл.
==11962== Invalid read of size 4 ==11962== at 0x806249F: mpd_ffmpeg_open (ffmpeg_plugin.c:83) ==11962== by 0x4472DAA4: url_open (in /usr/lib/libavformat.so.52.71.0) ==11962== Address 0x60e2880 is not stack'd, malloc'd or (recently) free'd ==11962== ==11962== Invalid read of size 1 ==11962== at 0x80624A2: mpd_ffmpeg_open (ffmpeg_plugin.c:83) ==11962== by 0x4472DAA4: url_open (in /usr/lib/libavformat.so.52.71.0) ==11962== Address 0x9 is not stack'd, malloc'd or (recently) free'd ==11962== Process terminating with default action of signal 11 (SIGSEGV) ==11962== Access not within mapped region at address 0x9 ==11962== at 0x80624A2: mpd_ffmpeg_open (ffmpeg_plugin.c:83) ==11962== by 0x4472DAA4: url_open (in /usr/lib/libavformat.so.52.71.0)
А падает оно всего лишь на файле из нулей (с расширением .mp3). На авишке какой-то ещё падало, но я её удалил. Не исключаю, что в ней тоже нули были. #0 0x080624a2 in mpd_ffmpeg_open (h=0x80e4280, filename=0x80e429c "mpd://X.mp3", flags=0) at src/decoder/ffmpeg_plugin.c:83 83 h->is_streamed = stream->input->seekable ? 0 : 1; (gdb) p *stream $4 = {url = "mpd://X.mp3\000e/wr)\000\000\000\000C\016\bpdtest/02 The Human Stain.mpX\000\000\000\021\000\000\000яяяя", decoder = 0x0, input = 0x0}
Подтверждаю. Тоже падало на update или создании базы. 0.15.13 пошло в сизиф. У меня падать перестало. С пульс оно смешное.
Похоже, что с 0.15.13 не падает (с 0.15.8 падало)
0.15.13