IP-Symcon 2.6 - Feedback & Bugreports

Hurra! Mein erster WF Absturz!

Spaß beiseite … gestern hing das WF bei mir das erste Mal überhaupt und zwar komplett. Gezeigt hat es sich wie schon von BestEx beschrieben:

Interessant war, dass ich den Absturz wahrscheinlich ursächlich selbst ausgelöst habe. Bei Arbeiten im Verteilerkasten hatte ich einen Stromkreis abgeschaltet (ja, man kann durchaus den Strom dafür abschalten :o) der ein Device versorgt welches ich per SNMP alle 5 min. abfrage.
IPS hat also für einen längeren Zeitraum ins Leere gegriffen aber das auch schön im Log protokolliert und die entsprechenden Warn-Mails über den Logger versendet (ca. 200).

Angefangen hat es so:

23.09.2012 15:17:07.058 |     0 | CUSTOM  | PHP                  | Error: Warning: snmpget(): No response from 192.168.xxx.xxx
   Error in Script D:\IP-Symcon\scripts\27505.ips.php on Line 7
  133 in IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   36 in IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
    7 in 27505.ips.php (call snmpget)

Seltsam wurde es dann hier (die Access Violation zur „ntdll.dll“ macht mir Kopfschmerzen …):

Warning:  snmpget(): No response from 192.168.xxx.xxx in D:\IP-Symcon\scripts\16533.ips.php on line 7

Warning:  Cannot auto-convert to Float from Variant. Error: Could not convert variant of type (String) into type (Double) in D:\IP-Symcon\scripts\16533.ips.php on line 10

23.09.2012 15:30:07.582 | 16533 | DEBUG   | ExecuteThreadID #9   | Ausgeführt, Resultat: 1, Erfolgreich: True, Zeit: 4085 ms
23.09.2012 15:30:08.016 | 14588 | MESSAGE | VariableManager      | [Program\IPSLibrary\data\core\IPSLogger\IPSLogger\SingleOut_Msg] = <div style="color:#000000;background:#FF0000;">Error: Warning: snmpget(): No response from 192.168.xxx.xxx
   Error in Script ...
23.09.2012 15:30:08.017 | 49192 | WARNING | ExecuteThreadID #10  | Fehler beim Ausführen des Skripts (49192.ips.php): Access violation at address 77C8E3BE in module 'ntdll.dll'. Read of address 18DACE35
23.09.2012 15:30:08.017 | 49192 | DEBUG   | ExecuteThreadID #10  | Ausgeführt, Resultat: -1, Erfolgreich: False, Zeit: 4015 ms

Das bittere Ende sah dann so aus:

23.09.2012 17:34:27.001 | 22861 | DEBUG   | ExecuteThreadID #3   | Skriptausführung: IPSLogger_SendMail.ips.php ~ Absender: Ereignis #37518, Zeit Ereignis
23.09.2012 17:34:27.001 | 22861 | WARNING | ExecuteThreadID #3   | Fehler beim Ausführen des Skripts (IPSLogger_SendMail.ips.php): Access violation at address 72CD151D in module 'php5ts.dll'. Read of address 00000001
23.09.2012 17:34:27.001 | 22861 | DEBUG   | ExecuteThreadID #3   | Ausgeführt, Resultat: -1, Erfolgreich: False, Zeit: 0 ms
23.09.2012 17:34:28.503 |     0 | WARNING | Kernel               | Service Shutdown requested!
23.09.2012 17:34:28.503 |     0 | MESSAGE | Kernel               | *** IPS HERUNTERFAHREN
23.09.2012 17:34:28.506 |     0 | MESSAGE | Kernel               | Deinitialisiere...
23.09.2012 17:34:28.506 |     0 | MESSAGE | EventManager         | Warte auf Terminierung des Ereignisthread...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.606 |     0 | MESSAGE | TimerPool            | Warte auf Terminierung des Timerthreads...
23.09.2012 17:34:28.706 |     0 | MESSAGE | ScriptEngine         | Warte auf Terminierung des Threads 1... Sender: Ereignis #23224, Zeit Ereignis
23.09.2012 17:35:38.162 | 27914 | MESSAGE | HomeMatic Socket     | Socket (Data Radio) - Disconnected
23.09.2012 17:35:38.366 | 27914 | MESSAGE | HomeMatic Socket     | Socket (Data Wired) - Disconnected

