Memory Leak (in softhddevice?)

  • Hi,


    ich habe jetzt schon länger das Problem, dass mein VDR nach maximal 4 Tagen abstürzt, da der ganze Speicher verbraucht ist.
    Wenn ich mir die Speicherauslastung visualisiere, dann schaut das ganz witzig aus :) Jedes mal, wenn ich den VDR neu starte (oder er sich durch Absturz selbst neu startet) wird wieder viel Speicher frei und die Kurve schnellt nach oben.
    [Blockierte Grafik: http://www.djdagobert.com/chart2.png]


    Folgende Plugins habe ich am laufen:
    * skinnopacity
    * streamdev-server
    * softhddevice


    Ich habe will mich nicht zu weit aus dem Fenster lehnen, aber ich habe das softhddevice in Vermutung, da ich kurzzeitig mal mit valgrind einen memcheck laufenn gelassen habe und dort sehr viele "possible losses" in Zusammenhang mit libasound.so habe, welches von softhddevice genutzt wird.


    Kann mir jemand bei der Suche weiterhelfen um dem Speicherhunger meines VDR auf den Grund zu gehen? :)


    Die Ausgabe des memcheck ist hier zu finden. Ich habe memckeck aber nur sehr kurz ausgeführt, da der VDR damit zu stark ausgelastet war um Live-Bild oder Ton auszugeben.



    Vielen Dank
    Patrick

  • Ob Du Dich da nicht zu weit es dem Fenster lehnst ...


    Ich habe SoftHDDevice quasi seit Tag eins auf wenigstens einem VDR am laufen und hab das noch nie festgestellt, aber wie vmtl. alle Plugins ist das sicher auch nicht 100% fehlerfrei. Von den genannten Plugins hatte ich noch nie nOpacity installiert. Und bevor es wieder Gemaule gibt, das ist nicht wertend gemeint, es ist halt so ...


    Dann hat Copperhead was interessantes dazu geschrieben: Softhddevice vaapi support


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Kann mir jemand bei der Suche weiterhelfen um dem Speicherhunger meines VDR auf den Grund zu gehen? :)


    Ich beobachte bei mir ähnliche Effekte, wenn Streamdev-server mehrfach benutzt wird. Es gibt keine Abstürze oder sonstige Störungen, aber der Speicherverbrauch steigt über 3 GB. Mein VDR läuft allerdings keine 4 Tage durch. Ich glaube in der Streamdev-server Plugin Einstellungen bezüglich Inaktivität gesehen zu haben. Vielleicht hilft es, dort etwas auszuprobieren.


    Albert

  • Ich muss sagen das ich es noch nicht näher beobachtet habe aber ich denke es wäre mir aufgefallen denn mein Server läuft 24/7 und in der Regel auch so 4 Wochen durch.
    Ich habe auch streamdev und softhddevice und noch zig andere Plugins aber nicht Skin nopacity. Das soll aber nicht bedeuten das ich ihn in Verdacht habe oder so!


    Grüße
    Martin

  • Ich habe auch streamdev und softhddevice und noch zig andere Plugins aber nicht Skin nopacity.


    Jetzt gerade wird nur direkt geschaut, kein Stream aktiv, aber softhddevice, skinnopacity und viele andere Plugins schon.



    Wenn 2-3 Streams geschaut werden, dann geht die Speicherlast auf 3,2 - 3,4 GB hoch. Ausgelagert hat er noch nie und länger als 24 Stunden lief er auch nie.


    Deswegen habe ich es angesprochen.


    Albert

  • Hey danke für die schnellen Antworten.
    Ich werde mal das Plugin für den Skin deaktivieren und auch streamdev-server.


    Dann kann ich die beiden vielleicht ausschließen.
    Gibt es denn noch eine Möglichkeit herauszufinden welches Plugin so Speicherhungrig ist?


    Patrick

  • Moin,


    benutze doch einfach testweise mal nen anderen Skin (z.B. LCARS), um nOpacity als Problemverursacher auszuschließen (oder zu identifizieren ;) ).



    Wenn man sich die Valgrind Meldungen aber genauer anschaut, sind das auch keine Memory Leaks.
    Das ist eher das Gegenteil: "Uninitialised value"


    Was genau meinst du? Die Meldungen zur libasound sind schon Warnungen zu möglichen Speicherverlusten (xxxx bytes in xxx blocks are possibly lost in loss record xxx of xxx)


    Ciao Louis

  • So schlimm finde ich die Verluste im Log nicht. Das muß noch Jahre laufen damit der Speicher alle wird.


    Also lass es mal kurz laufen, die Verluste sind meist die einmaligen, dann lönger, was neu dazukommt sind dann meist die richtigen Verluste.
    Du kannst auch mal den Ton ausschalten (-a none), damit könnte man libasound ausschliessen.


    Dann möglichst einzelne Plugins testen.


    Bei mir läuft


    svdrpservice epgsearch skinenigmang softhddevice remotetimers yaepghd femon osdteletext live epgsync skinnopacity streamdev-client


    nun 36 Tage.


    ps v

    Code
    PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
     2551 ?        Ssl  885:18    190  1374 1811481 422172  5.1 /usr/bin/vdr -u vdr


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Hi,
    jetzt habe ich mal den VDR eine Stunde nur mit dem Plugin softhddevice laufen gelassen und das Problem besteht noch.
    Gerade lasse ich zusätzlich noch den memcheck von valgrind für eine Stunde laufen.
    Mal schauen, ob da etwas brauchbares herauskommt, denn nachdem das den Prozessor zu 100% auslastet verwirft softhddevice erwartungsgemäß etliche frames.


    Ich berichte dann das Ergebnis.

  • Hi,
    ich konnte aus dem Logfile, das memcheck gemacht hat:

    Code
    valgrind --tool=memcheck --undef-value-errors=no --leak-check=full ./vdr -w 60 -c /etc/vdr -v /video --no-kbd --lirc=/dev/lircd -p 2001 -P'softhddevice -x -a hdmi:CARD=NVidia,DEV=1,AES0=0x4  -p hdmi:CARD=NVidia,DEV=1,AES0=0x6 -d :0.0 -v vdpau'>memcheck.log 2>&1


    nichts wirklich kritisches finden.


    Was könnte da nur passieren?


    Gibt es noch eine andere Möglichkeit zu erkunden, was da so viel Speicher beansprucht?


    Schöne Grüße
    Patrick

  • Hi,

    Hast du denn nochmal streamdev ausprobiert?


    Meinst du, ob ohne streamdev auch der Speicherverbrauch mehr wird?


    Bei der obigen Messung habe ich NUR das Plugin softhddevice laufen lassen und der Speicherverbrauch stieg an. Damit gehe ich davon aus, dass irgendwo in der Kombination VDR und softhddevice mit dazugehörigen Bibliotheken der Fehler ist.
    Vielleicht ist es auch kein echter Memory leak, sondern es wird nur irgendwo in einer Datenstruktur immer mehr abgelegt, was unnötig ist.


    Gibt es ein Programm, das den jeweilig verbrauchten Speicher zu den einzelnen Klassen visualisiert?


    Greets
    Patrick

  • Du kannst auch mal den Ton ausschalten (-a none), damit könnte man libasound ausschliessen.


    Schon ohne Audioausgabe/libasound probiert?

  • Hi,


    Schon ohne Audioausgabe/libasound probiert?


    nein, das habe ich noch nicht probiert. das wird dann das nächste sein. (Sorry ich hatte oben fälschlicherweise gedacht, den Ton einfach zu muten ;) )


    Gerade habe ich den VDR und softhddevice mit debug symbolen neu kompiliert, lasse ihn bischen laufen und schaue mir dann mal im debugger die einzelnen Threads an, vielleicht finde ich da was...

  • Auch mit der Option:

    Code
    -Psofthddevice -x -a none -p none -d :0.0 -v vdpau


    wird der speicher weniger.


    Sind das die richtigen Parameter für das?

    Code
    vdr: audio: 'alsa' output module used
    vdr: audio/alsa: playback open 'none' error: Datei oder Verzeichnis nicht gefunden
    vdr: audio/alsa: mixer default - PCM open
    vdr: audio/alsa: PCM mixer found 0 - 255 ratio 255000
    vdr: audio:  44100Hz supports 0 0 0 0 0 0 0 0 channels
    vdr: audio:  48000Hz supports 0 0 0 0 0 0 0 0 channels
    vdr: audio: 192000Hz supports 0 0 0 0 0 0 0 0 channels
    vdr: [softhddev] ready


    Ich habe vom VDR mit gdb ein Core Dump gemacht, der ca. 980MB groß ist.


    Als nächstes werde ich das ganze mal mit Massif von valgrind analysieren.

  • Versuch es mal so:


    Code
    -Psofthddevice -x -a "" -d :0 -v vdpau


    setup.conf

    Code
    softhddevice.AudioPassthrough = 0
  • djdagobert, wenn Du ein "Freiberufl. Programmierer" bist, dann würde man von Dir erwarten, dass Du mehr methodisch an die Sache herangehst und nicht alles wild durcheinander "testest". ;)


    Albert

  • djdagobert, wenn Du ein "Freiberufl. Programmierer" bist, dann würde man von Dir erwarten, dass Du mehr methodisch an die Sache herangehst und nicht alles wild durcheinander "testest". ;)


    :) ist zwar OT, aber dennoch äußere ich mich dazu: c++ ist nicht meine Stärke und es mag hier vielleicht "wild durcheinander" wirken, aber ich denke, dass ich hier schon methodisch die Sache anpacke ;)
    Mit Wissen zu den entsprechenden Werkzeugen würde das auch sicherlich schneller gehen.
    Aber ja "Freib. Prog." klingt etwas überheblich hier in meinem Profil und ich werde es mal ändern :)


    Das große Problem hier bei mir ist, dass das ein "Produktivsystem" :) ist bei dem ich nicht alles und dauernd testen kann, sondern den passenden Zeitpunkt für die Tests finden muss.


    Ein Versuch mit -a "" und ausgeschaltetem Passthrough ist am laufen.


    Greets
    Patrick :)

  • Mit -a none erfolgt nur keine Ausgabe, aber Ausgabemodul wird noch initialisiert.
    Mit -a "" wird überhaupt kein Audio Module initialisiert.


    Sorry, da habe ich nicht aufgepasst. (Aber es gibt ja welche die aufpassen).


    Zitat


    wird der speicher weniger.


    Also Memoryleak gefunden? Oder nur weniger Speicher benutzt.
    Oder Schreibfehler.


    Du schaltest aber X11 nicht auf Konsole um? X11 braucht auch sehr viel Speicher, besonders wenn man die virtuellen Konsolen umschaltet.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

Jetzt mitmachen!

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