Access violation Fehler in rrdtools.dll

Hallo zusammen,

nachdem ich meine Drohung wahr gemacht und IP Symcon auf einem Evo T30 installiert habe, kann ich berichten, dass das exzellent und problemfrei vonstatten ging. Das WIIP ist im Zugriff von außen über Browser erwartungsgemäß etwas träge, aber es geht. IP Symcon läuft auf einem 1 GB USB Stick.

Was nun nicht mehr klappen will ist das Loggen der Wetterdaten des KS300 mit WIIP. Ich habe alles deinstalliert und die neuste version gem. Anleitung isntalliert, rddtool.exe, die Verzeichnisse web und web_data gelöscht unregistered und wieder registriert, aber die Datenbanken werden offensichtlich einfach nicht angelegt (und die Wetterdaten im Web Interface) daher auch nicht aktualisiert). Dabei werden die KS300 Daten sehr wohl empfangen, die Variablen entsprechend aktualisiert.

Alle 5 Minuten habe ich im Kernel die Meldung: "RRD Tool: Access violation at address 02FF2651 in module „rrdtools.dll’: Read of address 00000000“

D:\IP-Symcon\web_data\weather\data ist leer
D:\IP-Symcon\web_data\rrd\data ist leer
d.h.es werden keine *.rdd Dateien mehr angelegt

Ein Auszug aus dem Log sagt:


TimerEvent.ips.php ~ Sender: TimerEvent
04/08/2008 00:11:00.913 | DEBUG   | ExecuteThread ID: 1348 | Executing Script: ../web_data/rrd/exe/RRD_DataPoller.ips.php ~ Sender: RunScript
04/08/2008 00:11:00.974 | DEBUG   | ExecuteThread ID: 736 | Executing Script: ../web_data/rrd/exe/RRD_GraphBuilder.ips.php ~ Sender: RunScript
04/08/2008 00:11:00.984 | DEBUG   | VariableManager      | Variable: LastTimer (Integer), Value: 1217801460
04/08/2008 00:11:01.04 | DEBUG   | ExecuteThread ID: 1312 | Execution Result: Timer [RRD_DataPoller] TriggeredTimer [RRD_GraphBuilder] Triggered
04/08/2008 00:11:01.14 | DEBUG   | ExecuteThread ID: 1312 | Executed, Ret: 1, Successful:True
04/08/2008 00:11:02.866 | CUSTOM  | RRD_DataPoller       |  0 Database(s) updated.
04/08/2008 00:11:02.996 | DEBUG   | ExecuteThread ID: 1348 | Execution Result: 
04/08/2008 00:11:02.996 | DEBUG   | ExecuteThread ID: 1348 | Executed, Ret: 1, Successful:True
04/08/2008 00:11:03.147 | CUSTOM  | RRD_GraphBuilder     |  0 Graphs(s) builded.
04/08/2008 00:11:03.217 | DEBUG   | ExecuteThread ID: 736 | Execution Result: 
04/08/2008 00:11:03.217 | DEBUG   | ExecuteThread ID: 736 | Executed, Ret: 1, Successful:True
04/08/2008 00:11:03.637 | DEBUG   | ExecuteThread ID: 736 | Executing Script: rrd.php ~ Sender: WebInterface
04/08/2008 00:11:07.613 | DEBUG   | ExecuteThread ID: 736 | Executed, Ret: 1, Successful:True
04/08/2008 00:12:00.930 | DEBUG   | ExecuteThread ID: 736 | Executing Script: TimerEvent.ips.php ~ Sender: TimerEvent
04/08/2008 00:12:01.70 | DEBUG   | ExecuteThread ID: 1348 | Executing Script: ../web_data/rrd/exe/RRD_DataPoller.ips.php ~ Sender: RunScript
04/08/2008 00:12:01.90 | DEBUG   | ExecuteThread ID: 968 | Executing Script: ../web_data/rrd/exe/RRD_GraphBuilder.ips.php ~ Sender: RunScript
04/08/2008 00:12:01.90 | DEBUG   | VariableManager      | Variable: LastTimer (Integer), Value: 1217801521
04/08/2008 00:12:01.180 | DEBUG   | ExecuteThread ID: 736 | Execution Result: Timer [RRD_DataPoller] TriggeredTimer [RRD_GraphBuilder] Triggered
04/08/2008 00:12:01.180 | DEBUG   | ExecuteThread ID: 736 | Executed, Ret: 1, Successful:True
04/08/2008 00:12:02.482 | CUSTOM  | RRD_DataPoller       |  0 Database(s) updated.
04/08/2008 00:12:02.512 | DEBUG   | ExecuteThread ID: 1348 | Execution Result: 
04/08/2008 00:12:02.512 | DEBUG   | ExecuteThread ID: 1348 | Executed, Ret: 1, Successful:True
04/08/2008 00:12:03.63 | CUSTOM  | RRD_GraphBuilder     |  0 Graphs(s) builded.
04/08/2008 00:12:03.123 | DEBUG   | ExecuteThread ID: 968 | Execution Result: 
04/08/2008 00:12:03.123 | DEBUG   | ExecuteThread ID: 968 | Executed, Ret: 1, Successful:True
04/08/2008 00:12:03.644 | DEBUG   | ExecuteThread ID: 620 | Executing Script: rrd.php ~ Sender: WebInterface
04/08/2008 00:12:04.465 | DEBUG   | VariableManager      | Variable: KS300_Temperatur (Float), Value: 22.6000003814697
04/08/2008 00:12:04.465 | DEBUG   | VariableManager      | Variable: KS300_abs_Luftfeuchtigkeit (Integer), Value: 61
04/08/2008 00:12:04.465 | DEBUG   | VariableManager      | Variable: KS300_Windgeschwindigkeit (Float), Value: 5.5
04/08/2008 00:12:04.465 | DEBUG   | VariableManager      | Variable: KS300_Regenmenge (Integer), Value: 1703
04/08/2008 00:12:04.465 | DEBUG   | VariableManager      | Variable: KS300_Regensensor (Boolean), Value: False
04/08/2008 00:12:10.353 | DEBUG   | ExecuteThread ID: 620 | Executed, Ret: 1, Successful:True

Weiss jemand, wie ich den fehler wegbekomme? Konnte mir dazu nichts ergooglen.
Viele Grüße
DocMarten

Hallo,

hast Du auch die IPS RRDToolCore neu installiert? Es sieht so aus, als wenn Du das nicht genau nach Anleitung gemach hast. Es steht hier genau beschrieben, wie die Reihenfolge sein muss.

Hallo,
ich denke, ich habe es genau nach Anleitung gemacht (wie beim ersten Mal auf dem normalen rechner vor ein paar Monaten):

  1. IPS gestoppt.
  2. Ordner web und web_data gelöscht
  3. rddtool.exe gelöscht (stand irgendwo im Forum, das man das tun sollte)
  4. V1.3b_rrdtool.rar in den IPS Ordner entpackt.
  5. wiips-beta-1.0.1.zip in den IPS Ordner entpackt
  6. IPS gestartet
  7. WIIP über Browser aufgerufen, Config-Prozess durchgespielt
  8. weather und rdd registriert
  9. Graphen angelegt

Habe ich etwas vergessen?
grüße
DocMarten

Hallo DocMarten,

das ist ja soweit alles ok. Hhm, eventuell doch noch ein Problem in der Dll…paresy, was meinst Du dazu?

Kannst du mal ausprobieren, ob der RRD Tool Befehl geht?


  echo RRD_Execute("version -");

Ausgabe müsste ungefähr so sein:


RRDtool 1.2.27  Copyright by Tobi Oetiker, 1997-2005 (1.202700)
IP-Symcon DLL-Edition

paresy

