NEWS
SQL-Fehlermeldung bei Neustart "Duplicate entry"
-
Auszug zu kurz. Am besten wirklich starten mit dem Start vom Adapter und dann bis der ganze initiale Kram durch ist.
Gesendet vom Handy …
-
So Apollon, hier der log ab dem Moment wo ich den sql Adapter auf debug gestellt habe, bis zu dem Zeitpunkt wo sich die sache mit den errors beruhigt hat.
Ich hoffe Du finest was raus!?!?
Gruß
Johnny
-
Apollon hattest Du schon mal n Minütchen wo Du den log ansehen konntest?
Hast Du was entdeckt?
Gruß
Johnny
-
Nope noch keine Zeit gehabt
-
Die Datenbank irrt hier nicht:
Zuerst:
INSERT INTO ts_number .... VALUES(107, 1533758018663, 22.98, 0, 7, 0); INSERT INTO ts_number .... VALUES(107, 1533758018664, 22.98, 0, 7, 0); INSERT INTO ts_number .... VALUES(107, 1533758018663, 22.98, 0, 7, 0); INSERT INTO ts_number .... VALUES(107, 1533758018664, 22.98, 0, 7, 0); INSERT INTO ts_number .... VALUES(107, 1533758018663, 22.98, 0, 7, 0); INSERT INTO ts_number .... VALUES(107, 1533758018664, 22.98, 0, 7, 0); INSERT INTO ts_number .... VALUES(168, 1533758018668, 22.98, 0, 5, 0); INSERT INTO ts_number .... VALUES(168, 1533758018669, 22.98, 0, 5, 0); INSERT INTO ts_number .... VALUES(168, 1533758018668, 22.98, 0, 5, 0); INSERT INTO ts_number .... VALUES(168, 1533758018669, 22.98, 0, 5, 0); INSERT INTO ts_number .... VALUES(168, 1533758018668, 22.98, 0, 5, 0); INSERT INTO ts_number .... VALUES(168, 1533758018669, 22.98, 0, 5, 0);
dann kommt
changed history configuration to pin detected datatype ... ````für die verschiedenen Datenpunkte und dann gleich darauf:
DELETE FROM ts_number WHERE id=107 AND ts < 1502221980756;
INSERT INTO ts_number .... VALUES(107, 1533758018663, 22.98, 0, 7, 0);: Error: ER_DUP_ENTRY: Duplicate entry '107-1533758018663' for key 'PRIMARY'
INSERT INTO ts_number .... VALUES(107, 1533758018664, 22.98, 0, 7, 0);: Error: ER_DUP_ENTRY: Duplicate entry '107-1533758018664' for key 'PRIMARY'
INSERT INTO ts_number .... VALUES(107, 1533758018663, 22.98, 0, 7, 0);: Error: ER_DUP_ENTRY: Duplicate entry '107-1533758018663' for key 'PRIMARY'
INSERT INTO ts_number .... VALUES(107, 1533758018664, 22.98, 0, 7, 0);: Error: ER_DUP_ENTRY: Duplicate entry '107-1533758018664' for key 'PRIMARY'
INSERT INTO ts_number .... VALUES(168, 1533758018669, 22.98, 0, 5, 0);: Error: ER_DUP_ENTRY: Duplicate entry '168-1533758018669' for key 'PRIMARY'DELETE FROM ts_number WHERE id=168 AND ts < 1502221980762;
INSERT INTO ts_number .... VALUES(168, 1533758018668, 22.98, 0, 5, 0);: Error: ER_DUP_ENTRY: Duplicate entry '168-1533758018668' for key 'PRIMARY'
INSERT INTO ts_number .... VALUES(168, 1533758018669, 22.98, 0, 5, 0);: Error: ER_DUP_ENTRY: Duplicate entry '168-1533758018669' for key 'PRIMARY'
INSERT INTO ts_number .... VALUES(168, 1533758018668, 22.98, 0, 5, 0);: Error: ER_DUP_ENTRY: Duplicate entry '168-1533758018668' for key 'PRIMARY'Hmm, das Delete ist um ein Jahr nach vorne verschoben … 08.08.2017 21:53:01 Kannst Du zur Vollständigkeit das JavaScript posten, das die Werte setzt?
-
Das ist ein Timing-Issue in der Initialisierung. Soweit bin ich schon …
Das Problem ist das Dinge noch nicht sauber initialisiert sind (sql calls sind halt asynchron) aber dann schnell Werte reinkommen. Und dann passieren komische Dinge ...
Mal warten bitte
-
So, bitte mal die 1.9.3 vom Github installieren, instanz neustarten (mit Debug an wieder) und mir in jedem Fall das Log schicken/posten.
jetzt besser?
-
Hab das update durchgeführt und den Adapter auf debugging gestellt. bis jetzt keine Verbesserung. Was mir aber aufgefallen ist, auf den ersten blick sind das alles Fehlermeldungen von Statusänderungen durch z.b. Arduinos die über simple api senden (http://<ip-adresse>:8082/set/javascript.0.xxxxxx)
hier mal das log-File
Gruß
Johnny</ip-adresse>
-
Kannst Du zur Vollständigkeit das JavaScript posten, das die Werte setzt?
javascript.0.IntelNUC.*
-
Das ist kein Javascript sondern ein bash-script auf dem Proxmox
Der vollständigkeithalber
#!/bin/sh ### Scriptname: sysinfo.sh ### Kurzbeschreibung: Ermitteln von Systemwerten InterlNUC root-System und überträgt an ioBroker ### Ersteller: Prinzeisenherz1 (Schneider Johnny) am 24072018 ### ######################################################### ### Lokale Variablen anlegen ioBrokerIP="192.168.178.2:8082" echo "ip "$ioBrokerIP URL_set_StorageTotal="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.StorageTotal?value=" URL_set_StorageFree="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.StorageFree?value=" URL_set_StorageUsed="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.StorageUsed?value=" URL_set_MemTotal="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.MemTotal?value=" URL_set_MemFree="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.MemFree?value=" URL_set_MemUsed="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.MemUsed?value=" URL_set_load1Min="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.load1Min?value=" URL_set_load5Min="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.load5Min?value=" URL_set_load15Min="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.load15Min?value=" URL_set_Uptime_day="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.UptimeDay?value=" URL_set_Uptime_hour="http://"$ioBrokerIP"/set/javascript.0.IntelNUC.VM-ioBroker.UptimeHour?value=" ### Gesamtspeicherplatz Arbeitsspeicher in Gigabyte ermitteln und an die ioBroker übertragen tmp2=$(free -m | awk '{print $2/1024}' | sed -n '2p' | sed 's/G//g') ### Freier Speicherplatz Arbeitsspeicher in Gigabyte ermitteln und an die ioBroker übertragen tmp3=$(free -m | awk '{print $4/1024}' | sed -n '2p' | sed 's/G//g') ### Belegter Speicherplatz Arbeitsspeicher in Gigabyte ermitteln und an die ioBroker übertragen tmp4=$(free -m | awk '{print $3/1024}' | sed -n '2p' | sed 's/G//g') ### Gesamtspeicherplatz Datenträger in Gigabyte ermitteln und an die ioBroker übertragen tmp10=$(df -H | awk '{print $2}' | sed -n '4p' | sed 's/G//g') ### Freier Speicherplatz Datenträger in Gigabyte ermitteln und an die ioBroker übertragen tmp11=$(df -H | awk '{print $4}' | sed -n '4p' | sed 's/G//g') ### Belegter Speicherplatz Datenträger in Gigabyte ermitteln und an die ioBroker übertragen tmp12=$(df -H | awk '{print $3}' | sed -n '4p' | sed 's/G//g') ### Systemload 1-Min ermitteln und an die ioBroker übertragen tmp5=$(cat /proc/loadavg | awk '{print $1}') ### Systemload 5-Min ermitteln und an die ioBroker übertragen tmp6=$(cat /proc/loadavg | awk '{print $2}') ### Systemload 15-Min ermitteln und an die ioBroker übertragen tmp7=$(cat /proc/loadavg | awk '{print $3}') ### UpTime in Tage und Stunden ermitteln und an ioBroker übertragen tmp8=$(cat /proc/uptime | awk '{printf"%.0f\n", $1}') ############################################################################################## days=$(($tmp8 / 86400 )) hours=$((($tmp8 / 3600) - (days * 24))) ############################################################################################## ####### Sende Gesamtspeicherplatz in Gigabyte an ioBroker url_tmp2=$URL_set_MemTotal$tmp2 echo "$url_tmp2" curl -s $url_tmp2 > /dev/null 2>&1 ################################################################################################ ####### Sende freien Speicherplatz in Gigabyte an ioBroker url_tmp3=$URL_set_MemFree$tmp3 echo "$url_tmp3" curl -s $url_tmp3 > /dev/null 2>&1 ################################################################################################ ####### Sende belegter Speicherplatz in Gigabyte an ioBroker url_tmp4=$URL_set_MemUsed$tmp4 echo "$url_tmp4" curl -s $url_tmp4 > /dev/null 2>&1 ################################################################################################ ####### Sende Gesamtspeicherplatz in Gigabyte an ioBroker url_tmp10=$URL_set_StorageTotal$tmp10 echo "$url_tmp10" curl -s $url_tmp10 > /dev/null 2>&1 ################################################################################################ ####### Sende freien Speicherplatz in Gigabyte an ioBroker url_tmp11=$URL_set_StorageFree$tmp11 echo "$url_tmp11" curl -s $url_tmp11 > /dev/null 2>&1 ################################################################################################ ####### Sende belegter Speicherplatz in Gigabyte an ioBroker url_tmp12=$URL_set_StorageUsed$tmp12 echo "$url_tmp12" curl -s $url_tmp12 > /dev/null 2>&1 ################################################################################################ ####### Sende freien Speicherplatz in Prozent an ioBroker url_tmp5=$URL_set_load1Min$tmp5 echo "$url_tmp5" curl -s $url_tmp5 > /dev/null 2>&1 ################################################################################################ ####### Sende belegter Speicherplatz in Prozent an ioBroker url_tmp6=$URL_set_load5Min$tmp6 echo "$url_tmp6" curl -s $url_tmp6 > /dev/null 2>&1 ################################################################################################ ####### Sende belegter Speicherplatz in Prozent an ioBroker url_tmp7=$URL_set_load15Min$tmp7 echo "$url_tmp7" curl -s $url_tmp7 > /dev/null 2>&1 ################################################################################################ ####### Sende UpTime an ioBroker url_days=$URL_set_Uptime_day$days echo "$url_days" curl -s $url_days > /dev/null 2>&1 ################################################################################################ url_hours=$URL_set_Uptime_hour$hours echo "$url_hours" curl -s $url_hours > /dev/null 2>&1 ################################################################################################
Gruß
Johnny
-
Hab mal auf Version 1.6.1 downgegraded und da gibt es die Probleme nicht!
Gruß
Johnny
-
Hi, sorry für die Wartezeit … bitte versuch die Github Version nochmal. Habe noch was gefunden.
Zuerst wurden alle Typen und Indizes aus der DB eingelesen nur um das dann grad wieder zu überschreiben
Wenn immer noch blöd dann bitte wieder log.
Das muss zu fixen sein
-
@PrinzEisenherz1: kamst Du schon zum testen der Github Version?
-
Habe ebenso das Problem mit Duplicate Entry mit meiner NAS SQL-DB.
Bin auch an der Lösung interessiert. Habe mir mal ein Lesezeichen gesetzt.
2018-08-20 06:25:28.243 - [31merror[39m: sql.0 Cannot insert INSERT INTO `iobroker`.ts_bool (id, ts, val, ack, _from, q) VALUES(1760, 1970000, false, 1, 4, 0);: Error: ER_DUP_ENTRY: Duplicate entry '1760-1970000' for key 'PRIMARY'
oder möchtest du das ich das teste ? habe aber kein Testsystem, kann ich nur auf meinem Prod. System machen.
-
Welchen verwharungsort muss ich einstellen um die version 1.9.3 zu bekommen ?
-
die 1.9.3 musst Du über git installieren.
Hatte aber bei mir auch nicht geholfen bin dann auf ne 1.6er Version zurück und da hab ich keine Probleme.
EDIT:
Hab gerade erst gesehen das Apollon nochmal was geschrieben hat zu der 1.9.3 und da nochmal was geändert hat.
Die Version hab ich noch nicht getestet. Werde ich nachholen.
Gruß
Johnny
-
Edit: siehe oben
-
-
So, hab jetzt die 1.9.3 nochmals getestet. Schein jetzt zu laufen. Auch nach nem Neustart kommen die duplicate Meldungen nicht mehr.
Klasse Apollon
Danke
Johnny
-
super das hört sich gut an !!!!!! TOP. wäre gut die 1.9.3 offiziell zu amchen dann teste ich das auch