Apache 2 öffnet dateien zu lange!?!

Apache, Lighttpd, nginx, Cherokee
pyr0t0n
Posts: 11
Joined: 2006-04-08 21:45

Apache 2 öffnet dateien zu lange!?!

Post by pyr0t0n » 2007-05-20 19:56

Also, leider muss ich weit ausholen.

Und zwar betreibe ich ein Browsergame welches halt mindestens PHP 5.1 + PDO brauch. Es basiert auf einer Dateibasierten DB nämlich sqlite und eine selbst kreierten Dateibasierten DB.

Nun ist es so das der Apache2 server sich ziemlich lange an den Spielerfiles aufhält und diese Spieler sich dann aufgrund eines Datenbankfehlers nicht einloggen könne. Rausgefunden habe ich das indem ich den Spieler der sich nicht einloggen konnte mit "lsof | grep Spielername" getracet habe dies bringt dann folgende ausgabe.

apache2 21662 www-data 12uW REG 0,91 3046 26579397 /var/www/virtual/pyr0soft.de/htdocs/db1/players/bushido

wobei bushido der spielername ist welcher halt variiert.

Welche möglichkeiten hab ich das wieder vernümpftig hinzubekommen es lief nämlich mal einwandfrei.

Ich muss also immer den Apache2 restarten damit sich der bzw die betroffenen Spieler wieder einloggen können. Und das zum großteil im 30sek bis 2min Takt welches recht nervig ist.

Hat einer da vllt ne lösung parat? In der Log steht leider nichts drin was auf diesen Fehler zurückzuführen wäre.

Schonmal Vielen dank,

MFG

pyr0t0n

aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main

Re: Apache 2 öffnet dateien zu lange!?!

Post by aubergine » 2007-05-20 20:21

Was macht ein Webserver in der Datenbank?

Ich nehme mal an da läuft was mit deinem PHP Code schief.

pyr0t0n
Posts: 11
Joined: 2006-04-08 21:45

Re: Apache 2 öffnet dateien zu lange!?!

Post by pyr0t0n » 2007-05-20 20:28

naja in den userfiles wie oben angeben das ist für jeden benutzer eine datei. Diese sind aber zusätzlich noch bz2 komprimiert, loggt sich ein user nun ein wird die datei geöffnet und normalerweise das PW ausgelesen.

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Apache 2 öffnet dateien zu lange!?!

Post by oxygen » 2007-05-20 20:40

So lange die Datei zum schreiben geöffnet ist, werden nunmal andere Prozesse gelockt.

pyr0t0n
Posts: 11
Joined: 2006-04-08 21:45

Re: Apache 2 öffnet dateien zu lange!?!

Post by pyr0t0n » 2007-05-20 20:53

ja problem ist die ist bis zu 24 stunden zum schreiben geöffnet sind es vorher aber mal ging nur hatte ich da so nen beschissenes Debian system das ich gesagt hab ich mache einmal neu und spiele Halt apache + PHP inkl PDO wieder af und seit dem sind die probleme da die dateinen sind halt erst wieder zu wenn ich den apache restarte...

habe mal ne phpinfo geupt

http://www.pyr0soft.de/phpinfo.php

dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Re: Apache 2 öffnet dateien zu lange!?!

Post by dtdesign » 2007-05-20 21:03

Schieb es ruihg auf den Apache... bist du dir gaaaaanz sicher, dass du auch ein fclose() machst, oder lässt du die Handles einfach im Speicher, in der Hoffnung, dass irgendwann ein lieber GC vorbei kommt und dies bemerkt?

Kann mir nicht vorstellen, dass der File solange im Speicher bleibt, wenn du den mittels fclose schließt...

Gruß
dtdesign

pyr0t0n
Posts: 11
Joined: 2006-04-08 21:45

Re: Apache 2 öffnet dateien zu lange!?!

Post by pyr0t0n » 2007-05-20 21:05

ich schiebs nur auf den apache weil ichs net besser weiss wie oben schon geschrieben LSOF gibt mir als Prozess den apache2 an natürlich kann auch sein das PHP daran hängen bleibt immerhin wirds bei mod_php trotzdem der apache2 als prozess angegeben.

rootsvr
Posts: 538
Joined: 2005-09-02 11:12

Re: Apache 2 öffnet dateien zu lange!?!

Post by rootsvr » 2007-05-21 15:05

Du hast ein eigenes seltsames (aber natürliches besseres) DB System installiert, weil Du wie jeder andere PHP Programmierer weißt wie man eine richtige, bessere Datenbank programmieren muß. Dann bleibt dank Deiner PHP oder Datenbank Kenntnisse irgendwo mal was stehen und dann ist der Apache schuld?

Sorry wenn das jetzt überspitzt klingt, aber ich hab schon so viele Leute erlebt die meinten "Es ist besser, weil ich es gemacht habe" und dann von der Theorie (z.B. locking) keinen Plan haben.

Generell halte ich von deiner bz2 komprimierung nichts, solange Du genug Speicherplatz hast. Du kannst komprimierte Daten nicht durchsuchen, nicht indizieren, nicht schnell darauf zugreifen und hast noch zusätzlihen CPU overhead beim (temporären) entpacken.

Vielleicht hast Du auch die überlösung, aber es erinnert mich an meine Kollegen die meinen sie könnten durch hinzufügen von 2 Checksummen IPSec noch sicherer machen und es als neues Produkt verkaufen. Oder die Idee XML zu nehmen (weil es jeder macht und es cool ist) und diese xmls dann in blobs in einer DB zu speichern. Womit das die gleichen Probleme hatte wie ich oben angesprochen habe: Keine Indizierung kein schneller Zugriff usw.. zum Glück sind sie nach Kritik davon abgekommen..

Apache hält meiner Erfahrung nach Dateien solange offen wie er das braucht, warum er jetzt da abgeschmiert ist, oder da auf irgendetwas wartet liegt sicher ausserhalb des Einflußbereichs des Apache und mehr in deinen Scripten.

pyr0t0n
Posts: 11
Joined: 2006-04-08 21:45

Re: Apache 2 öffnet dateien zu lange!?!

Post by pyr0t0n » 2007-05-21 15:47

hack net auf meinen scripten rum denn es sind noch nichtmal meine ^^ das spiel an sich ist opensource und es treten in einer nicht modifizierten original version diese probleme auf.

eigentlich hab ich hier nach hilfe gesucht, da ich mit meinem Server latein am ende bin, werde aber hingegen hier nur komisch von der seite angefahren...

blattlaus
Posts: 52
Joined: 2007-03-08 13:45

Re: Apache 2 öffnet dateien zu lange!?!

Post by blattlaus » 2007-05-21 16:23

Du hast Hilfe bekommen.
a) Der Fehler ist zunächst im Script zu suchen
b) Der Fehler ist in PHP zu suchen

Ich bin mir relativziemlichfastganz sicher, dass eine dieser beiden Komponenten in dem Zusammenspiel das verbockt.

Da ich nichts weiß als die PHP-Version und die Tatsache, dass das Spiel sqlite benutzt, rate ich einfach mal drauf los:
Du benutzt fastcgi + php und das PHP Script das aufgerufen wird, schließt die Filehandle nicht korrekt.

dtdesign
Posts: 391
Joined: 2006-09-05 21:12
Location: Berlin

Re: Apache 2 öffnet dateien zu lange!?!

Post by dtdesign » 2007-05-21 17:00

Blattlaus wrote:Du benutzt fastcgi + php und das PHP Script das aufgerufen wird, schließt die Filehandle nicht korrekt.
Ja, das nehme ich auch an, rein von der Logik her. Aber ich habe das Gefühl, dass dies überlesen wurde:
dtdesign wrote:[...] bist du dir gaaaaanz sicher, dass du auch ein fclose() machst, oder lässt du die Handles einfach im Speicher, in der Hoffnung, dass irgendwann ein lieber GC vorbei kommt und dies bemerkt?
@pyr0t0n: Ich kann mich Blatlaus nur anschließen, du hast Hilfe bekommen, akzeptierst aber nicht die Tatsache, dass der Fehler egtl. nur seitens des Scripts/PHP auftreten kann.

Wir helfen dir gerne, dafür musst du aber a) bereit sein dir helfen zu lassen und eventuell auch b) relevante Code-Ausschnitte posten, damit wir dir auch helfen können.

Mit Ignoranz kommst du weder hier noch im normalen Leben weiter.

Gruß
dtdesign

pyr0t0n
Posts: 11
Joined: 2006-04-08 21:45

Re: Apache 2 öffnet dateien zu lange!?!

Post by pyr0t0n » 2007-05-21 18:49

das problem was mich ja stuztig macht, ist das es vorher einwandfrei lief und auch bei anderen ohne probleme läuft wie gesagt es ist opensource und es sind ein paar installationen vorhanden.

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Apache 2 öffnet dateien zu lange!?!

Post by Roger Wilco » 2007-05-21 19:25

pyr0t0n wrote:das problem was mich ja stuztig macht, ist das es vorher einwandfrei lief und auch bei anderen ohne probleme läuft wie gesagt es ist opensource und es sind ein paar installationen vorhanden.
PHPNuke ist auch OSS und es sind ein paar Installationen vorhanden. Trotzdem ist es ein ziemlicher Dreck*. Schau nach, was du genau zwischen dem Funktionieren und Nichtfunktionieren geändert hast.

Relevante Code-Abschnitte, Konfigurationsschnippsel o. ä. ähnliches hast du immer noch nicht genannt. Genausowenig bist du auf die Idee gekommen, das Skript mal mit einem Debugger à la APD oder XDebug zu untersuchen.

*: Meine Meinung. Muss nicht jeder teilen

pyr0t0n
Posts: 11
Joined: 2006-04-08 21:45

Re: Apache 2 öffnet dateien zu lange!?!

Post by pyr0t0n » 2007-05-21 22:23

naja eigneltich habe ich gegen "never change a running system" verstoßen und habe um den server ein wenig zu entwirren eine reinstall gemacht ^^ und seit dem treten die obengenannten probleme auf.

hatte eine so kreuzüberdrunterdurch kofing das einges schon startprobleme hatte und da hab ich mir gedacht machste mal neu ^^

So ich wünsch euch allen eine gute nacht ich meld mich morgen nochmal. habe php nun mal von hand kompiliert anstatt die debian pakete genommen zudem den neusten apache drauf. vllt hats ja geholfen.

danke nochmal an alle.