[Allegro] avanti(linux) too many ci_open()s failed in avanti.c, line 542

Thomas Berger ThB at Gymel.com
Mi Jan 4 18:29:37 CET 2012


Am 04.01.2012 16:27, schrieb Klaus Lehmann:

> kann man dann nicht eine art "timeout" einbauen, der solche endloswartenden 
> oder sagen wir: maximal_nicht_länger_als_1-minute_wartendenen prozesse 
> killt?
> natürlich in der con(f) einstellbar. ich kann mir durchaus situationen 
> vorstellen, wo avanti oder acon (acon ist es wohl) doch viele minuten 
> bewusst warten sollen!....?

avanti kennt ein solches Timeout, urspruenglich hat das avanti
wohl auf seine Arbeitsthreads angewandt, ich fuer die aktuellen Versionen
habe jetzt nicht in den Sourcen nachgeschaut, ob damit avanti seine slaves
ueberwacht oder die slaves die zugehoerigen acons. Ich kann allerdings
beisteuern, dass das Feature bei gewissen Versionen um 2010 / 2011
nicht funktionierte, irgendwelche Prozesse liefen ewig und frassen
alle verfuegbaren CPU-Zyklen (dann war es wohl acon), bis sie manuell
gekillt wurden.


> ich weiss, daß apache sowas kann: irgendwo stand in (welchen?) logs:
> apache beendete einen "long waiting" prozess. oder so.

http://httpd.apache.org/docs/2.2/mod/core.html#timeout

Bei Ihnen steckt allerdings noch php (als cgi oder via mod_php?)
dazwischen...


>> Das urspruengliche Fehlerbild (avanti kann keine weiteren Slave-
>> Prozesse kreieren?) kann schnell entstehen, wenn einzelne Requests
>> nicht mehr Bruchteile von Sekunden, sondern mehrere Minuten
>> aktiv sind...
> 
> das muss/kann ein neues verhalten sein. denn beim alten (2 jahre 
> alten?!) habe ich es nicht beobachtet.....

Was aber nicht den Rueckschluss erlaubt, dass es neue Probleme sind:
Irgendetwas arbeitet nicht so, wie es soll und die unterschiedlich
alten Module reagieren unterschiedlich darauf: Die einen stuerzen
evtl. ab, die anderen "haengen sich auf" oder es gibt minimalen
vs. gar keinen Output...

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro