"Problem" mit der IPS-Console bei fehlerhaften Scripten

Hi!

Eben programmiere ich so vor mich her und dauernd beim Script ausführen stürzt mir die IPS-Console ab…nach weiterer Recherche konnte ich das Problem erkennen - ICH selbst bin es (also zum Teil) :smiley:

<?
for ($i = 0; i < 10; $i++)
{
	$value = $i;
	SetValue(12345, $value);   // Hier die ID einer INTEGER-Variable eintragen
}
?>

>> Mit diesem Script kann ich zuverlässig alle IPS-Consolen crashen lassen :smiley:

Man beachte das fehlende „$“ in der „for“ ( … i < 10 …).

Könnt ihr das irgendwie abfangen, damit die IPS-Console bei sowas nicht mehr crasht :slight_smile:

Grüße,
Chris

Habe noch ein Beispiel, aber mit einem etwas anderen Problem :smiley:

<?
for ($i = 0; $i < 10000; $i++)
{
	$value = $i * 2323.11 / 91.3;
	SetValue(12345, $value);   // Hier auch wieder eine Integer-Variable eintragen
}
?>

Damit crasht die IPS-Console auch bei jedem Ausführen wunderbar :smiley: :smiley:

Die Console crasht auch, wenn man „SetValue(12345, $value);“ durch „SetValue(12345, (int)$value);“ ersetzt :slight_smile:

Nimmt man bei der for „$i < 1000“, dann crasht die Console nicht :slight_smile:

Grüße,
Chris

PS: Die Berechnung war nur ein Test aus Neugier :smiley: …ich berechne zwar komische Sachen, aber nicht so komische :smiley:

Da crasht nix bei mir… 57ms Ausführungszeit.

Du must nur die Meldung von der Console richtig deuten:

(Der Bereich der Nachricht ist größer als der Nachrichtenpuffer)

Schalte entweder den VariableWatch aus, oder stell den Nachrichtenpuffer (Message Ring Buffer Size) viel größer.

Das wird auch nie zu beheben sein, da du mit deinen ganzen SetValues die MessageQueue flutest.
IPS selbst kann das ab und da passiert auch nix, der Dienst macht das mit.
Nur deine Console ‚erstickt‘ quasi an den ganzen Nachrichten welche du durch IPS jagst.

Michael

Bei mir „crasht“ zuverlässig die Console (oben kommt der nette rote Balken mit „Neu verbinden“).

Message Ring Buffer steht auf dem default Wert — 8192

Wie du sicher gelesen hast, ist mir schon bewusst, dass da ein Fehler im Script ist usw…
Aber wenn man munter am programmieren ist, hat einige Tabs offen, hat einen Tippfehler, führt das Script aus, die Console „crasht“, man muss neu verbinden und alle Tabs sind zu…dann JA - ist das seine eigene Schuld und doof.
Aber trotzdem kann ich ja mal nachfragen, ob IPS das vlt. irgendwie abfangen kann, dass die Console dabei eben nicht „crasht“ und nur einen Fehler ausgibt. Wäre schön :slight_smile: Wenn nicht, auch ok :slight_smile: Fragen kost nix :slight_smile:

Grüße,
Chris

Du kannst dennoch die Scripte speichern, das geht solange der Dienst noch läuft, auch wenn da oben der rote ‚böse‘ Balken ist.
Ich habe natürlich nicht das kaputte Script ausgeführt :rolleyes:


Michael

Du musst schon das „kaputte“ Script ausführen :smiley:

Mit dem Speichern is mir bewusst…aber
1.) Hab ich mir so schon mal Stunden an Arbeit eingehandelt, weil dabei ein Script von IPS „kaputtgeschrieben“ wurde (waren nur noch X von Y Zeilen übrig und dann einfach Ende vom Script)
2.) Ich bequem bin und nicht alle Tabs neu öffnen will :smiley:

Grüße,
Chris

Wie bewiesen crash da nix, das ist nur eine Meldung von der Console…

Okay… wenn du meinst.
Und was ist da das Problem ?
Funktioniert wunderbar:


Kein Crash.

Michael

Screenshot…kann ich auch :smiley: Hübsches rot, oder? :slight_smile:

Grüße,
Chris

Und wieder kein Crash, sondern nur die Meldung von deiner Console, weil die 10000 SetValue den Nachrichtbuffer deiner Console fluten.

Wenn du so einen Quark (10000 Mal SetValue) machst, dann musst du schon VariableWatch in IPS ausschalten.
Sonst bekommt du ja pro Durchlauf des Script auch 10000 Zeilen im Log.
Michael

Wie ich sagte >> nur ein Test aus Neugier und nichts was ich wirklich mache… Du musst schon auch lesen was ich schreibe :stuck_out_tongue_winking_eye:

-Chris-

Wie Michael schon sagte: Wir können dort nicht viel machen, da du den internen Nachrichtenpuffer flutest und die Konsole im Prinzip keinen Konsistenten zustand mehr gewährleisten kann und dich auffordert diese Konsole neu zu starten, um eben diesen Zustand wiederherzustellen.

paresy

Schade! Naja, hät ja seinen können, dass man das irgendwie abfangen kann… Dann weitermachen :slight_smile:

-Chris-

Du kannst in den Spezialschaltern den Wert von 8192 auf einen mega hohen Wert anheben. Das verzögert den Problemfall auf kleine Kosten vom Arbeitsspeicher :smiley: Die Konsole kann dann aber für den Moment laggy wirken :slight_smile:

paresy