Hallo,
bin unterwegs - werde ich heute Abend ausprobieren.
Danke & Grüße
DocMarten

Hallo,
die Ausgabe ist „RRDTool not found“.
Grüße
DocMarten

Hallo Doc,

das sieht so aus, als wenn das Modul nicht vorhanden ist. Schau bitte mal im Verzeichnis

IPSYMCON/modules nach, da muss die Datei: Core.RRDTool.dll vorhanden sein.

Falls das nicht so ist, IPS runterfahren und nochmal die Archivdatei entpacken…

Dann das ganze nochmal so testen.

Hallo,
die Datei Core.RRDTool.dll ist (und war) in D:\IP-Symcon\modules vorhanden.
Ich habe sie nun extra noch einmal (nach Herunterfahren von IPS) hinenkopiert, neugestartet - alles beim Alten, d.h. keine Daten im data-Verzeichnis und der Access Violation-Fehler alle fünf Minuten.
Was nun?
Grüße
DocMarten

„RRDTool not found“.

Wenn du diese Fehlermeldung hast, dann hast du die falsche Core.RRDTool.dll im ‚modules‘ Ordner. Kopier die die DLL rein, die bei der rrdtools.dll beiliegt.

Selbstverständlich darfst du hinterher KEIN LiveUpdate machen, weil sonst die die DLL überschrieben wird.

Bevor irgendetwas geht muss dieser Befehl funktionieren! Wenn nicht, hast du etwas falsch gemacht.


echo RRD_Execute("version -");  

paresy
</span></span>

Nur zur Sicherheit:

  • Ich habe das RDDtool von http://www.ipsymcon.de/~torro/V1.3b_rrdtool.rar herunter geladen. Darin enthalten ist Core.RDD.Tool.dll, Größe 37.888, Datum 1.2.2008, CRC 8dfbec5b
  • Ich habe das Archiv nach IP-Symcon entpackt.
  • Ich habe seit vielen Monaten kein Live Update gemacht (mein „Abo“ ist abgelaufen).

Ratlose Grüße
DocMarten

Hallo DocMarten,

aha: ich glaube, daran liegt es.

Wenn Du noch eine aeltere IPS Version hast, dann koennte es sein, dass es mit der neuen RRDTool Core Dll gar nicht laeuft - dann funktioniert WIIPS nur in aelteren Versionen mit der RRDTool.EXE im Hauptverzeichnis.

Also gaebe es wahrscheinlich nur zwei Moeglichkeiten fuer Dich:

eine alte WIIPS Version verwenden oder cleverer

IPSYMCON Lizenz updaten und dann erstmal ein Live Update fahren.

Ich wuerde Dir in jedem Fall das letztere empfehlen.

Danke für den Hinweis, daran hatte ich auch schon gedacht, den Gedanken aber dann zunächst verworfen, weil RDD ja vor dem Umzug auf den Evo T30 anstandslos lief - mit exakt derselben (neuesten) WIIP Version. Allerdings hatte ich auf dem alten Rechner nicht das RDDTOOL.EXE gelöscht? Kann das denn sein, dass das so im „Misch-Betrieb“ funktionierte?

Anyway: Habe gerade die Live Update-Verlängerung gekauft (obwohl ich das System bisher praktisch nicht genutzt hatte), musste aber feststellen, dass man das dann - obwohl logischerweise bekannter Kunde - erst nach Eingang der Überweisung bekommt. Also weiter warten… Finde ich nicht wirklich kundenfreundlich.

A propos Evo T30: Der Timeout beim Herunterfahren von IPS scheint für solche Hardware zu kurz eingestellt zu sein, d.h. IPS hat nicht ausreichend Zeit, all seine Prozesse etc. zu beenden. Daher startet es dann immer mir korrupten Daten und will ein Backup einspielen - kann man den Timeout irgendwo einstellen?
Grüße
DocMarten

Hallo,

