Server 4 und "fsockopen" problem ???

Alles was sonst nirgendwo reinpasst ;-)
Knuddelmonster
Beiträge: 69
Registriert: 11.02.2010, 18:10
Wohnort: Österreich
Kontaktdaten:

Server 4 und "fsockopen" problem ???

Ungelesener Beitrag von Knuddelmonster » 20.01.2011, 10:49

Ich hoffe das ich hier richtig einmal richtig bin, aber ich wusste nicht genau wo ich dieses Thema hinstellen soll.

Wie schon der Titel sagt, habe ich zum Chatserver4 eine Frage.
Das Problem trat das erste mal am 18.01.2011 um 14:00 Uhr auf, der "WKmultiBot" brach die Verbindung zum Chat ab, lies sich aber nach 10 Minuten wieder Online nehmen, ich dachte mich mir eigentlich nichts weiter dabei.

Gestern am 19.01.2011 um genau 14:01 Uhr das gleiche spiel, der "WKmultiBot" bekommt keine Verbindung mehr, und um 14:44:53 Uhr war mein Linuxserver platt (tot) !

Warum er Tot war möchte ich hier nun als Frage stellen, den so wie es aussieht dürfte das mit dem "Server4" und dem "fsockopen" Befehl in zusammenhang stehen, welcher dazu bei mir genutzt wird eine Art "Wer ist im Chat Online" - Liste zu erzeugen.

Dieser Befehl erzeugte in der PHP-Datei wo er eingesetzt ist einen Fehler (siehe "error-log-file" meines Server´s)
Script:Zeigen
[Wed Jan 19 14:01:00 2011] [error] [client IP-entnommen] PHP Warning: fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: unable to connect to server4.webkicks.de:80 (Connection timed out) in /var/www/html/chat/php/wio_all.php on line 93, referer: (URL: entfernt)
Nach diesen missglückten Aufruf gab es diese weiteren Eintragungen im "error-log" meines Server´s
Script:Zeigen
[Wed Jan 19 14:01:00 2011] [error] [client IP-entnommen] PHP Warning: fputs(): supplied argument is not a valid stream resource in /var/www/html/chat/php/wio_all.php on line 95, referer: (URL: entfernt)
[Wed Jan 19 14:01:00 2011] [error] [client IP-entnommen] PHP Warning: feof(): supplied argument is not a valid stream resource in /var/www/html/chat/php/wio_all.php on line 97, referer: (URL: entfernt)
[Wed Jan 19 14:01:00 2011] [error] [client IP-entnommen] PHP Warning: fgets(): supplied argument is not a valid stream resource in /var/www/html/chat/php/wio_all.php on line 98, referer: (URL: entfernt)
[Wed Jan 19 14:01:00 2011] [error] [client IP-entnommen] PHP Warning: feof(): supplied argument is not a valid stream resource in /var/www/html/chat/php/wio_all.php on line 97, referer: (URL: entfernt)
[Wed Jan 19 14:01:00 2011] [error] [client IP-entnommen] PHP Warning: fgets(): supplied argument is not a valid stream resource in /var/www/html/chat/php/wio_all.php on line 98, referer: (URL: entfernt)
[Wed Jan 19 14:01:00 2011] [error] [client IP-entnommen] PHP Warning: feof(): supplied argument is not a valid stream resource in /var/www/html/chat/php/wio_all.php on line 97, referer: (URL: entfernt)
Diese Einträge wären ja halb so schlimm wenn sie nicht über 4 Millionen mal geschrieben wurden ( bis 14:44:53 Uhr ) wo das "error-log-file" dann eine Größe hatte von 986 MB und sich der Server mangels erlaubten Speicherplatz abschaltete und die HP offline ging !

Der Code der aufgerufenen PHP-Datei die das verursachte sieht so aus (läuft unverändert seit Oktober 2010 !!!) ...
Script:Zeigen
<?php
$server = 4;
$cid = "knuddelmon";
$raum="";
if($raum && $raum != ""){
$raum = "&raum=$raum";
}
$ol="";
$fp = fsockopen("server4.webkicks.de", 80, $errno, $errstr, 30);
if(!$fp)echo "OL konnte nicht abgefragt werden";
fputs ($fp, "GET /cgi-bin/raw.cgi?cid=$cid$raum HTTP/1.0\r\nHost: server4.webkicks.de\r\n\r\n");
$chk=0;
while (!feof($fp)) {
$tmp=fgets($fp);
if($chk)$ol .= $tmp;
if(!$chk && preg_match("/^\s*$/", $tmp))$chk=1;
}
preg_match_all("/\(([^\)]+)\)/", $ol, $result);
$onlineUsers = $result[1];
foreach($onlineUsers as $u){
echo "<span class=\"text1\">&nbsp;*&nbsp;$u</span><br>";
}
?>
Meine Frage nun, kann es sein das Server4 ein problem hat oder hatte, oder das ganze ein reiner Zufall war ?
Ich möchte nicht heute wieder 2 Stunden mit meiner Server-Hotline verbringen um meine HP zum laufen zu bringen, inklusive der SQL Datenbank des Forums welche sich durch diesen Vorfall ebenfalls abschaltete !