Der Shutdown war unsauber. Sprich: ich musste den Dienst aus dem Status "Wird beendet… "per Taskmanager erlösen. Nach Neustart, Wiederherstellung der Konnektivität und nachdem sich die Settings wieder berappelt hatte lief alles wieder wunderbar. Bisher konnte ich keinen Datenverlust feststellen.

Ich konnte wg. des rapide sinkenden WAF-Wertes während des Hängers leider dann nicht mehr tiefgreifender analysieren :mad: Ich tendiere fast dazu, dem Logger die Schuld in die Schuhe zu schieben, die „ntdll.dll“ passt nur nicht wirklich ins Bild. Das deutet fast auf ein wie auch immer geartetes Problem mit dem Speicher/der Speicherverwaltung hin. Wenn gewünscht stelle ich den Wissenden aber natürlich gerne das/die/weitere Logfiles zur Verfügung.

Cheers
/Jens

Gibt es hier auch eine Idee zu.

Es ist, wenn ich mich recht erinnere, länger bekannt, dass die SNMP Extension von PHP nicht nur mit OpenSSL 1.x.x nicht läuft, sondern auch gerne mal PHP Threads sterben lässt. Vielleicht hat dich eine neue Abwandlung davon getroffen. Ich würde hier somit weniger auf den Logger tippen, der hängt halt nur bei Fehlermeldungen gerne mit drin, weil ja Fehler auftreten :slight_smile:

PHP ist insgesamt bei fehlerhafter Konnektivität sehr anfällig, das z.B. bekannten file_get_contents Probleme betrifft, die genau solche AccessViolations auslösen. Leider können wir auf PHP Fehler keinen Einfluss nehmen :frowning:

paresy

Der OpenSSL-Teil war mir bekannt. Gut, dass wir darüber gesprochen haben :wink: Merci!

Die „Diensthänger“ bei fast jedem Neustart-/Beenden-Versuch, ob mit oder ohne vorherigem Fehler, sind allerdings wirklich lästig. Wenn ich da gezielt noch etwas beitragen/loggen/tracen kann: lass es mich wissen!

Cheers
/Jens

Die „Diensthänger“ bei fast jedem Neustart-/Beenden-Versuch, ob mit oder ohne vorherigem Fehler, sind allerdings wirklich lästig. Wenn ich da gezielt noch etwas beitragen/loggen/tracen kann: lass es mich wissen!

Logfiles von unvollständigen Shutdowns. Ansonsten schauen, ob du in Ansicht hinzufügen -> PHP Informationen tote (rote) Skripte hast. Das wäre bei SNMP jetzt am nahsten als Fehlerquelle zu suchen :slight_smile:

paresy

Hallo,

das ist nicht der IPS_Logger, sonder der IPS_Installer der den Fehler verursacht, und dann auch nur wen Variable angelegt werden. Der Fehler tritt aber erst aber der Version 2.6 auf.

Gruß Uwe

Der Fehler wir von folgen Aufruf ausgelöst.

IPS_SetParent($InstanceId, $ParentId);

Es schein mit dem Befehl „IPS_SetParent“ ab v2.6 was nicht zu stimmen.

Gruß Uwe

@Uwe

Bei IPS_SetParent hat sich auf jeden Fall nichts geändert.

Hier solltest Du auf jeden Fall etmas mehr Log posten, der Fehler hat seine Ursache vormutlich woanders…

Benutzte auf jeden Fall mal eine aktuelle Version aus der IPSLibrary, der IPSInstaller sollte nach wie vor auch „Standalone“ funktionieren:


https://raw.github.com/brownson/IPSLibrary/Development/IPSLibrary/install/IPSInstaller/IPSInstaller.inc.php

Auch wenn ich nicht den Installer nutze.

Sondern nur das Skript.

<?
$InstanceId = 29422;  //Variable
$ParentId = 21189;    //SKRIPT

IPS_SetParent($InstanceId, $ParentId);
?>

Wird die $InstanceId Variable zwar verschoben unter das $ParentId SKRIPT, aber es kommt die Fehlermeldung.

Gruß Uwe

Ok, dann ist aber mit dem Object etwas nicht in Ordnung, poste doch mal einige Details.
Wenn Script, kannst Du es normal öffnen …

Zum testen hatte ich nur das Skript von oben, aber auch wenn ich andere Skripte, Variable erstelle mit dem IPS_Installer , kommt die selbe Fehlermeldung.

