Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. SQL Adapter Update - etwas ging schief ...

    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

    UNSOLVED SQL Adapter Update - etwas ging schief ...

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

      Also irgendwie gabs da ein kernelfehler ... auch war es der js-cpontroller und nicht sql (steht ja der relevante Prozess dabei. Wenn sieht das nach einem Bug in nodejs aus oder ein natives modul vom js-controller verursacht es ... Beobachte es mal weiter.

      Ja, unix_dgram in der Version die beim js.controller genutzt wird ist nicht mit node 10 kompatibel, aber auch optional weil nur für Syslog relevant. Kannst Du ignorieren.

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @apollon77 last edited by liv-in-sky

        @apollon77 erstmal danke

        ich weiß - meine vermutung wegen sql ist nur, dass ich dort ein wenig probleme hatte und es das einzige ist, was einen fehler anzeigte, bevor alles andere anfängt zu terminieren

        ach ja - der kernelfehler war von gestern abend - heute war garnichts in den syslog sachen, sondern nur im iobroker log , der sql fehler danach terminierung und stop von allem

        wie du gesagt hast, warte ich bis zum nächsten fehler, danach denke ich werde ich entweder den js-controller oder die npm version downgraden !? - was würdest du zuerst downgraden

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

          Du hast aber keinen sql Fehler gezeigt (oder meinst du das mit unix_dgram?). Das wäre dann ega.

          Der "alles startet neu" passt zu den js-controller Crash

          liv-in-sky 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @apollon77 last edited by

            @apollon77 in dem log22.txt file bei zeile 1235

            davor alles ok - nach sql fehler wird alles gestoppt

            log22.txt

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

              Also faktisch ist diese Zeit die Ursache das alles stoppt:

              2019-05-22 08:36:10.279 - info: host.raspberry3 received SIGTERM

              Das ist genau das wo der kernel dem js-controller gesagt hat "beende dich mal, da ist was komisch". Und dann fährt alles runter

              Die Zeile

              2019-05-22 08:36:10.290 - error: sql.0 Error: connect ECONNREFUSED 192.168.178.59:3306

              Sagt nur das die Verbindung zum SQL Server beendet wurde ... warum, könntest DU ggf im sql-server Log finden, ggf zuviele Verbindungen falls er das Audit-Feature an hat und damit pro Datenpunkt ein NULL geschrieben wird.

              liv-in-sky 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @apollon77 last edited by liv-in-sky

                @apollon77

                zur zeit - klopfe auf holz:

                habe mal viele datenpunkt-aufzeichnungen gestoppt um den sql server etwas zu schonen - den habe ich durch zusammen-googelen so eingestellt, dass er wenig speicher verwendet ( da könnte ein problem liegen, da ich eigentlich keine ahnung habe, was ich da alles eingestellt habe) - auch die flot diagramme, welche ja auch auf sql zugreifen habe ich aus der vis gelöscht

                die meldungen, die kamen waren meist zu viele connections - das ist jetzt nicht mehr aufgetreten

                aber selbst dann, waren noch die selben iobroker aussetzer da.

                ich habe dann den js-controller wieder auf 1.4.7 gesetzt (vorher 1.59) - seitdem läuft iobroker wieder stabil - mit 1.5.9 lief er einige wochen auch sehr stabil (habe aber in letzter zeit immer mehr mit/ vom sql adapter gefordert)

                kann das zusammenspiel zwischen sql adapter und js-controller dieses problem verursachen ? sagt der js-controller: ich kann keine aufzeichnungen in sql machen - also beende ich mich

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

                  Also aus deinen logs gewinnt eindeutig das syslog was sagt "fehler in js.controller prozess den kille ich mal". Das richtig gute an ioBroker ist das halt alles als eigene Prozesse läuft und sich daher nicht in die Quere kommt.
                  Also die "too many connections" sind ein anderen thema beim sql-Adapter und hat auch damit nichts zu tun.

                  Am Ende kann ich jetzt nur sagen: Mal Kernel updaten, nodejs updaten (aber denke das warst du auf dem aktuellsten 10er). Auch sonst können wir mit "Javascript code" an sich solche Kernel Dinge nicht verursachen ...

                  liv-in-sky 2 Replies Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky last edited by liv-in-sky

                    @apollon77
                    mein kernel 4.19.0-4-amd64 - zur zeit: ( ->4.20 -> 5.0) - (also das ist doch ein einigermaßen neuer kernel)

                    node 10.15.3 und npm (jetzt 6.9 ) war (aber 6.4.1)

                    jetzt mach ich erstmal wieder den neusten sql adapter drauf - dann versuch ich mal ob ich den sql server besser konfigurieren kann (auch wenn das alles nichts damit zu tun hat) evtl schaue ich mal, ob ich etwas vom linux server löschen kann - der hat einiges an service laufen) (hat 4.84 GB ram) - könnte der sql server linux veranlassen, iobroker zu beenden oder ist das sigterm ausschliesslich vom js-controller?

                    vielleicht probiere ich in ein paar tagen den js-c 1.5.9 nochmal

                    ist ein blödes gefühl - ich weiß nicht, was es eigentlich war und falls es der js-controller ist, wüßte ich nicht, was zu tun ist) - zuerst läuft er, dann aber auf einmal macht er probleme !

                    1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @apollon77 last edited by

                      Hi @apollon77

                      bitte dich nochmals um eine antwort
                      ich versuche gerade objecte und json zu verstehen - dazu hole ich über sql einen wert - diesen möchte ich in einen datenpunkt schreiben

                      und schwubs: SIGTERM - meine frage - ist das normal, dass bei einem solchen fehler iobroker neustartet?

                      Fehler:

                      javascript.0	2019-05-25 11:12:54.094	info	starting. Version 4.1.12 in /opt/iobroker/node_modules/iobroker.javascript, node: v10.15.3
                      host.raspberry3	2019-05-25 11:12:52.967	info	instance system.adapter.javascript.0 started with pid 2018
                      host.raspberry3	2019-05-25 11:12:32.994	info	received SIGTERM
                      host.raspberry3	2019-05-25 11:12:27.987	info	received SIGTERM
                      host.raspberry3	2019-05-25 11:12:27.880	info	iobroker exit 0
                      host.raspberry3	2019-05-25 11:12:27.870	info	iobroker Starting node restart.js
                      host.raspberry3	2019-05-25 11:12:27.702	info	iobroker _restart
                      host.raspberry3	2019-05-25 11:12:27.702	error	TypeError [ERR_INVALID_CALLBACK]: Callback must be a function at maybeCallback (fs.js:128:9) at Object.writeFile (fs.js:1158:14) at processMessage (/opt/iobroker/node_modules/iobroker.js-c
                      host.raspberry3	2019-05-25 11:12:27.701	error	uncaught exception: Callback must be a function
                      

                      wie erwähnt -ich versuche gerade über trial und error zu lernen:
                      hier das script (möchte den wert connections auslesen:

                         sendTo('sql.0', 'query', 'show status like "Connections"', function (result) {
                             
                          if (result.error) {
                              console.error(result.error);
                          } else {
                            // setState("controll-own.0.FUTRO.SQLConnections",JSON.stringify(result.result));
                             //setState("controll-own.0.FUTRO.SQLConnections",result.Value);
                              //setState("controll-own.0.HANDY.SQLToDos",result.Value);
                              //show result
                               console.log('Rows: ' + JSON.stringify(result.Value));
                               console.log(result.Value);
                               // var obj = JSON.parse(result);
                                 // console.log('Hardware-Version' + obj.value);
                                 }
                      });
                      
                      1 Reply Last reply Reply Quote 0
                      • liv-in-sky
                        liv-in-sky @apollon77 last edited by

                        @apollon77
                        und jetzt wird es noch verrückter

                        er stürzt jedesmal ab wenn ich im log-tab auf lösche log gehe - dann kommt sofort:

                        host.raspberry3	2019-05-25 11:43:22.380	info	iobroker _restart
                        host.raspberry3	2019-05-25 11:43:22.380	error	TypeError [ERR_INVALID_CALLBACK]: Callback must be a function at maybeCallback (fs.js:128:9) at Object.writeFile (fs.js:1158:14) at processMessage (/opt/iobroker/node_modules/iobroker.js-c
                        host.raspberry3	2019-05-25 11:43:22.379	error	uncaught exception: Callback must be a function
                        web.2	2019-05-25 11:43:08.712	info	<==Disconnect system.user.admin from ::ffff:192.168.178.26
                        
                        1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 last edited by

                          Gleiche Frage wie im GitHub-Issue: Welcher js.controller?

                          Der 1.4.2er hatte exakt hier eine Inkompatibilität mit NodeJS 10, weshalb nodejs 10 auch offiziell mit dem js.controller 1.4.2 nicht unterstützt ist. Um dazu zu umgehen brauchst Du einen 1.5er js-controller.

                          liv-in-sky 1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @apollon77 last edited by

                            @apollon77

                            ich hatte den 1.5.9er -und node 10 -es machte probleme - andere

                            dann habe ich den 1.4er und hatte das mit dem löschen des log-tab problem (github)

                            mittlerweile habe ich node 8.16, js-co. 1.5.9 und es scheint momentan stabil zu sein - zumindest funktioniert der admin wieder und auch wenn ich mal einen fehler in einem script erzeuge, kommt eine fehlermeldung aber iobroker läuft weiter - so wie es sein soll.

                            würdest du mir bitte noch eine frage zum mysql server beantworten

                            ich habe ein kurzes script geschrieben

                            
                             sendTo('sql.0', 'query', 'show status like "Connection_errors_max_connections"', function (result) {
                                if (result.error) {
                                    console.error(result.error);
                                } else {
                                  setState("controll-own.0.FUTRO.SQLConnections",JSON.stringify(result.result));
                                  
                                     console.log('Rows: ' + JSON.stringify(result.result));
                                  
                                   
                                       }
                            });
                            

                            ich versuche aus dem ergebnis:

                            script.js.Armin_Schalter.ALLERLEI.SQLConnectionsGet: Rows: [{"Variable_name":"Connection_errors_max_connections","Value":"0"}]
                            

                            den wert von value also "0" in den datenpunkt zu schreiben - würdest du mir kkurz den trick zeigen, wie das geht

                            1 Reply Last reply Reply Quote 0
                            • liv-in-sky
                              liv-in-sky last edited by

                              ich habe die sql-abfage jetzt so gelöst:

                                 sendTo('sql.0', 'query', 'show status like "Connection_errors_max_connections"', function (result) { 
                                  if (result.error) {
                                      console.error(result.error);
                                      
                                  } else {
                                    
                                         console.log('Rows: ' + JSON.stringify(result.result));
                                       var abc = JSON.stringify(result.result);
                                       abc = abc.replace( /[|]/g , "");
                                       var json = JSON.parse(abc);
                                         console.log(json.Value);
                                      setState("controll-own.0.FUTRO.SQLConnections",json.Value);
                                         }
                              });
                              

                              irgendwie check ich das result.result nicht - dachte es ist ein object welches ich direkt mit JSON.parse verarbeiten könnte - is aber nicht

                              hauptsache es läuft wieder alles

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

                                result.result[0].Variable_name bzw result.result[0].Value

                                In der Variable result (kannst Du auch anders nennen, steht in der Callback Funktion direkt in deinem Code) steht ein Objekt was einen key "error" und einen Key "result" hat.
                                In Result ist ein Array mit den Antwortzeilen Drin. Dort pro Zeile EIn Objekt mit den Spaltennamen als Keys und dem Value

                                Also:

                                • result: Name der Variable die Du im Ergebnis bekommst
                                • result: Du willst auf das Ergebnis Zugreifen
                                • [0]: erste Zeile der Antwort
                                • .Value Wert
                                liv-in-sky 1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @apollon77 last edited by

                                  @apollon77

                                  vielen dank - werd's gleich mal testen

                                  1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky last edited by

                                    jetzt klappts

                                    console.log(result.result[0].Value);
                                    setState("controll-own.0.FUTRO.SQLConnections",result.result[0].Value);
                                    
                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    383
                                    Online

                                    31.8k
                                    Users

                                    80.0k
                                    Topics

                                    1.3m
                                    Posts

                                    sql adapter installation sql-adapter
                                    2
                                    20
                                    810
                                    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