Es grüßt das Knuddelmonster

1. FC Keller
Moderator
Beiträge: 866
Registriert: 04.07.2004, 17:10
Wohnort: heimat:// Thüringen.Deutschland.eu/ Zeulenroda
Kontaktdaten:

Re: Server 4 und "fsockopen" problem ???

Ungelesener Beitrag von 1. FC Keller » 20.01.2011, 14:17

Hallo,

was/ob etwas mit dem Server war habe ich keine Ahnung... du kannst aber in dem Script derartige Fehler abfangen... Es istsogar schon eine if-abfrage dazu da... nur der else-Zweig fehlt:
Script:Zeigen
<?php
$server = 4;
$cid = "knuddelmon";
$raum="";
if($raum && $raum != ""){
$raum = "&raum=$raum";
}
$ol="";
$fp = fsockopen("server4.webkicks.de", 80, $errno, $errstr, 30);
if(!$fp){
echo "OL konnte nicht abgefragt werden";
}
else{
fputs ($fp, "GET /cgi-bin/raw.cgi?cid=$cid$raum HTTP/1.0\r\nHost: server4.webkicks.de\r\n\r\n");
$chk=0;
while (!feof($fp)) {
$tmp=fgets($fp);
if($chk)$ol .= $tmp;
if(!$chk && preg_match("/^\s*$/", $tmp))$chk=1;
}
preg_match_all("/\(([^\)]+)\)/", $ol, $result);
$onlineUsers = $result[1];
foreach($onlineUsers as $u){
echo "<span class=\"text1\">&nbsp;*&nbsp;$u</span><br>";
}
}
?>
Dadurch wird der Befehl fputs nur angewendet wenn auch erfolgreich eine Verbindung zum Chatserver hergestellt wurde und die Warnings entfallen.
Wie aber 4 Millionen Logeinträge zustande kommen... das ist etwas mysteriös... hast du so viele Seitenaufrufe? Das belastet ja sowohl den Chatserver als auch deinen eigenen enorm.

Knuddelmonster
Beiträge: 69
Registriert: 11.02.2010, 18:10
Wohnort: Österreich
Kontaktdaten:

Re: Server 4 und "fsockopen" problem ???

Ungelesener Beitrag von Knuddelmonster » 20.01.2011, 14:46

@re: 1.FC Keller

Erst mal danke für deine Erklärung und auch Änderungsvorschlag, werde diesen sofort umsetzen.

Zum Problem von gestern.

Laut der "error-log" Datei war die Abfrage um 14:01:00 laut Protokol nicht erfolgreich (von meiner IP aus), was dann die weiteren Einträge in dieser Datei zufolge hatte (ebenfalls von meiner IP), ob nun eine Abweisung des "fsockopen" von meinen Server erfolgte oder vom Server4 hier kann ich leider nicht nachvollziehen.
Die Eintragungen liefen dann bis 14:44:53 Uhr (jede Zeile hat meine IP als Anfrag) - dort brach dann mein Server wegen der inzwischen mit über 4 Millionen Zeilen grossen "error-log" Datei zusammen, die Datei hatte um diese Zeit eine grösse von wie gesagt 986 MB, da der Server selber nur 1100 MB gross ist und natürlich auch andere Sachen dort gespeichert sind ( auch eine SQL-Datenbank für mein Forum ) streikte dieser bei einem Füllstand von 103% - er ging in den "offline-status" inklusive der SQL-Datenbank.
Das grösste Problem war aber das ich selber die "error-log" Datei nicht ansprechen konnte (Löschen oder Editieren), da diese geöffnet am Server lag und ich über kein Programm einen Zugriff hatte (nur ein Download funktionierte).
Da mir ja durchaus auch eine Serverlast bekannt ist, möchte ich natürlich solche Abstürze in Zukunft vermeiden, daher auch hier meine Nachfrage, den ich glaube kaum das es in meinem Sinn noch der von WebKicks ist das ich durch so einen Fehler unnötige Serverlast erzeuge, es liegt glaube ich in keinem Interesse beiderseit, daher bin ich diesen Problem auch auf der Spur um eine Wiederholung zu vermeiden ...

So, erst mal danke für die Erweiterung, die ich nun Einfüge bei meinen "Raumabfragen"

LG vom Knuddelmonster
PS: :lol: Enorm lustig war auch, wie bekommt man eine Textdatei mit 986 MB geöffnet, und wie schnell findet man die Stelle die den Absturz verursachte bei 4.095.370 Zeile :lol:

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 28 Gäste