eFilewatcher: Fehler beim Beenden von Enigma2

  • Ich mach das im Moment so:

    Code
    file = "/tmp"
    self.filewatch2 = eFileWatch(file, False, eFileEvent.CLOSE_WRITE | eFileEvent.MODIFY)
    self.filewatch2_conn = self.filewatch2.fileChanged.connect(self.fileEvent2)
    self.filewatch2.startWatching()

    Ändere ich dann ein File in /tmp kommt kein Event :/

    Hab ich da einen Fehler im Code ?

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Ändert leider nichts.

    Hatte das MODIFY eigentlich nur zusätzlich drin, weil ich dachte, dass das alleinige CLOSE_WRITE nicht reicht.

    Egal was ich mache, es kommt kein Event.


    Hab mal auf CREATE gesetzt:

    Code
    file = "/tmp"
    self.filewatch2 = eFileWatch(file, False, eFileEvent.CREATE)
    self.filewatch2_conn = self.filewatch2.fileChanged.connect(self.fileEvent2)
    self.filewatch2.startWatching()

    Da kommt das im Log:

    Code
    [eFileWatch] Now watching /tmp

    Und dann ein File nach /tmp kopiert.

    Da kommt das dann im Log, aber ein Event kommt in meinem Plugin nicht an:

    Code
    [eFileWatch] Now watching /tmp
    [eFileMonitor] 1 events queued
    [eFileMonitor] File {/tmp/plugin.py} has been created

    Starte ich mit gleichem Code einen Watcher auf einen Folder oder File, wo es offensichtlich noch keinen aktiven Watch gibt, dann erhalte ich auch Events.


    Habt ihr das Test-Plugin oben mal getestet ?

    Geht bei euch der 2. Watcher, wenn zuvor der 1. Watcher bereits gestartet wurde (oder andersrum) ?

    Kommen dann für beide Watcher auch Events zurück (Rückmeldung im Status-Feld) ?

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Reichi

    Das parallele Befeuern mehrerer Watcher scheint jetzt zu funktionieren ;)

    Aber irgendwas passt da noch nicht nach dem letzten e2-Update :/


    Wenn man ein Plugin beendet, wo ein watcher aktiv war, wird im log das "not watching …" ausgegeben.

    Ändert sich danach dann aber die beobachtete Datei, dann gibt es einen GS.

    Glaube auch, ich hab in einem anderen Forum schon so einen GS gesehen.


    Irgendwie scheint der Watcher nicht wirklich gelöscht zu werden.

    Hab es auch schon beim Beenden des Plugins mit watcher = None und watcher_conn = None probiert, ändert aber nichts.


    Das kannst du mit dem schon bekannten Test-Plugin simulieren.

    1. Plugin öffnen

    2. mit gelb den watcher1 starten

    3. zum Test mit grün das File ändern

    4. Plugin beenden (im Log erscheint [eFileWatch] Not watching ...)

    5. Plugin erneut öffnen

    6. mit grün das File ändern

    => GS


    Wenn man das mit Foldern + Subfolder=True macht, kommt etwas mehr im GS:

    (da sind auch komische Zeichen am Beginn des Pfadnamens vom eFileMonitor - da müsste eigentlich /var/lib/… stehen)

    Files

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • starte mal enigma2 in telnet und stoppe es mit CTRL+C:



    Das war mit Metrix HD, jetzt mit Standard skin:


    Passiert aber nicht jedes mal ...

  • Ja, passiert hier auch ;)

    (also beim Beenden von enigma2 mit CTRL+C im Telnet, nachdem es dort gestartet wurde)

    Code
    ...
    [eFileMonitor] File Watcher stopped
    Segmentation fault
    0x12911c(sp=0xbeb85f38) <eFileWatch::~eFileWatch()>
    0x128ed8(sp=0xbeb85f48) <eFileMonitor::~eFileMonitor()+248>
    0x1290f8(sp=0xbeb85f90) <eFileMonitor::~eFileMonitor()+16>
    -------
    ...
    Segmentation fault (core dumped)

    Aber das machen bestimmt die wenigsten ;)

    Viel schlimmer ist die Variante oben, wo es dann im normalen Betrieb passiert. :/

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Also irgendwie hab ich erst seit dem letzten Update die Probleme, die dre zu Beginn geschildert hat :/


    Gestern hing e2 mal beim GUI-Neustart.
    Heute Nacht sollte die Box auch per Elektro-Plugin in den Standby (DeepStandby) fahren.
    Heute früh, leuchtete das Display der Box noch schwach, ohne etwas anzuzeigen.


    Im telnet-Live-Log war zu diesem Zeitpunkt das hier als letztes zu finden:

    [eFileMonitor] File Watcher stopped

    Ich glaub, ich hatte dann einen kill-Befehl für e2 abgesetzt, worauf die Box sich dann sauber ausschaltete.

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

    Edited once, last by Sven H ().

  • Es gibt sogar bei jeden GUI-Neustart einen Fehler, der aber normal nicht auffällt ;)

    Sieht man nur im e2log.


    Hier mal verschiedene Varianten:

    Code
    - (2) File Monitor
    [eFileWatch] Not watching (null) anymore
    [eFileMonitor] File Watcher stopped
    Segmentation fault
    0xb3f40d5c(sp=0xbee0df7c) <pthread_mutex_lock+12>
    Code
    - (2) File Monitor
    [eFileMonitor] File Watcher stopped
    c++ exception (basic_string::_M_construct null not valid)
    0x3b33220(sp=0xbef6fed0)


    Code
    - (2) File Monitor
    [eFileMonitor] File Watcher stopped
    Segmentation fault
    0x12911c(sp=0xbea90fa8) <eFileWatch::~eFileWatch()>
    0x128ed8(sp=0xbea90fb8) <eFileMonitor::~eFileMonitor()+248>
    0x1290f8(sp=0xbea91000) <eFileMonitor::~eFileMonitor()+16>


    Code
    - (2) File Monitor
    [eFileMonitor] File Watcher stopped
    enigma2: pthread_mutex_lock.c:352: __pthread_mutex_lock_full: Assertion `INTERNAL_SYSCALL_ERRNO (e, __err) != ESRCH || !robust' failed.

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Das ist alles schon längst bekannt. Weil das ist genau der Fehler, den ich gemeldet hatte. Und ja, Reichi weiss, dass es da noch Probleme gibt.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Ok ;)

    Hatte er nicht gesagt, dass dein Fehler mit dem letzten Update behoben sein sollte ?


    Komischerweise hab ich die Probleme, die du vorher schon beschrieben hattest, erst jetzt nach dem letzten Update 8o

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Ich vermute mittlerweile ja eher, dass dre die Version, die uns jetzt als Update "verkauft" wurde, schon vorher hatte 8o

    Das eigentliche Update, was Reichi meint, kommt dann wohl erst noch 8)

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Nein, der Fehler ist seit eFileWatch in python zugänglich gemacht wurde so drin und das ist schon eine Weile her. Ich hatte den Bug auch schon vor langer Zeit gemeldet. Sobald du zwei eFileWatch hattest, hats spätestens beim zweiten restart von e2 geknallt. Jetzt reicht einer. Aber auch das wird sich noch beheben lassen.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Ja, das wird Reichi bestimmt noch hinbekommen :thumbup:


    Merkwürdig ist eben nur, dass ich deine damaligen Probleme mit e2-Neustart erst jetzt nach dem letzten Update habe.
    Bei dir ging damals ja auch ein paralleler Watcher auf /tmp, was bei mir vor dem letzten Update definitiv nicht ging, dafür aber jetzt ;)


    Da blieb ja nur die Schlussfolgerung übrig, dass du eine andere e2-Version hattest als ich 8o

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Nö, ich habs einfach immer schon beim sessionstart angelegt und du erst im Plugin. Ich denke, das macht einen Unterschied.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource