philippe44 / LMS-uPnP

Integrate UPnP players with LogitechMediaServer
111 stars 17 forks source link

binary crashes with double free corruptoin error (static and dynamically linked) in x86_64 LINUX #19

Closed real-t0mg closed 7 years ago

real-t0mg commented 7 years ago

running in x86_64 Linux with Logitech Media Server Version: 7.9.0 - 1477086729 @ Mon Oct 31 04:07:21 UTC 2016 crashes with local content in 44.1Khz (flac), NOT with 96Khz (flac). Puzzling thing is it works with remote flac stream from TIDAL.

No other remote stream in AAC, MP3 or OGG work with your binaries. No local MP3 or AAC or M4A files work. Let me knwo what I may do to help debug this.

Bridge config attached. Double free corruption error output attached. error.txt upnpbridge_xml.txt

real-t0mg commented 7 years ago

added malloc error output. error_malloc.txt

philippe44 commented 7 years ago

are you familiar enough with gdb and/or valgrind? It would help me a lot if you could run it under one of these. So far, I cannot reproduce the issue here, WOuld be great as well if you could try with one of the reference SW player: foobar2000 (prefered but required Windows) or XBMC

real-t0mg commented 7 years ago

Hi Philippe44,

I'm not familiar with GDB, sorry. I don't use windows since 1998 so no foobar here, sorry for that too. I managed to make it work without crashing but not all formats work using my Sony SRS-X88 as renderer. As per the manufacturer, the following formats are supported:

What works using target hardware as renderer is local media in the following formats:

What doesn't work:

Don't have any media in WMA, AIF, ALAC or DSD to test. I rid off convert.conf and use a custom convert-conf for this to work.

Putting MP3 codec AFTER FLAC in the UPNP bridge XML config results in MP3 NOT playing in targeted renderer. Removing native MP3 to MP3 in convert.conf results in MP3 not playing in targeted renderer.

Attached custom-convert.conf with my preferred filter/EQ settings and bridge XML config. These settings made it work for me. YMMV.

Let me know if there's anything I may test to debug, cheers.

upnpbridge_xml.txt

custom-convert_conf.txt

philippe44 commented 7 years ago

oh, I think I got it now. AAC is known to not work well because there are many variants in what LMS can send and not all are accepted by various UPnP players. To make a match, it would require me to do a lot of on-the-fly repackaging, which I already do for wav, aif and a bit on flac, but on AAC that would be way too complicated, so I decided to not do that. As a result, your mileage varies with AAC, depending on what LMS sends and what the player support (mp4 is the same). Best is to remove aac from supported codec (which is the default config) and have LMS transcode

real-t0mg commented 7 years ago

I don't think it's that... it keeps segfaulting out of the blue while playing, thus cutting the audio stream until the play command is issued again (only working if the bridge has respawned).

FYI:

root@stinkpad:~# date Mon Nov 14 17:11:35 ART 2016 root@stinkpad:~# dmesg | grep squeeze2upnp [ 787.665160] squeeze2upnp-x8[1954]: segfault at 2d0 ip 00007f625c1d1ed3 sp 00007f625c604c90 error 4 in libpthread-2.13.so[7f625c1ca000+18000] [49113.668044] squeeze2upnp-x8[5136]: segfault at 2d0 ip 00007fb19d459ed3 sp 00007fb19d88cc90 error 4 in libpthread-2.13.so[7fb19d452000+18000] [54371.751712] squeeze2upnp-x8[5459]: segfault at 2d0 ip 00007f80435a0ed3 sp 00007f80439d3c90 error 4 in libpthread-2.13.so[7f8043599000+18000] [54698.671153] squeeze2upnp-x8[5497]: segfault at 2d0 ip 00007f001ffaded3 sp 00007f00203e0c90 error 4 in libpthread-2.13.so[7f001ffa6000+18000] [124017.721851] squeeze2upnp-x8[9886]: segfault at 2d0 ip 00007f32f1e8aed3 sp 00007f32f22bdc90 error 4 in libpthread-2.13.so[7f32f1e83000+18000] [134329.732893] squeeze2upnp-x8[10501]: segfault at 2d0 ip 00007f06622bbed3 sp 00007f06626eec90 error 4 in libpthread-2.13.so[7f06622b4000+18000] [145706.664309] squeeze2upnp-x8[11249]: segfault at 2d0 ip 00007f411122eed3 sp 00007f4111661c90 error 4 in libpthread-2.13.so[7f4111227000+18000] [192296.740647] squeeze2upnp-x8[14349]: segfault at 2d0 ip 00007febcebe9ed3 sp 00007febcf01cc90 error 4 in libpthread-2.13.so[7febcebe2000+18000] [214240.725927] squeeze2upnp-x8[15679]: segfault at 2d0 ip 00007f496854ced3 sp 00007f496897fc90 error 4 in libpthread-2.13.so[7f4968545000+18000] [232273.659749] squeeze2upnp-x8[16795]: segfault at 2d0 ip 00007f133b44fed3 sp 00007f133b882c90 error 4 in libpthread-2.13.so[7f133b448000+18000] [292477.723533] squeeze2upnp-x8[21232]: segfault at 2d0 ip 00007f6386b43ed3 sp 00007f6386f76c90 error 4 in libpthread-2.13.so[7f6386b3c000+18000] [311402.712981] squeeze2upnp-x8[22438]: segfault at 2d0 ip 00007f06f6773ed3 sp 00007f06f6ba6c90 error 4 in libpthread-2.13.so[7f06f676c000+18000] [373919.679634] squeeze2upnp-x8[26355]: segfault at 2d0 ip 00007fea6f302ed3 sp 00007fea6f735c90 error 4 in libpthread-2.13.so[7fea6f2fb000+18000] [382223.688216] squeeze2upnp-x8[26866]: segfault at 2d0 ip 00007f23c727ced3 sp 00007f23c76afc90 error 4 in libpthread-2.13.so[7f23c7275000+18000] [397360.671630] squeeze2upnp-x8[27810]: segfault at 2d0 ip 00007fe6cfbf0ed3 sp 00007fe6d0023c90 error 4 in libpthread-2.13.so[7fe6cfbe9000+18000] [398762.136173] squeeze2upnp-x8[27811]: segfault at 2d0 ip 00007fe306b3aed3 sp 00007ffc12543490 error 4 in libpthread-2.13.so[7fe306b33000+18000] root@stinkpad:~#

real-t0mg commented 7 years ago

Built my own version with 0.2.10.0-dev-2 code, the segfaulting stopped. Closing the issue.