hzeller / gmrender-resurrect

Resource efficient UPnP/DLNA renderer, optimal for Raspberry Pi, CuBox or a general MediaServer. Fork of GMediaRenderer to add some features to make it usable.
GNU General Public License v2.0
834 stars 202 forks source link

gmediarender 0.0.7-git crashing on startup #74

Closed anmith closed 9 years ago

anmith commented 9 years ago

Hi,

I'm running an Raspberry Pi using Arch Linux.

After upgrading my Raspberry which was running fine since August, gmediarender crashes after "Registering support for 'application/x-ogg-avi'" with a segmentation fault / core dump.

I installed base-devel, cloned the git repository and compiled the binary according to the steps described at https://github.com/hzeller/gmrender-resurrect/blob/master/INSTALL.md

However, when running the new compiled version using src/gmediarender -f "My Renderer" it still crashes.

INFO [2014-12-18 15:45:02.189011 | main] gmediarender 0.0.7-git log started [ gmediarender 2014-03-01_61f5a8f (libupnp-1.6.19; glib-2.42.1; gstreamer-1.4.4) ]

Any ideas?

MichaelSp commented 9 years ago

same here with the gstreamer 1.0

[...]
INFO  [2015-01-03 15:16:56.624252 | connmgr] Registering support for 'application/x-kate'
INFO  [2015-01-03 15:16:56.700734 | connmgr] Registering support for 'audio/x-wavpack'
INFO  [2015-01-03 15:16:56.859233 | connmgr] Registering support for 'application/x-hls'
INFO  [2015-01-03 15:16:56.902785 | connmgr] Registering support for 'audio/x-vorbis'
Segmentation fault
$ ldd /usr/local/bin/gmediarender 
        /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so (0xb6fc5000)
        libgthread-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgthread-2.0.so.0 (0xb6fa2000)
        libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0xb6e9f000)
        libgstreamer-1.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgstreamer-1.0.so.0 (0xb6d9b000)
        libgobject-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0 (0xb6d41000)
        libupnp.so.6 => /usr/lib/arm-linux-gnueabihf/libupnp.so.6 (0xb6d00000)
        libthreadutil.so.6 => /usr/lib/arm-linux-gnueabihf/libthreadutil.so.6 (0xb6cea000)
        libixml.so.2 => /usr/lib/arm-linux-gnueabihf/libixml.so.2 (0xb6ccf000)
        libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6c54000)
        libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6c2c000)
        libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6aed000)
        libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0xb6a7a000)
        /lib/ld-linux-armhf.so.3 (0xb6fd3000)
        libgmodule-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgmodule-2.0.so.0 (0xb6a66000)
        libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6a53000)
        libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0xb6a43000)
        libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6a15000)
hzeller commented 9 years ago

I suspect a problem in the compilation of gstreamer. Often this is due to mismatching floating point compilation modes (using software emulation or hardware; some ARM cpus don't have all fp-commands).

Can you create a stack-trace of when this happens (gdb, command 'bt').

MichaelSp commented 9 years ago

Here is the stack-trace.

$ gdb gmediarender 
GNU gdb (Raspbian 7.7.1+dfsg-5) 7.7.1
[...] prolog
(gdb) run
Starting program: /usr/local/bin/gmediarender 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
gmediarender 0.0.7-git started [ gmediarender 2014-03-01_61f5a8f (libupnp-1.6.19+git20141001; glib-2.42.1; gstreamer-1.4.4) ].
Logging switched off. Enable with --logfile=<filename> (e.g. --logfile=/dev/stdout for console)

Program received signal SIGSEGV, Segmentation fault.
strchr () at ../ports/sysdeps/arm/armv6/strchr.S:28
28      ../ports/sysdeps/arm/armv6/strchr.S: No such file or directory.
(gdb) 
(gdb) bt
#0  strchr () at ../ports/sysdeps/arm/armv6/strchr.S:28
#1  0xb6d608d8 in g_param_spec_pool_lookup () from /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0
#2  0xb6d5b6a4 in g_object_set_valist () from /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0
#3  0xb6d5c00c in g_object_set () from /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0
Cannot access memory at address 0x140
#4  0xb31fc110 in ?? () from /usr/lib/arm-linux-gnueabihf/gstreamer-1.0/libgstdvb.so
Cannot access memory at address 0x140
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) 

I don't get it.

MichaelSp commented 9 years ago

Is there something else I can do to support you?

anmith commented 9 years ago

After performing a system update this morning, gmrender-resurrect works without crashing (again).