Immer wenn der Befehl „IPS_SetParent“ genommen wird.

Gruß Uwe

Das der IPS_SetParent() nicht funktionieren soll bzw. einen Fehler auswirft habe ich mir auch nicht vorstellen können, aber probieren geht über studieren. :cool:

Bin bei den beiden Typen von Objekten auf folgenden BUG gestossen.

Variable = Child von Skript || Fehler (Zugriffsverletzung
Skript = Child von Variable || in Ordnung.

Vielleicht hilft das paresy weiter.

Dann bin ich ja schon mal froh, das ich nicht der einzige bin wo der Fehler auftritt.

Was ist aber „Child von Skript“ ?

Gruß Uwe

Uiuiuiui.

Child ist das was unterhalb eine Objektes steht.

Genauso wie Parent das übergeordnete Objekt ist.

Hallo, ich habe auch das hier beschriebene Problem. Habe nicht den Installer eingesetzt.
Frage an die Experten: kann man die Fehlermeldung - bis zur Behebung - einfach ignorieren oder sind da Seiteneffekte zu befürchten. (Mir ist bisher noch nichts aufgefallen).
Gruß Manfred

Der Fehler ist harmlos und kann weggeklickt werden. Ist im nächsten Update auch korrigiert.

paresy

Hallo alle zusammen.

Ich habe wahnsinnige Probleme mit der IPS Version 2.6.

Was funktioniert nicht:

1.Message Sink
Der Message Sink funktioniert nicht mehr richtig. Als Exeption bekomme ich „Out of memory“ oder „Kommunikation wurde abgebrochen“ oder „Die Session ist nicht mehr gültig“ (obwohl ich kontinuierlich abfrage. Danach geht es aber normal weiter. Was ich machen, musste (bei IgS und Visu) war die Bindung der Webservice neu generieren.

Edit:

Ich hatte heute die Exeption „Es steht zu wenig Speicher zur Verfügung“. Kann es sein das da einfach nur zu viel kommt was meine Variable in vb.net nicht aufnehmen kann?

2.Webfront
Das Webfront ist momentan meine Notlösung für die fehlende Visualisierung. Selbst diese Lösung stirbt nach einer gewissen Zeit. Dann steht im Browser nur noch „Out of Memory“.

3.HomeMatic Socket
Der HomeMatic Socket verliert nach ca. einem Tag die Verbindung zur CCU. Dann geht nichts mehr. Danach kann ich dann nur noch die CCU neu starten. Das war bei der 2.5 nicht so. Ein Fehlerprotokoll der CCU habe ich angehängt.

Ich bräuchte da mal Hilfe. Mir gehen die Ideen aus!! :o

Ich hatte ein ähnliches Problem (Out of Memory) Einige meiner Scripts sind recursiv und haben eine hohe payload.

Sie wurden über events von 15 Bewegungsmeldern aufgerufen und haben dann E-Mails verschickt und Homematic Devices angesteuert.

In bestimmten von mir nicht nachvollziehbaren Situationen und erst nachdem ich auf die 2.6 umgestiegen bin hatte ich einen „Out of Memory“

Mir ist dann klar geworden das meine Bewegungsmelder unzählige parallele threads vom gleichen script gestartet haben die alle das gleiche machen wollten und auf die gleichen Resourcen zugegriffen haben.

Lösung ist der Einsatz von Semaphoren : IPS_SemaphoreEnter — IP-Symcon :: Automatisierungssoftware

Vielleicht hilft Dir die Info

Ich habe noch eine Idee.

OWagner hat einen Watchdog für die Homematic CCU geschrieben der die RegaHSS überwacht.

Ich hatte diesen Fehler auch schon. Die Homematic lässt sich über das Web GUI bedienen aber die XML Kommunikation ist hinüber und der Socket in IPS tot

Hier ist der Link : HomeMatic-Forum / FHZ-Forum • Thema anzeigen - ReGaHSS-Watchdog Add-On

@BestEx

Besten Dank für deine Antwort.

zu den Post „IPS_SemaphoreEnter“

Ich habe ein Script von „meike0_0“ gefunden das da heisst „Funktion_TimeCompare“.
Dieses Script macht scheisse. Das habe ich erstmal deaktiviert. Mal sehen was das bringt.

Der Post mit der HomeMatic hört sich interessant an. Das schau ich mir an.

Nochmals dickes Dankeschön. Das hat mir schon mal geholfen! :slight_smile: