Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7416[/thread]

flock() & apache

Leser: 2


<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten
Froschpopo
 2005-11-01 16:03
#59510 #59510
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ist eigentlich egal was fürn dateihandling ich mache... aber der dateischutz flock() scheint irgendwie bei großem serverbetrieb zu versagen !
Ich habe schon so einige Beispiele aus dem Internet (von den verschiedensten sites) bezogen und ausprobiert, aber selbst beim einfachen Counter ist irgendwann die Datei einfach leer.
Das Phänomen tritt eigentlich nur ein, wenn besonders hoher Betrieb auf meinem Apache server besteht, meistens so ab 7 Requests pro Sekunde. Danach sind einige Dateien in die von den Scripten geschrieben wird leer.
Kann das sein, dass so das mit den multithreads vom apache2 zusammenhängt oder so? Könnte doch theoretisch sein, dass sich da etwas überschneidet oder?
Oder gibts da für den Apache irgensoeine Sonderregelung fürs Locking?

liebe grüße
GwenDragon
 2005-11-01 16:30
#59511 #59511
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
Zwischen open() und flock() könnte es bei viel Betrieb vielleict eine Race-Condition geben.
pq
 2005-11-01 17:05
#59512 #59512
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
@froschpopo: ich würde sagen, der fehler liegt in zeile 41, wobei meine glaskugel
heut nicht ganz so doll funktioniert, also vielleicht ist es auch zeile 42.

edit: Wiki:den wiki-artikel dazu hast du gelesen, ja?\n\n

<!--EDIT|pq|1130857614-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
GwenDragon
 2005-11-01 21:44
#59513 #59513
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
sysopen() ist auch ziemlich sicher für Sperren.
pq
 2005-11-01 22:34
#59514 #59514
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=GwenDragon,01.11.2005, 15:30]Zwischen open() und flock() könnte es bei viel Betrieb vielleict eine Race-Condition geben.[/quote]
wie meinst du das?
erst das flock() sperrt die datei, vorher sollte man keine annahmen
machen.
und flock() selbst ist atomar.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
betterworld
 2005-11-02 01:13
#59515 #59515
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Ich wuerd auch sagen: Du benutzt flock einfach falsch. Zeig etwas Code, dann koennen wir drueber diskutieren.

Und dass es nur bei großem Load auftritt, ist ja klar, denn das haben Race Conditions so an sich.
Froschpopo
 2005-11-02 08:19
#59516 #59516
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
open(FILE, ">/srv/www/htdocs/tables/rows/base.csv") or die $!;
flock FILE, 2;
print FILE @cont;
flock FILE, 8;
close(FILE);
\n\n

<!--EDIT|Froschpopo|1130913002-->
renee
 2005-11-02 09:19
#59517 #59517
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn dann in @cont nix drin ist, ist die Datei leer...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Froschpopo
 2005-11-02 10:08
#59518 #59518
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich habs mit nem minimalscript gemacht:
Code: (dl )
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

@cont = ("asidjaoisdhaiosdhaiushdiuashds");

open(FILE, ">/srv/www/htdocs/tables/rows/base.csv") or die $!;
flock FILE, 2;
print FILE @cont;
flock FILE, 8;
close(FILE);

jetzt heute morgen ist nicht soviel los, aber gestern abend hatte ich fast 20 requests pro Sekunde und da war auch dieses einfache Script irgendwann überfordert mit und hat die Datei geleert.
esskar
 2005-11-02 11:39
#59519 #59519
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
lass mal bitte das letzte flock weg!
siehst du, hast es doch falsch verwendet!
<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten



View all threads created 2005-11-01 16:03.