hi, habe nun selbst mal ein problem, weiß allerdings nicht, ob der fehler bei mir, oder meinem provider liegt.
das problem:
habe ein php-script, daß pro eintrag 3 dateien erstellt und eine ändert. allerdings wird eine der dateien seltsamerweise manchmal leer oder überhaupt nicht erstellt, ich habe also entweder eine datei mit 0byte, oder sie fehlt komplett. seltsamerweise verändern sich auch ständig die attribute der dateien (rwx). fehlermeldung erscheint keine. erstellt werden die dateien über fopen ("$name","w+"), geschrieben mit fwrite und geschlossen natürlich mit fclose.
habe auch schon versucht über chmod jedes mal neu die rechte zu setzen, endet aber mit fehlermeldung: chmod not allowed.
komischerweise habe ich manchmal ein ähnliches problem bei ftp, daß mit kopierte dateien mit 0byte erstellt werden.
für tipps wär ich echt dankbar.
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
kann es sein das die platte einen schlag weg hat?
WM_QUERY
thomas woelfer
kann ich leider nicht beurteilen, da es die platte auf dem server meines providers ist. mein zweiter account läuft problemlos, könnte eventuell also wirklich an der platte liegen. komischerweise läuft es meistens, nur kommt es häufiger vor, wenn 2 posts in folge geschickt werden. muß ich in dem fall eventuell den variablencache erst leeren?
das die platte defekt sein koennte war mein gedanke, weil du sagtest du hast auch probleme beim ftp.
wenn das problem hauptsaechlich dann eintritt wenn zwei posts 'gleichzeitig' stattfinden, dann kann das problem natuerlich auch einfach nur eine racing condition sein: der eine prozess hat die datei zum schreiben geoeffnet und schreibt rein waehrend der andere versucht die datei zu oeffnen. der zweite darf aber nun nicht, weil der erste die datei ja bereits geoeffnet hat.... das kann dann natuerlich zu allen moeglichen problemen fuehren, wenn man diesen fall nicht explizit behandelt. (ein guter grund daten in einer datenbank anzulegen, denn die kuemmert sich selbststaendig um die behandlung solcher probleme...)
WM_HOPETHISHELPS
thomas woelfer
sorry, hatte mich mißverständlich ausgedrückt, der fall einer parallelen bearbeitung ist ausgeschlossen, geschrieben werden kann erst, wenn die datei korrekt geschlossen wurde. es tritt auf, wenn kurz hintereinander die posts geschickt werden, also sagen wir mal wenn zwischen posten, vorschau, speichern und erneut posten weniger als 5 minuten vergehen. aber ich vermute mittlerweile auch eher ein problem beim provider, lokal auf meinem testserver läuft´s wie geschmiert.
Hmm, Dein Provider wird doch wohl nicht fünf Minuten zum Bearbeiten eines einfachen PHP-Skriptes brauchen? Ich habe mich nie darauf verlassen, daß PHP die Dateien ordentlich sperrt und freigibt, daher benutze ich immer den manuellen Befehl. Nach dem Öffnen sperre ich eine Datei komplett und vorm Schließen gebe ich die wieder frei. Nur in Ausnahmefällen setze ich eine Datei auf "read-only". Dumm ist nur, wenn zwei verschiedene Threads auf dieselbe Datei zugreifen. Dann funzt das nicht. Wenn Du also beispielsweise zwei Skripte hast, die gleichzeitig auf eine Datei zugreifen. "Systemweites-Locking" ist mir, außer bei DBs, noch nicht untergekommen. chmod funktioniert deshalb nicht, weil PHP wahrscheinlich im Webserver (Apache) läuft und der nur mit minimalen Rechten ausgestattet ist. chmod oder chown gehören definitiv nicht dazu.
> (ein guter grund daten in einer datenbank anzulegen, denn die
> kuemmert sich selbststaendig um die behandlung solcher probleme...)
Das geht aber nur, wenn "locking" vom OS unterstüzt wird und bei der Datenbank aktiviert ist ;)