[Allegro] Avanti Server / Linux

Thomas Berger ThB at Gymel.com
Mi Mai 25 15:57:00 CEST 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Fischer,

> ich komme mal wieder mit einem Problem nicht weiter. Ich versuche,
> unsere HANS-Datenbank mit einem anderen Avanti-Server aufzurufen, das
> gelingt mir aber nicht. Ich benutze avanti Vers. 2.2.7 unter Linux.
> Ich versuche die Problem zu beschreiben:
> 
> Nach der Anpassung der config-Datei bekomme ich die folgenden Meldungen in meiner Log-Datei:
> 
> [2005-05-25 12:36:42]   (NOTE) <conn 11> opened from host 134.76.163.79
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> setting cpu time rlimit to 20
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> slave started (prefork = 1)
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> forking '/srv/avanti/avanti-2.2.7/bin/..//bin/avanti-cl'
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> forking '/srv/avanti/avanti-2.2.7/bin/..//bin/avanti-cl'
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> free(): invalid pointer 0x819ce40!
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> child exited with status 11
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> job done
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> forking '/srv/avanti/avanti-2.2.7/bin/..//bin/avanti-cl'
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> free(): invalid pointer 0x819ce40!
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> free(): invalid pointer 0x819ce40!
> [2005-05-25 12:36:42]  (SLAVE) <conn 11> slave finished (status 11)
> [2005-05-25 12:36:42]   (NOTE) <conn 11> closed
> 
> Ich gehe davon aus, dass "slave finished (status 11)" eine Fehlermeldung ist, weiß aber nicht, was sie heißt, vermute aber, dass sie mit "free(): invalid pointer 0x819ce40!" zu tun hat, was ich auch nicht verstehe.

Leider kann ich hierzu nichts sagen, Meldungen mit free() habe ich noch
nie erlebt. Normal ist leider, dass nach Aenderugnen in der avanti.conf
nichts mehr funktioniert, ohne dass es einen logischen Grund hierfuer
gaebe. Viel haengt wohl davon ab, auf welchen Zeichenoffsets der Datei
Zeilenumbrueche oder Kommentare stehen...


> Nebenbei:
> - müssen immer 2+1 Prozesse gestartet (geforked???) werden, wenn eine Anfrage durchgeführt wird?

Die Prefork-Option von avanti ist doch optimal: Gerade dann, wenn Avanti
eine Anfrage per neuer Verbindung bekommt, startet er ganz viele
parallele Prozesse. Damit spart er sich das Aufstarten der Prozesse,
wenn er ansonsten nichts zu tun haette => Fuer andere bleibt mehr
Kapazitaet.


> Ich habe den Server dann neu gestartet, bekomme jetzt aber immer noch
> [2005-05-25 14:21:00]  (SLAVE) <conn 0> hans.hdx not found in /srv/avanti/allegro/hansfree(): invalid pointer 0x819cb40!
> (Ein Zeilenwechsel hinter der Fehlermeldung wäre nützlich)

Da ist moeglicherweise ein Zeilenwechsel, leider ein CR und kein LF. Die
Meldung sind zwei und lauten evtl.:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxfree(): invalid pointer 0x819cb40!
[2005-05-25 14:21:00]  (SLAVE) <conn 0> hans.hdx not found in
/srv/avanti/allegro/hans



> Wenn ich die Logdatei etwas wortreicher einstelle, bekomme ich noch
> [2005-05-25 15:00:22]  (SLAVE) <conn 3> free(): invalid pointer 0x819cb48! <at avanti.c, line 586>
> 
> Vielleicht sagt das jemandem etwas?
> 
> Jedenfalls habe ich jetzt die Situation:
> Für jedes "forked" bekomme ich eine Meldung "invalid pointer 0x819cb40!
> slave finished (status 11)

Wenn man anonymen Access unterbindet, bekommt man ebenfalls fuer jedes
fork eine Fehlermeldung: Die auf Verdacht gestarteten avanti-cl-Prozesse
sind ja nicht vollstaendig initialisiert, da sie nie mit Angaben zur
gewuenschten Datenbank etc. gefuettert wurden. Evtl. haben die free()-
Meldungen also ebenfalls nichts mit Ihrem Problem zu tun.


> Außerdem liefert avanti beharrlich
> hans.hdx not found in /srv/avanti/allegro/hansfree(): invalid pointer 0x819cb40!
> obwohl
> /srv/avanti/allegro/hans/hans.hdx
> vorhanden und lesbar ist.
> 
> Wenn ich den Block
> 
> [hans]
> directory = /srv/avanti/allegro/hans
> konfiguration = hans
> indexparameter = hans
> access = 0
> opac=opac:0
> 
> aus der Konfigurationsdatei entferne, verschwinden auch die Fehlermeldungen.
> 
> Kann mir jemand weiterhelfen?

Vermutlich haelt avanti den Zeilenwechsel am Ende der Zeile
directory = /srv/avanti/allegro/hans
fuer einen Bestandteil des Pfadnamens. Gute Erfahrungen habe ich
mit Konstruktionen
directory = /srv/avanti/allegro/hans/        # blabla
gemacht.

viele Gruesse
Thomas Berger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFClIQsENVh3bB0lwMRAsxOAJ9CRzJIKK6UAZdjsjV1BLiqHrCIvACfccS3
Uhd7E2XvtCKtcELIvBCKYbc=
=/Ymo
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro