[skindesigner] segfault nach Pause im xineliboutput-Mediaplayer

  • Servus!


    Wenn ich die Medienwiedergabe im xineliboutput-Mediaplayer pausiere, schmiert der VDR ab. Erst hält die Wiedergabe (wie gewünscht) an, dann steht nach ca. 5 Sek. mitten im Bildschirm "Pause" und dann folgt der Absturz:

    Code
    Dec 31 11:14:00 hdvdr vdr: [16721] [xine..put] OSD bandwidth: 16588924 bytes/s (129600 kbit/s)
    Dec 31 11:14:00 hdvdr kernel: [73470.561768] vdr[16720]: segfault at 20 ip 00007f61417652e0 sp 00007f609e73f160 error 4 in libvdr-skindesigner.so.2.0.6[7f6141730000+12a000]
    Dec 31 11:14:01 hdvdr vdr-sxfe[16348]: [16358] [input_vdr] Control stream disconnected
    Dec 31 11:14:01 hdvdr kernel: [73470.864872] init: vdr main process (16149) killed by SEGV signal
    Dec 31 11:14:01 hdvdr kernel: [73470.868649] init: graphtft-fe main process (16290) killed by TERM signal
    Dec 31 11:14:01 hdvdr kernel: [73470.955296] vdr-sxfe[16348]: segfault at a8 ip 00007fdb9fecd524 sp 00007fff3e4c6890 error 4 in libxine.so.2.2.0[7fdb9feb0000+64000]
    Dec 31 11:14:01 hdvdr kernel: [73470.982647] init: vdr-frontend main process (16315) terminated with status 139
    Dec 31 11:14:01 hdvdr vdr-crash: vdr exit with signal SEGV . Restarting
    Dec 31 11:14:01 hdvdr kernel: [73471.078228] init: vdr-exit-other main process (16738) terminated with status 1
    Dec 31 11:14:01 hdvdr vdr: [16742] VDR version 2.0.6 started


    yaVDR-Testing aktuell


    Was kann ich tun bzw. welche Infos braucht Ihr noch?


    Daniel

  • Was kann ich tun bzw. welche Infos braucht Ihr noch?

    Lass mal einen Backtrace von dem Segfault erstellen - damit das automatisch passiert machst du das:

    Code
    sudo apt-get install gdb vdr-dbg vdr-plugin-skindesigner-dbg
    echo "DAEMON=/usr/bin/vdr-dbg" | sudo tee -a /etc/default/vdr
    sudo restart vdr


    Nach einem Crash sollte jetzt automatisch ein Backtrace aus dem Coredump erzeugt werden, der dann unter /var/log/vdr/ abgelegt wird.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Jo erstelle bitte nen Backtrace, dann sollte man sehen wo das Problem liegt.


    Was genau hast du eigentlich im xineliboutput setup konfiguriert, damit skindesigner läuft?


    Ciao Louis

  • Das hat jetzt 3 Versuche bedurft:
    1. Ist einfach nicht abgestürzt (????)
    2. Das Bild war weg und die "OSD bandwidth"-Meldungen sind weitergelaufen. Er ist aber eingfach nicht abgestützt
    3. Absturz wie vorher. (siehe Anhang)


    Daniel

  • Ah ich sehe bei dir ist GraphTFT am Start...damit gibt es ein Problem, das hat dann nichts mit Xine zu tun. Mache doch bitte mal das hier beschriebene, dann sollte der Crash weg sein.


    Ciao Louis

  • Hi Carel,


    kannst du bitte mal in der Datei views/displaymenurootview.c in der Zeile 437 folgendes einfügen und dann testen:


    Code
    bool cDisplayMenuRootView::RenderDynamicElements(void) {
    +  if (!view)
    +       return false;
        bool updated = false;
        if (view->DrawTime()) {
        ...


    Ciao Louis

  • Moin Louis,


    Leider ohne erfolg...


    Code
    #0  0x000000000054e56a in cThread::Start (this=0x0) at thread.c:275No locals.#1  0x00007f6583dcca21 in cDisplayMenuRootView::Action (this=0xee21450) at views/displaymenurootview.c:613No locals.#2  0x000000000054e4ed in cThread::StartThread (Thread=0xee21450) at thread.c:262No locals.#3  0x00007f65900610a4 in start_thread (arg=0x7f65123d0700) at pthread_create.c:309        __res = <optimized out>        pd = 0x7f65123d0700        now = <optimized out>        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140072074413824, -7317993002035976859, 0, 140074191609952, 0, 140072074413824, 7258501168036963685, 7258223903359886693}, mask_was_saved = 0}}, priv = {            pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}        not_first_call = <optimized out>        pagesize_m1 = <optimized out>        sp = <optimized out>        freesize = <optimized out>        __PRETTY_FUNCTION__ = "start_thread"#4  0x00007f658ea7bccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111No locals.
  • Moin,


    ganz schön hartnäckig :)


    Mache bitte zusätzlich zum obigen Patch noch in views/displaymenurootview.c folgendes ab Zeile 608:


    Code
    void cDisplayMenuRootView::Action(void) {
    +   if (!view)
    +       return;
        SetInitFinished();
        Render();
        view->Start();
        FadeIn();
        DoFlush();
    }


    Ciao Louis

  • carel: ich habe die beiden Patches ins Git aufgenommen, die können auf keinen Fall schaden ;) EIn "git pull" genügt jetzt also zum testen...


    Ciao Louis

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!