Beiträge von RHS

    Hab das mal gebaut bei der Anwendung des patches aus #169 auf einen Git clone des vdr aus vdr-projects war der Hunk:


    Code
    @@ -60,7 +60,6 @@
       provider = strdup("");
       portalName = strdup("");
       memset(&__BeginData__, 0, (char *)&__EndData__ - (char *)&__BeginData__);
    -  nameSourceMode = 0;
       parameters = "";
       modification = CHANNELMOD_NONE;
       seen         = 0;

    schon vorhanden. Patch wollte diesen reverten.


    Nach Löschung dieses Hunk lies sich der Rest patchen.

    crashed jetzt dauernd. Hier der Backtrace.


    Code
    #0  __strcmp_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:40
    #1  0x00007fef775322b7 in cSatipDevice::IsTunedToTransponder (channelP=0x8552e0, this=0xcf4030) at /usr/src/packages/BUILD/vdr-2.6.6-test/include/vdr/tools.h:188
    #2  cSatipDevice::IsTunedToTransponder (this=0xcf4030, channelP=0x8552e0) at device.c:334
    #3  0x00000000004a64e4 in cDevice::GetDeviceForTransponder (Channel=0x8552e0, Priority=Priority@entry=-99) at device.c:425
    #4  0x0000000000489b8a in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/packages/BUILD/vdr-2.6.6-fi/timers.h:67

    wirbel mit deinem vnsiserver-crashes git aus #156 gibt es folgenden compile error:


    Code
    g++ -g -O3 -Wall -march=goldmont-plus -Woverloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -std=c++11 -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.8.3"' -I/usr/src/packages/BUILD/vdr-2.6.6-wi/include -o vnsiclient.o vnsiclient.c
    vnsiclient.c: In member function ‘bool cVNSIClient::processCHANNELS_GetChannels(cRequestPacket&)’:
    vnsiclient.c:1206:3: error: ‘resp’ was not declared in this scope
     1206 |   resp.finalise();
          |   ^~~~

    kls


    Sorry aber es wäre wohl mittlerweile sinnvoll den Patchstatus für vdr und vnsiserver festzulegen um eine transparente Testbasis zu haben. Mir erschließen sich die Abhängigkeiten der verschiedenen Vorschläge jetzt nicht mehr so ganz.

    Hab ShowChannelNamesWithSource == 0 gesetzt und mit obigen Patch #150 angewandt.

    Heftiges schalten durch die diversen Kanäle hat bisher keinen Crash produziert, auch bei mehreren Clients.

    Werde es weiter beobachten.

    wirbel


    good pick.


    Code
         if (isempty(nameSource) || nameSourceMode != Setup.ShowChannelNamesWithSource) {
    ++      nameSourceMode = Setup.ShowChannelNamesWithSource;
            if (Setup.ShowChannelNamesWithSource == 1)
               nameSource = cString::sprintf("%s (%c)", name, cSource::ToChar(source));
            else
               nameSource = cString::sprintf("%s (%s)", name, *cSource::ToString(source));
            }


    scheint die Verbesserung gebracht zu haben kein crash bisher mit drei kodi clients und häufigen umschalten.

    Zitat

    RHS Das wäre eventuell hilfreich, wenn Du die noch finden könntest.

    Da man an den Punkt eigentlich nie gelangen sollte, könnten die Informationen Aufschluss geben, was da schief läuft.

    Ich finde diese Fehlermeldung nicht.

    wirbel: Ich habe die zeile 2 wie oben beschrieben eingefügt und ShowChannelNamesWithSource == 2 gesetzt.


    dann erhalte ich folgenden anderen verlauf im Syslog beim Channel Switch und bisher kein crash. Bisher hätte es wohl einen gegeben.

    Interessant ist :

    [10235] VNSI: exit streamer thread

    während des Channel switches. Hatte ich bisher nie.


    Mit dem Patch aus #48 sieht der Backtrace beim crash folgendermaßen aus:


    Ein weiterer crash :

    Wenn mehr Info benötigt wird bitte melden.

    Mit Patch aus #136 crashed es auch hier der Backtrace:



    und hier die syslog Meldungen:


    Hab den Vorschlag #129 mal kompiliert, ergibt folgende Warnung:


    Code
    sources.c:63:12: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
       63 |      if (l < (sizeof(buffer) - 1) && l > 0) {
          |          ~~^~~~~~~~~~~~~~~~~~~~~~

    Gibt das einen Anhaltspunkt?

    SHF Auch nach entfernen von responsepacket_realloc_3.diff.txt gibt es keine Warnungen mehr. Vielleicht hatte ich noch einen alten Stand. Nach der ganzen Patcherei hatte ich einen neuen Abzug von github gemacht.


    Im folgenden ein Backtrace bei dem eine Segmantation Fault gemeldet wurde :



    dmesg -T

    [Sun Feb 25 20:37:24 2024] traps: VNSI Client 69-[16805] general protection fault ip:7f916a4a192c sp:7f911f3ffca0 error:0 in libc.so.6[7f916a428000+16d000]


    Syslog:

    Feb 25 20:37:16 vnas2.home.arpa vdr[431]: [18102] VNSI: Welcome client 'XBMC Media Center' with protocol version '13'

    Feb 25 20:37:17 vnas2.home.arpa vdr[431]: [18100] VNSI: Created stream for pid=1279 and type=8

    Feb 25 20:37:17 vnas2.home.arpa vdr[431]: [18100] VNSI: Created stream for pid=1283 and type=1

    Feb 25 20:37:17 vnas2.home.arpa vdr[431]: [18100] VNSI: Created stream for pid=36 and type=12

    Feb 25 20:37:17 vnas2.home.arpa vdr[431]: [18100] VNSI: Audio stream change, pid: 1283, channels: 2, samplerate: 48000

    Feb 25 20:37:18 vnas2.home.arpa vdr[431]: [18100] VNSI: Video stream change, pid: 1279, width: 1920, height: 1080, aspect: 1,777778

    Feb 25 20:37:24 vnas2.home.arpa vdr[431]: [477] VNSI: Requesting clients to reload channels list

    Feb 25 20:37:28 vnas2.home.arpa vdr[18157]: [18157] VDR version 2.6.6 started

    Leider crashed es weiterhin hier der backtrace:



    und hier der Syslog:


    Also mit dem neuen Patch responsepacket_realloc_3.diff.txt und dem Patch aus #81 erhalte ich auch mit der Compiler Option -O3 keine Warnung mehr. So weit sieht es also gut aus.


    Wenn es wieder crashes gibt melde ich mich . Ein erster schneller Test zeigt kein crash bei den bisherigen Syslog Meldungen vor dem Absturz.

    Code
    Feb 25 10:40:56 vnas2.home.arpa vdr[431]: [1854] VNSI: Created stream for pid=33 and type=7
    Feb 25 10:40:56 vnas2.home.arpa vdr[431]: [1854] VNSI: Created stream for pid=34 and type=2
    Feb 25 10:40:56 vnas2.home.arpa vdr[431]: [1854] VNSI: Created stream for pid=36 and type=12
    Feb 25 10:40:56 vnas2.home.arpa vdr[431]: [1854] VNSI: Audio stream change, pid: 34, channels: 2, samplerate: 48000
    Feb 25 10:40:56 vnas2.home.arpa vdr[431]: [1854] VNSI: Video stream change, pid: 33, width: 720, height: 576, aspect: 1,777778
    Feb 25 10:41:03 vnas2.home.arpa vdr[431]: [477] VNSI: Requesting clients to reload channels list


    Vielen Dank für das Interesse an der Analyse dieses vertrackten Problems.

    nobanzai : Danke für den Hinweis.

    Die Compilierung läuft jetzt durch. Aber es schweißt jetzt wieder mehr Warnungen.


    Ich lass den Vdr jetzt laufen mal schauen ob es crashes gibt.


    der VDR crasht jetzt sofort beim start:

    Hier der backtrace:

    Die Patche lassen sich anwenden, ich erhalte aber dann folgenden compile ERROR:


    Zitat

    Dass bei dir noch die Warnung auftritt, aber bei den anderen nicht, habe ich nicht verstanden.

    Aber die Warnung ist nur ein weiteres Problem.


    ich hab jetzt mal mit -O0 übersetzt, dann gibt es bei mir auch keine warnings ebenso keine mit

    -Wno-stringop-overflow
    . Es crasht dennoch:


    wenn es interessant ist hier der coredump mit -O0



    diesmal wie gesagt ohne compiler Optimierungen, vielleicht gibts es weitere Erkenntnisse.

    Wie gesagt es gibt auch nach den Patchen bei mir immer noch diese Compiler Warnung:



    writing 1 byte into .... und cc1plus : dest... is likely at address zero.


    geben diese compiler Warnungen nicht Hinweise auf das Fehlverhalten?


    ----------------------------------------------


    Im Anhang der coredump von 20240221-221117


    Neue Coredumps gerne auf Anforderung.

    Hab vnsiserver mit Patch aus #101:


    crash um 23:19:27 Syslog:



    Im Anhang der dazugehörige Coredump.

    Mit obigen Patch bekomme ich folgenden Compile Error:


    Code
    g++ -g -O1 -Wall -march=goldmont-plus -Woverloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -std=c++11 -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"vnsiserver"' -DVNSI_SERVER_VERSION='"1.8.3"' -I/usr/src/packages/BUILD/vdr-2.6.6-test/include -o vnsiclient.o vnsiclient.c
    vnsiclient.c: In member function ‘bool cVNSIClient::processCHANNELS_GetChannels(cRequestPacket&)’:
    vnsiclient.c:1206:3: error: ‘resp’ was not declared in this scope
     1206 |   resp.finalise();
          |   ^~~~
    make[1]: *** [Makefile:86: vnsiclient.o] Error 1
    
    *** failed plugins: vnsiserver