azatoth / minidlna

MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully compliant with DLNA/UPnP-AV clients. It is developed by a NETGEAR employee for the ReadyNAS product line
http://sourceforge.net/projects/minidlna/
Other
294 stars 78 forks source link

segfault " in select_del" while streaming #28

Open marcin-github opened 1 year ago

marcin-github commented 1 year ago

Hello, i'm using minidlna 1.3.2. I'm getting many segfaults while streaming movie, this is backtrace:

Reading symbols from /usr/sbin/minidlnad...
Reading symbols from /usr/lib/debug//usr/sbin/minidlnad.debug...
[New LWP 5874]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/sbin/minidlnad -P /run/minidlna/minidlna.pid -f /etc/minidlna.conf'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000055629758572a in select_del (ev=0x556298c16820, flags=<optimized out>) at select.c:135
135     select.c: No such file or directory.
(gdb) bt
#0  0x000055629758572a in select_del (ev=0x556298c16820, flags=<optimized out>) at select.c:135
#1  0x000055629755d6cf in CloseSocket_upnphttp (h=h@entry=0x556298c16820) at upnphttp.c:126
#2  0x0000556297560188 in SendResp_dlnafile (h=h@entry=0x556298c16820, object=object@entry=0x7ffd80ef0fbc "2970.avi") at upnphttp.c:2121
#3  0x000055629756098d in ProcessHttpQuery_upnphttp (h=h@entry=0x556298c16820) at upnphttp.c:1015
#4  0x0000556297560da2 in Process_upnphttp (ev=<optimized out>) at upnphttp.c:1145
#5  0x0000556297585675 in select_process (tv=<optimized out>) at select.c:177
#6  0x000055629755bd10 in main (argc=<optimized out>, argv=<optimized out>) at minidlna.c:1286
(gdb) bt full
#0  0x000055629758572a in select_del (ev=0x556298c16820, flags=<optimized out>) at select.c:135
        ev0 = <optimized out>
        __PRETTY_FUNCTION__ = "select_del"
#1  0x000055629755d6cf in CloseSocket_upnphttp (h=h@entry=0x556298c16820) at upnphttp.c:126
No locals.
#2  0x0000556297560188 in SendResp_dlnafile (h=h@entry=0x556298c16820, object=object@entry=0x7ffd80ef0fbc "2970.avi") at upnphttp.c:2121
        header = "HTTP/1.1 206 OK\r\nConnection: close\r\nDate: Sun, 12 Feb 2023 15:10:26 GMT\r\nServer: 6.1.0-02431-g1d81821b3b8f DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.3.1\r\nEXT:\r\nrealTimeInfo.dlna.org: DLNA.ORG_TLAG=*\r\ntransferM"...
        str = {data = 0x7ffd80ef0b30 "HTTP/1.1 206 OK\r\nConnection: close\r\nDate: Sun, 12 Feb 2023 15:10:26 GMT\r\nServer: 6.1.0-02431-g1d81821b3b8f DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.3.1\r\nEXT:\r\nrealTimeInfo.dlna.org: DLNA.ORG_TLAG=*\r\ntransferM"..., off = 464, size = 1024}
        buf = "'\263\061\232bU\000\000\364O\000\000\000\000\000\000\360\n\357\200\375\177\000\000\236\204X\227bU\000\000p\f\357\200\375\177\000\000\030\f\370\037\322\177\000\000\001\200\255\373\060\000\000\000P\262\061\232\002\000\000\000\001\200\255\373bU\000\000'\263\061\232bU\000\000'\263\061\232bU\000\000'\263\061\232bU\000\000'\263\061\232bU\000\000)\263\061\232bU\000\000\033\003\062\232bU\000\000'\263\061\232bU\000"
        result = 0x7ffd80ef0af0
        rows = 943206960
        ret = <optimized out>
        total = <optimized out>
        offset = 3816192466
        size = <optimized out>
        id = 2970
        sendfh = 13
        dlna_flags = 24117248
        cflags = <optimized out>
        tmode = <optimized out>
        ctype = <optimized out>
        last_file = {id = 2970, client = ELGNetCastDevice, path = "/dane/media/xxxxx.avi", '\000' <repeats 3959 times>,
          mime = "video/x-msvideo", '\000' <repeats 16 times>, dlna = '\000' <repeats 95 times>}
        newpid = 0
