Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Zombie states im iobroker

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Zombie states im iobroker

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO last edited by

      Systemdata Bitte Ausfüllen
      Hardwaresystem: NUC
      Arbeitsspeicher: 8GB
      Festplattenart: SSD
      Betriebssystem: Debian
      Node-Version: 10.21.0
      Nodejs-Version: 10.21.0
      NPM-Version: 6.14.11
      Installationsart: kA
      Image genutzt: kA
      Ort/Name der Imagedatei: na

      @Homoran @apollon77 @Bluefox

      Ich habe das schon vor einer Weile festgestellt, aber heute konnte ich das im Rahmen einer Adapter/Widgets-Entwicklung verifizieren.

      Folgendes Szenario:
      Der Adapter verwaltet die Anlage von diversen Datenpunkten auf Basis einer Eingabe im Admin-Interface des Adapters
      Dort können Datenpunkte auch wieder gelöscht werden.

      In Widgets, muss ein bestimmter Datenpunkt (config) ausgewählt werden.
      Informationen daraus werden vom widget gelesen, aber auch geschrieben (mit vis.setvalue).

      In der Adapter-Konfig habe ich eine Reihe von Objekten löschen lassen.
      In der Objekt-Ansicht des iobrokers waren diese auch nicht mehr sichtbar, bis hier alles ok

      Ich hatte vergessen, im widget den Datenpunkt zu entfernen und habe im widget etwas konfiguriert, so das das widget den Datenpunkt config wieder beschreibt.
      Wie gesagt, das dazugehörige Objekt existiert nicht mehr.
      Als ich das widget aktualisierte, habe ich festgestellt, das die gespeicherten Daten doch noch da waren.
      In der Objekt-Ansicht von iobroker war dieser state aber nicht sichtbar.

      Wenn ich aber unter redis mir die keys und die dazu gehörige value ausgeben lasse, sehe ich die Konfigurationsdaten

      Ein Normalbenutzer sieht diese states und die Daten nie wieder und kann sie auch nicht löschen.

      Sobald ich die nächste Version des adapters tvprogram draußen habe, kann das auch nachvollzogen werden.

      apollon77 O 2 Replies Last reply Reply Quote 1
      • apollon77
        apollon77 @OliverIO last edited by

        @oliverio Das ist am Ende ein Teil des Grunkonzepts, was wir gerade "langsam" beheben. Objekte und States existieren erst einmal parallel. In Zukunft wird es ein "warn" log geben sobald jemand einen State setzt der kein Objekt hat, und weiter später wird der State nicht geschrieben werden. Dann ist das Problem weg. Aktuell kann durch bestimmte Szenarien aber sowas passieren. Generell müssen Adapter-Devs das beachten und vermeiden.

        Wenn sich solche "Zombie States" in grenzen halten tun SIe nicht so mega weh und nehmen nur ein paar Byte Platz weg

        OliverIO 1 Reply Last reply Reply Quote 0
        • O
          oFbEQnpoLKKl6mbY5e13 @OliverIO last edited by

          @oliverio
          Danke für deine Frage. Ich hatte leider keine Antwort auf dieselbe Frage erhalten.

          1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @apollon77 last edited by

            @apollon77
            Danke für die Rückmeldung. Dann weiß ich Bescheid.
            Dann muss ich leider im widget immer vorher prüfen, ob es das Objekt gibt
            und falls nicht dann nicht schreiben.

            apollon77 1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 @OliverIO last edited by

              @oliverio Mach mal ein Feature Request ticket im web/socket.io Adapter ... in meinen Augen gehört das wenn dort hin

              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @apollon77 last edited by

                @apollon77 said in Zombie states im iobroker:

                web/socket.io Adapter

                eigentlich gehört das mE auf euren DB-Layer, welcher prüft, das states nur geschrieben werden, wenn es ein Objekt dazu gibt oder notfalls ein dummy objekt noch anlegt oder eine Exception/Rückmeldung gibt, je nachdem wie fail safe man das haben möchte.

                apollon77 1 Reply Last reply Reply Quote 0
                • apollon77
                  apollon77 @OliverIO last edited by

                  @oliverio Siehe mein text oben: Ja mittelfristig kommt es dort auch hin, die Vorstufe ist in js-controller 3.2 der jetzt warnt wenn States ohne Objekte geschrieben werden. Das müssen jetzt erstmal alle Adapter fixen ... Daher ist das andere die kurzfristig sinnvolle Lösung

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  755
                  Online

                  31.9k
                  Users

                  80.1k
                  Topics

                  1.3m
                  Posts

                  vis states
                  3
                  7
                  262
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo