Moin!
Schau Dir das Script http://bitworks.de/~selfHTML/speichern.php an. Da ist ein Aufrufzähler enthalten.
Der nicht ordentlich funktioniert. Kein Filelocking... sehr böse!
Da hat sich auch wirklich jemand Mühe gegeben:
...und Erfolg gehabt. Der Zähler wurde überschrieben.
217.228.159.83 - - [21/Dec/2003:19:09:26 +0100] "POST /~selfHTML/speichern.php HTTP/1.0" 200 1246
Und das über 200 Mal in 3 Sekunden!
Richtig. Speichern einer Textdatei geht zwar schnell, aber nicht unendlich schnell. Wenn man da ein gegenseitiges Überschreiben durch zwei gleichzeitige Prozesse verursachen will, muß man schon man ein paar mehr gleichzeitig starten.
Aber wo du Recht hast, hast Du Recht. Also zwischen dem konkurrierenden Lesen und dem Schreiben muss auf Vorverwendung geprüft werden.
Würde mich nun nur noch interessieren, wie dieses Testprogramm aussieht, das den fehler provoziert hat.
Das wird mit Apache mitgeliefert und hört auf den simplen Namen "ab" für Apache Benchmark. Wobei es im Prinzip nicht auf Apache fixiert ist, sondern einfach nur beliebig viele HTTP-Requests (davon auch gerne welche gleichzeitig) an eine URL sendet.
Tausend Requests, je 10 Stück gleichzeitig - und dein Zähler wurde zurückgesetzt.
- Sven Rautenberg
Die SelfHTML-Developer sagen Dankeschön für aktuell 20885,68 Euro Spendengelder!