ja, weil das RRDTool Core nicht von Deiner Version angesprochen wird.

Hallo,
jemand hatte ein Einsehen - ich konnte ein Live Update durchführen. Danach das ganze Procedere der WIIP und RDD Installation erneut; Dasselbe Problem mit denselben Symptomen und denselben Meldungen.
Nach zwei Stunden entnervt: Alles gelöscht, komplette Neuinstallation über Live Update; wieder WIIP und RDD bei gestopptem IPS installiert, wieder dasselbe Problem. Das Ganze begleitet vom regelmäßigen Wunsch von IPS, ein Backup einzuspielen, weil der (manuell oder automatisch eingeleitete) Restart von IPS wohl nicht sauber ablief.

Zwischendurch - nach dem ersten Live Update der alten Installation - hat „echo RRD_Execute(„version -“);“ einmal „1“ ausgegeben. Hat aber an den Symptomen nichts geändert. Nach Neuinstallation kommt wieder „RRDTool not found“.

Hat das möglicherweise etwas mit dem Einspielen der Backups zu tun? Setzen die alles auf einen Status vor Live Update usw. zurück? Ist mir alles nicht wirklich transparent.

Grüße
DocMarten

Ergänzung: Ich habe das Ganze jetzt noch einmal statt auf den USB Stick (D:) auf die root C:\Program Files (also auf das Flash Memory des T30) installiert, und zwar ebenfalls live per Download. Das Ergebnis ist dasselbe, Paresys Vor-Test „echo RRD_Execute(„version -“);“ ist bereits negativ, und die Access Violation bleibt.
Grüße
DocMarten

Hallo,
ich scheine Ratlosigkeit zu verbreiten. Ich habe beim Googlen nach der Fehlermeldung „RDDTool not found“ viele Hinweise darauf gefunden, dass dies mit Pfad-Problemen zu tun haben kann. Ich nehme aber mal stark an, dass es in IPS keine hardgecodeten Pfade zu RDD gibt?

Wäre es eine Idee, dass mir einer von Euch ein erprobt lauffähige IPS/WIIP-Verzeichnis gezipt mailt oder auf einen Server stellt, das ich dann auf den USB Stick entpacke, um zu testen, ob der Fehler anhält?

Grüße
DocMarten

Hast du eine RRDTool.exe in deinem IPS Ordner? Wenn nein, dann ist das der Fehler.

paresy

Ich hatte auf dem alten Rechner (mit der alten IPS Version) eine RRDTool.exe in meinem Ordner. Aber ich habe sie gemäß den Anweisungen aus Toros Thread gelöscht

  1. Das RRD Modul wurde geaendert, das heisst konkret, die Abarbeitung wurde beschleunigt und im IPS ist ein neues „embedded“ RRD Modul integriert. Dazu ist das im Hauptverzeichnis befindliche RRDTool.EXE nicht mehr erforderlich.

Die Datei wird auch weder beim Live-Update noch bei der Live-Neuinstallation noch bei der Installation der WIIP geliefert.

Ich habe sie auf Deinen Hinweis hin vom alten Rechner geholt, bei gestopptem IPS zunächst in das IPS Verzeichnis kopiert, dann zusätzlich in \Programme\IP-Symcon\web_data\exe, dann zusätzlich in \Programme\IP-Symcon\web - immer mit demselben Ergebnis: RRRDTool not found (zur Sicherheit: ich gebe "<? echo RRD_Execute(„version -“); ?> ins Script-Fenster des Event-Tabs ein, und das Script Output Window gibt die Meldung aus - war das gemeint?).
Grüße
DocMarten

Nach dem manuellen Hineinkopieren der RRDTool.exe habe ich ein Live-Update gemacht.
Danach änderten sich die Meldungen: Im Kernel liest man nun „RRDTool could not be started“; echo RRD_Execute(„version -“); ergibt nun ein lapidares „1“.
Was ist zu tun?
Grüße
DocMarten