Ankündigung

Einklappen
Keine Ankündigung bisher.

CV Konfiguration kann nicht gespeichert werden

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

    CV Konfiguration kann nicht gespeichert werden

    Hallo zusammen,

    heute habe ich beim Speichern meiner Konfiguration ein merkwürdiges Verhalten des integrierten PHP-Editors der CV 0.9.2 festgestellt. Bis zu einem gewissen Umfang funktioniert es reibungslos.

    Füge ich jedoch noch etwas hinzu, dann erscheint folgende Meldung:
    cveditor_fehlermeldung.PNG

    Unter etwas meine ich, dass es ein neues Element oder auch ein Attribut innerhalb es Elements sein kann.

    Die Fehlermeldung erscheint sowohl bei "save" als auch bei "preview". Eine Editierung mit einem externen XML-Editor funktiontiert, auch meckert dieser nicht über eine fehlerhafte XML-Syntax.
    Als Backend wird OH2 (2.0.0_b5) verwendet mit aktiviertem PHP support für die CV. Unter OH 2.0.0_b4 konnte ich Fehlermeldung ebenfalls schon beobachten.

    Mit cgi-bin als Backend werde ich es noch testen.

    Kann es sein, dass nur eine gewisse Datenmenge so gespeichert werden kann?

    Gruß

    Alex

    #2
    Das Backend ist hier eigentlich egal, da sollte es eigentlich nur darum gehen was auf dem Server im PHP vor sich geht.

    Hast Du eine Chance das etwas tiefer zu debuggen?
    Also in der Browser-Konsole zu schauen was an den Server gehen sollte, welche Antwort vom Server zurück kommt, etc. pp.
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #3
      Ich habe noch ein wenig getestet: Mit dem "cgi-bin"-Backend funktioniert das Speichern unter Benutzung der selben config-Datei ohne Probleme. Folglich könnte es an dem OH2 php add-on liegen.
      Ich versuche noch mehr rauszufinden.

      Kommentar


        #4
        Zitat von Chris M. Beitrag anzeigen
        Das Backend ist hier eigentlich egal, da sollte es eigentlich nur darum gehen was auf dem Server im PHP vor sich geht.
        Naja das stimmt nicht so ganz. Das ganze PHP-Handling in OH2 ist ziemlich abenteuerlich, weil kein nativer PHP Interpreter genutzt wird (geht nicht) sondern ein komplett in Java geschriebener PHP-Interpreter (http://quercus.caucho.com/). Noch dazu werden einige PHP-Dateien komplett durch eigenen Code ersetzt (und das speichern der Configs könnte dazu zählen, kann mich aber nicht mehr wirklich erinnern, ob das so ist, hab ich vor 2 Jahren geschrieben).

        Interessant wäre es mal in OH2 Log zu schauen, da sollte es eine Fehlermeldung geben die etwas aussagekräftiger ist.

        Gruß
        Tobias

        Kommentar


          #5
          und hier ein Auszug aus dem OH2-Log:
          logOH2.PNG
          Das bestätigt meine Vermutung, danke peuter für den Tip mit dem Log. Gibt/gab es ein Grund für die Beschränkung von 200000 (welche Größenordnung auch immer)?

          Kommentar


            #6
            Zitat von cybergreen Beitrag anzeigen
            Gibt/gab es ein Grund für die Beschränkung von 200000 (welche Größenordnung auch immer)?
            Sicher nicht, ich vermute mal dass das irgendein default-Wert ist, aktiv gesetzt habe ich so eine Grenze bestimmt nicht. Könntest Du dazu ein Issue auf Github aufmachen (https://github.com/openhab/openhab2-addons/) dann geht das nicht unter.

            Gruß
            Tobias

            Kommentar


              #7
              ich bin wieder ein Stückchen weiter vorangekommen:
              Das Problem liegt in derRequest.java des jetty-Servers. Hier ist ein fixer Wert implemtiert, welchen ich überschreite
              Code:
              if (maxFormContentSize < 0)
              {
              Object obj = _channel.getServer().getAttribute("org.eclipse.jetty.server.Request.maxFormContentSize");
              if (obj == null)
              maxFormContentSize = [B]200000[/B];
              else if (obj instanceof Number)
              {
              Number size = (Number)obj;
              maxFormContentSize = size.intValue();
              }
              else if (obj instanceof String)
              {
              maxFormContentSize = Integer.valueOf((String)obj);
              }
              }
              Etwas weiter unten erfolgt dann der Vergleich....
              Code:
              if (contentLength > maxFormContentSize && maxFormContentSize > 0)
              {
              throw new IllegalStateException("Form too large: " + contentLength + " > " + maxFormContentSize);
              }
              Trotzdem bei OH2 ein Issue aufmachen oder unter dem Jetty?

              Kommentar


                #8
                Du kannst mal versuchen die Einstellung in der jetty.xml anzupassen, um zu sehen ob der Fehler dann weg ist. Bei mir liegt die unter: /usr/share/openhab2/runtime/etc/jetty.xml

                Anleitung dazu ist hier: http://www.eclipse.org/jetty/documen...form-size.html

                Ich vermute mal, dass Du mindestens jetty als Bundle neu laden musst oder aber komplett OH2 neu starten musst danach. Aber macht trotzdem ein Issue auf, da lesen dann Leute mit die mehr Ahnung von Jetty haben. Aber ich schätze mal, dass ich das dann ins CV-Binding einbauen muss, dass nur für dieses Servlet der Wert erhöht wird.
                Gruß
                Tobias

                Kommentar


                  #9
                  Am Ende des <configure>-Blocks innerhalb der jetty.xml habe ich
                  Code:
                          <Call name="setAttribute">
                                  <Arg>org.eclipse.jetty.server.Request.maxFormContentSize</Arg>
                                  <Arg>300000</Arg>
                          </Call>
                  eingefügt und OH2 komplett neu gestartet. Danach funktioniert das Speichern wieder! Die jetty.xml liegt bei mir unter: /var/lib/openhab2/etc/

                  Inwieweit die 300000 ausreichend sind, wird sich zeigen, aber jetzt weiß ich wo die Stellschraube ist.

                  Danke für die Unterstützung!

                  Ein Issue mache ich noch auf.

                  Kommentar

                  Lädt...
                  X