#3  0x000055629756098d in ProcessHttpQuery_upnphttp (h=h@entry=0x556298c16820) at upnphttp.c:1015
        HttpCommand = "GET", '\000' <repeats 12 times>
        HttpUrl = "/MediaItems/2970.avi\000U\000\000`\374\f \322\177\000\000\000\000\000\000\000\000\000\000\220h\n\232bU\000\000\020\021\000\000\000\000\000\000\240\220\371\037\322\177\000\000P\262\061\232\000\000\000\000\331\000\000\000\000\000\000\000\251n\000\000\000\000\000\000\000\232\370Ơ\241\220\276Sun, 12 \000\232\370Ơ\241\220\276\002\000\000\000\000\000\000\000h\377\377\377\377\377\377\377\002\000\000\000\000\000\000\000\200\364\n\232bU\000\000\253Y\000\000\000\000\000\000\036\000\000\000\000\000\000\000b\a\000\000\000\000\000\000\217\267\371\037\322\177\000\000 h\301\230bU\000\000\000\021\357\200\375\177\000\000 h\301\230bU\000\000`\205"...
        HttpVer = 0x556298c1684c "HTTP/1.1"
        p = <optimized out>
        i = <optimized out>
#4  0x0000556297560da2 in Process_upnphttp (ev=<optimized out>) at upnphttp.c:1145
        new_req_buflen = <optimized out>
        endheaders = <optimized out>
        buf = "GET /MediaItems/2970.avi HTTP/1.1\r\nHost: 192.yyyy:8200\r\nUser-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 WebAppManager\r\nCo"...
        h = 0x556298c16820
        n = <optimized out>
#5  0x0000556297585675 in select_process (tv=<optimized out>) at select.c:177
        ev = 0x556298c16820
        ready = <optimized out>
        i = 4
#6  0x000055629755bd10 in main (argc=<optimized out>, argv=<optimized out>) at minidlna.c:1286
        ret = <optimized out>
        i = <optimized out>
        shttpl = 7
        smonitor = 5
        e = <optimized out>
        next = <optimized out>
        tv = {tv_sec = 36, tv_usec = 826935}
        timeofday = {tv_sec = 1676214626, tv_usec = 78263}
        lastnotifytime = {tv_sec = 1676214477, tv_usec = 881459}
        lastupdatetime = 0
        lastdbtime = 1676214477
        last_changecnt = 0
        scanner_pid = 0
        ssdpev = {fd = 6, index = 1, rdwr = EVENT_READ, {process = 0x55629756a1c0 <ProcessSSDPRequest>}, data = 0x0}
        httpev = {fd = 7, index = 2, rdwr = EVENT_READ, {process = 0x556297559b60 <ProcessListen>}, data = 0x0}
        monev = {fd = 5, index = 0, rdwr = EVENT_READ, {process = 0x556297568a40 <ProcessMonitorEvent>}, data = 0x0}
        beacon_interval = 60 '<'
        sbeacon = 9
        tivo_bcast = {sin_family = 2, sin_port = 36360, sin_addr = {s_addr = 4294967295}, sin_zero = "\000\000\000\000\000\000\000"}
        lastbeacontime = <optimized out>
        beaconev = {fd = 9, index = 3, rdwr = EVENT_READ, {process = 0x556297576ae0 <ProcessTiVoBeacon>}, data = 0x0}
0k00l commented 10 months ago

got also coredump in 1.3.3 version, don't know how to debug it :(

gru 14 09:41:08 goliath kernel: minidlnad[169382]: segfault at 20 ip 0000556279c41fb1 sp 00007ffd695b08b0 error 4 in minidlnad[556279c13000+30000] likely on CPU 1 (core 1, socket 0)
gru 14 09:41:08 goliath kernel: Code: 05 30 89 02 00 ff ff ff ff 8b 05 2e 89 02 00 8b 53 04 ff c8 89 05 23 89 02 00 39 c2 7d 17 48 8b 0d 1c 89 02 00 48 98 48 63 f2 <48> 8b 04 c1 48 89 04 f1 89 50 04 c7 43 04 ff ff ff ff 31 c0 5b c3