Ankündigung

Einklappen
Keine Ankündigung bisher.

Scheduler stirbt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Scheduler stirbt

    Hallo zusammen,

    nach einiger Zeit (> 1 Tag) scheint mein Logik Scheduler zu sterben, d.h. ab einem bestimmten Zeitpunkt wird keine zeitgesteuerte Logik mehr getriggert.

    Hier ein Ausschnitt aus meinem Logfile: die Zeit wird aller 5min auf den KNX Bus gesendet (gefiltert auf "Scheduler"):
    Code:
    Line 507: 2014-07-24 03:05:05,952 DEBUG    Scheduler    env_stat next time: 2014-07-24 03:10:05+02:00 -- scheduler.py:_next_time:289
    Line 507: 2014-07-24 03:05:05,952 DEBUG    Scheduler    env_stat next time: 2014-07-24 03:10:05+02:00 -- scheduler.py:_next_time:289
    Line 520: 2014-07-24 03:10:05,516 DEBUG    Scheduler    env_stat next time: 2014-07-24 03:15:05+02:00 -- scheduler.py:_next_time:289
    Line 520: 2014-07-24 03:10:05,516 DEBUG    Scheduler    env_stat next time: 2014-07-24 03:15:05+02:00 -- scheduler.py:_next_time:289
    Line 532: 2014-07-24 03:14:56,515 DEBUG    Scheduler    KNX time next time: 2014-07-24 03:24:56+02:00 -- scheduler.py:_next_time:289
    Line 532: 2014-07-24 03:14:56,515 DEBUG    Scheduler    KNX time next time: 2014-07-24 03:24:56+02:00 -- scheduler.py:_next_time:289
    Line 536: 2014-07-24 03:15:05,580 DEBUG    Scheduler    env_stat next time: 2014-07-24 03:20:05+02:00 -- scheduler.py:_next_time:289
    Line 536: 2014-07-24 03:15:05,580 DEBUG    Scheduler    env_stat next time: 2014-07-24 03:20:05+02:00 -- scheduler.py:_next_time:289
    Line 549: 2014-07-24 03:20:05,628 DEBUG    Scheduler    env_stat next time: 2014-07-24 03:25:05+02:00 -- scheduler.py:_next_time:289
    Line 549: 2014-07-24 03:20:05,628 DEBUG    Scheduler    env_stat next time: 2014-07-24 03:25:05+02:00 -- scheduler.py:_next_time:289
    Nach der letzten Zeit 03:20 Uhr, erscheint kein weiterer Scheduler-Lauf mehr im Logfile. Damit werden neben der Zeit auch die anderen Events nicht getriggert, wie Rollladen hoch/runter.

    Das Logfile zeigt dazu keine Fehlermeldung, hier nochmal der komplette Ausschnitt um 3:20 Uhr, man sieht dass 3:25 Uhr kein Scheduler mehr läuft:

    2014-07-24 03:20:05,628 DEBUG Scheduler env_stat next time: 2014-07-24 03:25:05+02:00 -- scheduler.py:_next_time:289
    2014-07-24 03:20:54,034 DEBUG Main knx: 2.2.1 set 7/0/3 to 24.68 -- __init__.py: parse_telegram:190
    2014-07-24 03:20:54,036 DEBUG Main Item Arbeitszimmer.temperatur = 24.68 via KNX 2.2.1 7/0/3 -- item.py:__update:363
    2014-07-24 03:21:25,837 DEBUG Main knx: 2.1.8 set 2/4/0 to True -- __init__.py: parse_telegram:190
    2014-07-24 03:22:55,516 DEBUG Main knx: 2.3.2 set 7/1/3 to 25.56 -- __init__.py: parse_telegram:190
    2014-07-24 03:22:55,518 DEBUG Main Item Wohnzimmer.temperatur = 25.56 via KNX 2.3.2 7/1/3 -- item.py:__update:363
    2014-07-24 03:23:13,587 DEBUG Main knx: 1.2.1 set 2/4/1 to True -- __init__.py: parse_telegram:190
    2014-07-24 03:24:49,806 DEBUG Main knx: 3.3.1 set 7/3/3 to 25.26 -- __init__.py: parse_telegram:190
    2014-07-24 03:24:49,808 DEBUG Main Item Bad.temperatur = 25.26 via KNX 3.3.1 7/3/3 -- item.py:__update:363
    2014-07-24 03:24:59,954 DEBUG Main knx: 2.2.1 set 7/0/0 to 00 -- __init__.py: parse_telegram:181
    2014-07-24 03:25:10,463 DEBUG Main knx: 2.3.2 set 7/1/6 to 00 -- __init__.py: parse_telegram:181
    2014-07-24 03:25:49,087 DEBUG Main knx: 2.2.1 set 7/0/3 to 24.68 -- __init__.py: parse_telegram:190
    2014-07-24 03:26:25,634 DEBUG Main knx: 2.1.8 set 2/4/0 to True -- __init__.py: parse_telegram:190
    Hinweis: die Logiken, die über Gruppenadressen (watch_item) getriggert werden, funktionieren weiterhin.

    Grüße,
    Michael
    Viele Grüße,
    Michael

    #2
    Hier noch einige Umgebungsinformationen:

    Folgende Python + Smarthome Version + Plugins sind im Einsatz:

    Code:
    2014-07-24 22:30:12,248 INFO     Main         Start SmartHome.py 1.0 -- smarthome3.py:__init__:231
    2014-07-24 22:30:12,251 DEBUG    Main         Python 3.2.5 -- smarthome3.py:__init__:232
    2014-07-24 22:30:12,253 INFO     Main         Init Scheduler -- scheduler.py:__init__:86
    2014-07-24 22:30:12,256 INFO     Main         Init Plugins -- smarthome3.py:start:274
    2014-07-24 22:30:12,262 DEBUG    Scheduler    creating 5 workers -- scheduler.py:run:93
    2014-07-24 22:30:12,265 DEBUG    Main         Plugin: notify -- plugin.py:__init__:43
    2014-07-24 22:30:12,341 DEBUG    Main         Plugin: cli -- plugin.py:__init__:43
    2014-07-24 22:30:12,401 DEBUG    Main         Plugin: nw -- plugin.py:__init__:43
    2014-07-24 22:30:12,522 DEBUG    Main         Adding listener on: udp:0.0.0.0:2727 -- __init__.py:add_listener:154
    2014-07-24 22:30:12,630 DEBUG    Main         UDPDispatcher: binding to 0.0.0.0:2727 (UDP) -- connection.py:connect:160
    2014-07-24 22:30:12,631 DEBUG    Main         Plugin: knx -- plugin.py:__init__:43
    2014-07-24 22:30:12,655 DEBUG    Main         Plugin: visu -- plugin.py:__init__:43
    2014-07-24 22:30:12,716 DEBUG    Main         Plugin: sql -- plugin.py:__init__:43
    2014-07-24 22:30:12,792 DEBUG    Main         SQLite 3.6.22 -- __init__.py:__init__:62
    2014-07-24 22:30:14,130 DEBUG    Main         SQLite: database integrity ok -- __init__.py:__init__:78
    2014-07-24 22:30:14,152 DEBUG    Main         SQLite pack next time: 2014-07-25 03:02:00+02:00 -- scheduler.py:_next_time:289
    2014-07-24 22:30:14,158 DEBUG    Main         Plugin: ical -- plugin.py:__init__:43
    2014-07-24 22:30:14,201 INFO     Main         Init Items -- smarthome3.py:start:280
    Ansonsten ist Ubuntu-Linux im Einsatz:
    Linux hoelderlin 2.6.32-55-generic #117-Ubuntu SMP Tue Dec 3 17:34:52 UTC 2013 i686 GNU/Linux
    Viele Grüße,
    Michael

    Kommentar


      #3
      Hallo Michael,

      leider kann ich die verwendete Version nicht erkennen.
      smarthome3.py ist nicht Standard. Weiterhin fehlt mir das komplette Logfile um den Kontext zu sehen.

      Kannst Du bitte einmal das ganze mit dem aktuellen Stand (https://github.com/mknx/smarthome/tree/master) verifizieren und das komplette Log posten?

      Danke und bis bald

      Marcus

      Kommentar


        #4
        Hallo Marcus,

        ok, es handelt sich um die Standard 1.0 Installation. Ich hatte nur das Aufrufscript umbenannt, um es bei der Migration von der Vorgängerversion zu unterscheiden. Den Python-Aufruf in der Headerzeile hatte ich auch angepasst, da ich auch parallel zur Python 2 Installation das Python 3 installiert habe.
        Ich poste das nochmal genau heute abend, zusammen mit dem Logfile.
        Viele Grüße,
        Michael

        Kommentar


          #5
          Kann leider das Logfile mit der Problemstelle nicht posten, da ich es beim letzten Neustart überschrieben hatte. Ich warte jetzt bis der Scheduler-Ausfall wieder auftritt.

          Hier noch die Infos zu der angepassten smarthome.py:
          Ich habe lediglich das File der 1.0-Version umbenannt und die Python Version in der Kopfzeile angepasst:
          Code:
          mrhouse@hoelderlin:/usr/local/smarthome3$ head bin/smarthome3.py 
          #!/usr/bin/env python3.2
          Die exakte Python-Version ist:
          Code:
          mrhouse@hoelderlin:/usr/local/smarthome3$ python3.2
          Python 3.2.5 (default, May  3 2014, 21:21:34) 
          [GCC 4.4.3] on linux2
          Type "help", "copyright", "credits" or "license" for more information.
          >>>
          Grüße,
          Michael
          Viele Grüße,
          Michael

          Kommentar


            #6
            Hallo Marcus,

            so jetzt hat der Scheduler Tod wieder zugeschlagen. Um 8:17 Uhr ist er das letzte Mal gelaufen. Der geplante Lauf um 8:22 hat dann nicht mehr stattgefunden.

            Hier das komplette Logfile:

            smarthome.zip

            Kannst Du mal draufschauen?
            (ich sehe nichts auffälliges)
            Viele Grüße,
            Michael

            Kommentar


              #7
              Hallo Michael,

              in Deiner Version ist noch ein schwerwiegender Bug drin, der schon lange gefixt ist.
              Bitte die aktuelle Version, siehe Post #3, einspielen.

              Wenn Du dann immer noch Probleme hast, melde Dich noch einmal.

              Bis bald

              Marcus

              Kommentar


                #8
                Hallo Marcus,

                gut zu wissen, dass es wahrscheinlich eine Lösung gibt. Du verweist auf die Masterseite.
                Kann ich mit "Download ZIP" im rechten Menu den richtigen Stand runterladen?
                Oder wie heisst der git-Befehl dazu?
                (sorry habe git noch nie verwendet)
                Viele Grüße,
                Michael

                Kommentar


                  #9
                  Hallo Michael,

                  ja, genau. Zip links.

                  Ich bin mir nicht sicher ob es die Lösung ist, aber das war ein fieser Bug. Dem traue ich fast alles zu ;-)

                  Bis bald

                  Marcus

                  Kommentar


                    #10
                    So habe jetzt auf den aktuellen Master aktualisiert. Jetzt warte ich ab, ob der Scheduler wieder verschwindet.
                    Viele Grüße,
                    Michael

                    Kommentar


                      #11
                      Hallo Marcus,

                      leider ist das Problem mit dem verschwundenen Scheduler wieder aufgetreten, obwohl ich auf den Master aktualisiert hatte.

                      Anbei das komplette Logfile. Der letzte Aufruf des Schedulers war 3:19 Uhr, danach ist Schluss.

                      smarthome.zip

                      Hast Du noch eine Idee?
                      Viele Grüße,
                      Michael

                      Kommentar


                        #12
                        Hallo Michael,

                        kannst Du bitte noch das Log vom 30.07. posten? In dem angehängten Log fehlt der Start-Abschnitt.

                        Ich habe mir gerade noch mal den Code von dem Scheduler angesehen. Dort gibt es eine Stelle die man verbessern kann. Ich habe die Änderung gerade in develop integriert. Du kannst bei Dir in der lib/scheduler.py die Zeile 125 (self._lock.acquire()) mit
                        Code:
                                      if not self._lock.acquire(timeout=1):
                                          logger.critical("Scheduler: Deadlock!")
                                          continue
                        ersetzen.

                        Ich wäre aber überrascht wenn das bei Dir auftritt.

                        Bis bald

                        Marcus

                        Kommentar


                          #13
                          Hallo Marcus,

                          den Code habe ich in scheduler.py eingefügt, vielleicht hilfts.

                          Hier noch die Logs von den beiden Tagen davor:

                          smarthome.log.2014-07-29.zip

                          smarthome.log.2014-07-30.zip
                          Viele Grüße,
                          Michael

                          Kommentar


                            #14
                            Hallo Michael,

                            also in den Logfiles ist nichts spannendes zu erkennen. Alles normal.
                            Hast Du mal den Patch probiert?

                            Es gibt wirklich viele laufende Instanzen, ein so gravierendes grundsätzliches Problem wäre vermutlich eher aufgefallen. Evlt. liegt es auch an der HW/OS.
                            Hast Du einen Pi zur Hand, tritt da das Problem auch auf?

                            Bis bald

                            Marcus

                            Kommentar


                              #15
                              Hallo Marcus,

                              ich war eine Woche unterwegs, konnte deshalb nicht antworten.
                              Den Patch hatte ich eingebaut, allerdings ist in meiner Abwesenheit
                              Smarthome bzw. Python irgendwie abgestürzt. Das Ubuntu lief weiter, aber smarthome hatte seit 2.8. keine Logfileeinträge mehr produziert. Habe leider gleich einen Reboot durchgeführt, statt erstmal genauer den Sachverhalt zu analysieren.
                              Allerdings war auch meine VNC Session nicht mehr verfügbar, es ist also noch mehr "abgestürzt",.
                              Ich überlege mir jetzt mein EPIA MiniITX Board, was auch nicht mehr auf die neueste Ubuntu-Version upgradbar ist, durch einen Rasperry zu ersetzen.

                              Viele Grüße,
                              Michael
                              Viele Grüße,
                              Michael

                              Kommentar

                              Lädt...
                              X