[gelöst] segfault von epghttpd beim Speichern von Timern

  • Hallo horchi ,

    sorry für die späte Antwort, ich hatte es gelesen und wieder verdrängt :sleeping:
    Vorab, das mit dem Kopieren des DIFFs funktioniert nicht, es sind zu viele unnütze Zeilenumbrüche enthalten.

    Keine Ahnung ob das vielleicht von der Forumsoftware verursacht wird. Vielleicht können wir es mal mit einer Textdatei versuchen.

    Leider ist der Patch noch nicht die Lösung.

    Es wird alles gebaut, epgd und epghttpd starten auch, es ist aber nicht möglich per Web einen Timer zu programmieren.

    Ich habe versucht aus dem "Magazin" einen Timer zu erstellen:

    Log: journalctl -f --priority=debug -u epghttpd

    Quote

    Aug 21 17:10:27 test-epgd systemd[1]: epghttpd.service: Main process exited, code=dumped, status=11/SEGV

    Aug 21 17:10:27 test-epgd systemd[1]: epghttpd.service: Failed with result 'core-dump'.

    Aug 21 17:10:27 test-epgd systemd[1]: epghttpd.service: Scheduled restart job, restart counter is at 1.

    Aug 21 17:10:27 test-epgd systemd[1]: Starting epghttpd.service - epghttpd provides a webinterface for epg data...


    Dump:

    P.S.:
    Die Verwendung der "Code" oder "Inline-Code" Funktion hier im Forum fügt die Leerzeilen hinzu, mit "Zitat" passiert dies nicht.

    VDR User: 2127
    YaVDR-noble, Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: 2x Digital Devices Cine S2 V6, VDR 2.6.9, Kodi 21 (flatpak)
    YaVDR-noble (headless, 24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: Sundtek SkyTV Ultimate Dual, Miscellaneous: epgd, pihole, VDR 2.6.9

    YaVDR-noble (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate Dual, VDR 2.6.9

  • Noch ein Gedanke zu diesem Thema.
    Warum tritt der Fehler nur auf, wenn ich einen Timer manuell anlege oder ändere?
    Suchtimer sind nicht betroffen und können den Namen mit Hilfe der recording.py ermitteln.
    Wo ist hier der Unterschied. :/

    VDR User: 2127
    YaVDR-noble, Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: 2x Digital Devices Cine S2 V6, VDR 2.6.9, Kodi 21 (flatpak)
    YaVDR-noble (headless, 24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: Sundtek SkyTV Ultimate Dual, Miscellaneous: epgd, pihole, VDR 2.6.9

    YaVDR-noble (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate Dual, VDR 2.6.9

  • Noch ein Gedanke zu diesem Thema.
    Warum tritt der Fehler nur auf, wenn ich einen Timer manuell anlege oder ändere?
    Suchtimer sind nicht betroffen und können den Namen mit Hilfe der recording.py ermitteln.
    Wo ist hier der Unterschied. :/

    also auf deine letzte Frage hätte ich ne Antwort.

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5


  • Sorry, kann ich nicht nachvollziehen :( .
    Die Einstellungen sind bei mir identisch.
    Wenn ich aus dem Magazin versuche einen Timer mit AUTO/AUTO manuell anzulegen gibt es einen Crash.
    Macht es ein Suchtimer mit AUTO/AUTO nicht.
    Ich sehe den Unterschied nicht.

    VDR User: 2127
    YaVDR-noble, Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: 2x Digital Devices Cine S2 V6, VDR 2.6.9, Kodi 21 (flatpak)
    YaVDR-noble (headless, 24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: Sundtek SkyTV Ultimate Dual, Miscellaneous: epgd, pihole, VDR 2.6.9

    YaVDR-noble (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate Dual, VDR 2.6.9

  • Ich hoffe dieser Workaround funktioniert für alle die schon Python 3.12 nutzen.
    So oder abgeleitet, hier am Beispiel yavdr (Ubuntu 24.04, noble)

    Anmelden per SSH!

    --> ALS NORMALER USER, im entsprechenden Home-Verzeichnis

    # Siehe auch: https://github.com/pyenv/pyenv

    curl https://pyenv.run | bash

    --> Hinzufügen zur Datei ~/.bashrc

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

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

    --> pyenv

    Code
    pyenv update
    pyenv install 3.11.9
    pyenv global 3.11.9

    --> Quellen laden

    Code
    sudo apt install build-essential fakeroot devscripts
    sudo apt-get build-dep vdr-epg-daemon
    mkdir -p ~/src/epgd
    cd  ~/src/epgd
    apt-get source vdr-epg-daemon
    cd vdr-epg-daemon*

    --> patchen

    -> Make.conf

    PYTHON ?= python3 --> PYTHON ?= python3.11

    -> debian/rules --> [TAB] nach dem Einfügen durch Taste "Tab" ersetzen !

    Code
    override_dh_shlibdeps:
    [TAB]dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

    --> Pakete bauen

    dpkg-buildpackage -b -uc -us

    --> Pakete installieren

    Code
    cd ..
    sudo dpkg -i *.deb

    --> Reboot

    VDR User: 2127
    YaVDR-noble, Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: 2x Digital Devices Cine S2 V6, VDR 2.6.9, Kodi 21 (flatpak)
    YaVDR-noble (headless, 24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: Sundtek SkyTV Ultimate Dual, Miscellaneous: epgd, pihole, VDR 2.6.9

    YaVDR-noble (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate Dual, VDR 2.6.9

  • was lange währt ....

    Nachdem ich meinen Server auf Ubuntu 24.04 aktualisiert habe ich ich nun auch in den 'Genuss' von libpython 3.12 gekommen.
    So konnte ich es reproduzieren und nach langer Suche beheben. Der Ansatz meines letzten Versuchs via PyGILState_Ensure() / PyGILState_Release war richtig.
    Gefehlt hatte nur noch das Freigeben des Locks welche die Lib automatisch beim Initialisieren für dem Main-Thread anlegt - genau das ist Bescheiden bis nicht dokumentiert (sofern ich nicht ganz blind bin).

    Lange Rede ... mit der neusten epgs/epghttpd Version (1.3.25) im Git sollte das Problem nicht mehr auftreten.

    LG Jörg

    meine VDRs

    Server - Ubuntu bionic Server, Intel Xeon(R) CPU E3-1245 16GB Ram, DVB-S2/MaxS8
    Wohnzimmer VDR - yaVDR 0.6 mit softhddevice, Athlon II X2 240e, 4GB Ram, 64GB SSD, INTEL IRC, 2TB NFS und einer Harmony 700

    Entwicklungen:
    ipod - graphtft - pin - seduatmo - epgd - epg2vdr - squeezebox - osd2web

  • theonlychriss January 19, 2025 at 12:37 PM

    Changed the title of the thread from “segfault von epghttpd beim Speichern von Timern” to “[gelöst] segfault von epghttpd beim Speichern von Timern”.
  • Vielen, vielen Dank Jörg!

    Funktioniert bei mir mit der neuen Version nun auch.

    Viele Grüße,
    Chriss

    Signatur

    Stand: 17 Nov. 2024

    Server: VDR 2.6.6, Kubuntu 24.04, 6.8.0-48-generic Kernel

    HW: Intel i5-6500, 16GB RAM, DD Cine S2 V6.5, MSI Z170-A Pro, SeaSonic S12II 330W, Samsung 860 QVO 1TB + WD 1,5TB Caviar Green, iMon-LCD, Plugins: softhddevice, epg2vdr, lcdproc, markad, skindesigner, statusleds, streamdev-server, svdrpservice, vnsiserver
    Dienste: Samba, DNS, Mail, LAMP, VDR-Server für
    Client: RPi 3b+, VDR 2.4.0, OSMC

  • Noch ein Gedanke zu diesem Thema.
    Warum tritt der Fehler nur auf, wenn ich einen Timer manuell anlege oder ändere?
    Suchtimer sind nicht betroffen und können den Namen mit Hilfe der recording.py ermitteln.
    Wo ist hier der Unterschied. :/

    weil er nur bei manueller Anlage via WEBIF vom epghttpd angelegt wird und nur dort in einem Thread.

    meine VDRs

    Server - Ubuntu bionic Server, Intel Xeon(R) CPU E3-1245 16GB Ram, DVB-S2/MaxS8
    Wohnzimmer VDR - yaVDR 0.6 mit softhddevice, Athlon II X2 240e, 4GB Ram, 64GB SSD, INTEL IRC, 2TB NFS und einer Harmony 700

    Entwicklungen:
    ipod - graphtft - pin - seduatmo - epgd - epg2vdr - squeezebox - osd2web

  • horchi,

    super, danke, auch bei mir wieder alles OK:thumbup:

    VDR User: 2127
    YaVDR-noble, Case: HFX Classic, Mainboard: ASUS H97M-E, CPU: Intel Celeron CPU G1840T, GPU: GeForce GT 1030, DVB-S: 2x Digital Devices Cine S2 V6, VDR 2.6.9, Kodi 21 (flatpak)
    YaVDR-noble (headless, 24/7), Case: Akasa, Mainboard: NUC D34010WYB, DVB-S: Sundtek SkyTV Ultimate Dual, Miscellaneous: epgd, pihole, VDR 2.6.9

    YaVDR-noble (headless), System: HP 260 G2 DM, DVB-S: Sundtek SkyTV Ultimate Dual, VDR 2.6.9

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!