Hallo, seit dem Update von Suse 8.1 auf 9.0 habe ich Probleme mit dem Apache. Beim Booten wird er offensichtlich nocht gestartet, denn Fehlermeldungen gibt es nicht. Manchmal bleibt er dann auch am Leben, so dass ich im Browser Seiten aus public_html aufrufen kann. Aber manchmal geht das auch nicht, und dann sagt ein "rcapache status", dass der httpd "dead" sei. Ein "rcapache start" laesst ihn dann aber wiederbeleben. Irgendwelche dem apache/httpd zuzuordnende Meldungen in den Log-Dateien kann ich nicht finden. Und das macht die Fehlersuche natuerlich schwierig. Installiert sind uebrigens apache-1.3.28-60 und apache-contrib-1.0.9-809. Die Frage ist nun, wo ich mit der Fehlersuche beginnen koennte. Beste Gruesse, Heinz. -- http://www.pahlke-online.de/reisenews/ http://www.Pahlke-KunstWebDesign.de/
On Sun, May 16, 2004 at 11:17:06AM +0200, Heinz W. Pahlke wrote:
Hallo,
seit dem Update von Suse 8.1 auf 9.0 habe ich Probleme mit dem Apache.
Beim Booten wird er offensichtlich nocht gestartet, denn Fehlermeldungen gibt es nicht.
_Noch_ gestartet? _Nicht_ gestartet?
Manchmal bleibt er dann auch am Leben, so dass ich im Browser Seiten aus public_html aufrufen kann.
Aber manchmal geht das auch nicht, und dann sagt ein "rcapache status", dass der httpd "dead" sei. Ein "rcapache start" laesst ihn dann aber wiederbeleben.
Also soll das jetzt heissen, dass es vorkommt, dass der Apache nach dem Booten eindeutig laeuft, er aber ein bisserl spaeter auf einmal tot ist?
Irgendwelche dem apache/httpd zuzuordnende Meldungen in den Log-Dateien kann ich nicht finden. Und das macht die Fehlersuche natuerlich schwierig.
In /var/log/httpd/*_log sollten _saemtliche_ Meldungen dem Apache zuzuordnen sein ;) Schon dort nachgeschaut?
Installiert sind uebrigens apache-1.3.28-60 und apache-contrib-1.0.9-809.
Die Frage ist nun, wo ich mit der Fehlersuche beginnen koennte.
Nachschauen welche Module von apache-contrib geladen werden (/etc/sysconfig/apache durchsehen. Es sollten _nicht_ saemtliche Module auf "yes" stehen.). Am besten apache-contrib deinstallieren, wenn's nicht gebraucht wird. Peter
Hallo, On 16-May-2004 poeml@cmdline.net wrote:
On Sun, May 16, 2004 at 11:17:06AM +0200, Heinz W. Pahlke wrote:
Beim Booten wird er offensichtlich nocht gestartet, denn Fehlermeldungen gibt es nicht.
_Noch_ gestartet? _Nicht_ gestartet?
Das "t" war zuviel :-(
Manchmal bleibt er dann auch am Leben, so dass ich im Browser Seiten aus public_html aufrufen kann.
Aber manchmal geht das auch nicht, und dann sagt ein "rcapache status", dass der httpd "dead" sei. Ein "rcapache start" laesst ihn dann aber wiederbeleben.
Also soll das jetzt heissen, dass es vorkommt, dass der Apache nach dem Booten eindeutig laeuft, er aber ein bisserl spaeter auf einmal tot ist?
Ganz recht. Und ich kann bisher nicht feststellen, wann und in welchem Zusammenhang er stirbt.
Irgendwelche dem apache/httpd zuzuordnende Meldungen in den Log-Dateien kann ich nicht finden. Und das macht die Fehlersuche natuerlich schwierig.
In /var/log/httpd/*_log sollten _saemtliche_ Meldungen dem Apache zuzuordnen sein ;) Schon dort nachgeschaut?
Natuerlich :-) Allerdings hatte ich nur fuer den Zeitraum nachgeschaut, in dem der Rechner seit dem Booten lief. Heute nacht habe ich nun mal etwas laenger in der error_log gescrollt. Und dann finde ich immer wieder mal: ----------------------------------8<------------------------------------ [notice] Apache/1.3.28 (Linux/SuSE) mod_perl/1.28 PHP/4.3.3 configured -- resuming normal operations [notice] suEXEC mechanism enabled (wrapper:/usr/sbin/suexec) [notice] Accept mutex: sysvsem (Default:sysvsem) [notice] child pid 1248 exit signal Segmentation fault (11) [notice] child pid 1421 exit signal Segmentation fault (11) [notice] child pid 1651 exit signal Segmentation fault (11) [notice] caught SIGTERM, shutting down [warn] pid file /var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run? --------------------------------->8------------------------------------ Die letze Zeile wird natuerlich immer erst beim naechsten Booten bzw. vermutlich auch "rcapache start" geschrieben.
Installiert sind uebrigens apache-1.3.28-60 und apache-contrib-1.0.9-809.
Die Frage ist nun, wo ich mit der Fehlersuche beginnen koennte.
Nachschauen welche Module von apache-contrib geladen werden (/etc/sysconfig/apache durchsehen. Es sollten _nicht_ saemtliche Module auf "yes" stehen.). Am besten apache-contrib deinstallieren, wenn's nicht gebraucht wird.
Bei den meisten steht bereits "no", aber ich werde es weiter einschraenken. Ob apache-contrib gebraucht wird? Keine Ahnung. Zugegebenermassen ist mir die Funktion von apache-contrib ziemlich unklar. Und wenn Suse das Paket installiert... :-) Okay, ist natuerlich absolut kein Argument. Aber ganz unabhaengig davon hat der apache unter Suse 8.1 auch keinen Aerger gemacht. Und ausser ein oder zwei weitere virtuelle Hosts habe ich nichts an der Konfiguration geaendert. Beste Gruesse, Heinz. -- http://www.pahlke-online.de/reisenews/ http://www.Pahlke-KunstWebDesign.de/
On Mon, May 17, 2004 at 07:46:01AM +0200, Heinz W. Pahlke wrote:
Allerdings hatte ich nur fuer den Zeitraum nachgeschaut, in dem der Rechner seit dem Booten lief. Heute nacht habe ich nun mal etwas laenger in der error_log gescrollt. Und dann finde ich immer wieder mal:
----------------------------------8<------------------------------------
[notice] Apache/1.3.28 (Linux/SuSE) mod_perl/1.28 PHP/4.3.3 configured -- resuming normal operations [notice] suEXEC mechanism enabled (wrapper:/usr/sbin/suexec) [notice] Accept mutex: sysvsem (Default:sysvsem) [notice] child pid 1248 exit signal Segmentation fault (11) [notice] child pid 1421 exit signal Segmentation fault (11) [notice] child pid 1651 exit signal Segmentation fault (11) [notice] caught SIGTERM, shutting down [warn] pid file /var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
--------------------------------->8------------------------------------
Okay.
auf "yes" stehen.). Am besten apache-contrib deinstallieren, wenn's nicht gebraucht wird.
Bei den meisten steht bereits "no", aber ich werde es weiter einschraenken.
Ob apache-contrib gebraucht wird? Keine Ahnung. Zugegebenermassen ist mir die Funktion von apache-contrib ziemlich unklar. Und wenn Suse das Paket installiert... :-) Okay, ist natuerlich absolut kein Argument.
Gut, dann bitte deinstallieren. apache-contrib enthaelt (ausser mod_gzip) nur eher esoterische Module. Sollte backhand auch installiert / geladen sein, auch deinstallieren, das laeuft nicht bevor's nicht konfiguriert ist. Werden mod_perl und mod_php4 gebraucht? Sind beide geladen? Peter
Hallo, On 17-May-2004 poeml@cmdline.net wrote:
On Mon, May 17, 2004 at 07:46:01AM +0200, Heinz W. Pahlke wrote:
Gut, dann bitte deinstallieren.
apache-contrib enthaelt (ausser mod_gzip) nur eher esoterische Module.
Okay, habe ich eben mal deinstalliert. Ob es schon unter Suse 8.1 installiert war, weiss ich nicht. Unter der 9.0 bewusst neu installiert habe ich es jedenfalls nicht. Mal sehen, was die Deinstallation bringt. Da das Problem ja nicht immer, sondern sporadisch auftritt, laesst es sich kaum testen.
Sollte backhand auch installiert / geladen sein, auch deinstallieren,
Ist nicht installiert.
Werden mod_perl und mod_php4 gebraucht? Sind beide geladen?
mod_perl wird nicht geladen, mod_php4 brauche ich. Beste Gruesse, Heinz. -- http://www.pahlke-online.de/reisenews/ http://www.Pahlke-KunstWebDesign.de/
Hallo, noch ein Nachtrag: On 17-May-2004 Heinz W. Pahlke wrote:
On 16-May-2004 poeml@cmdline.net wrote:
In /var/log/httpd/*_log sollten _saemtliche_ Meldungen dem Apache zuzuordnen sein ;) Schon dort nachgeschaut?
"Sollten" ist sehr gut formuliert ;-) Da der apache eben gerade wieder einmal "dead" war, habe ich ihn ueber "rcapache start" gestartet. Ausgabe des Scripts: Starting httpd [ PHP4 susehelp ] done Ein sofort danach ausgefuehrtes "rcapache status" bringt dann aber schon wieder ein "dead" :-( Der einzige Eintrag in /var/log/httpd/error_log: [notice] caught SIGTERM, shutting down /* vom letzten shutdown? */ [warn] pid file /var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run? Beste Gruesse, Heinz. -- http://www.pahlke-online.de/reisenews/ http://www.Pahlke-KunstWebDesign.de/
On Mon, May 17, 2004 at 11:02:48AM +0200, Heinz W. Pahlke wrote:
Da der apache eben gerade wieder einmal "dead" war, habe ich ihn ueber "rcapache start" gestartet. Ausgabe des Scripts:
Starting httpd [ PHP4 susehelp ] done
Ein sofort danach ausgefuehrtes "rcapache status" bringt dann aber schon wieder ein "dead" :-(
Am bevor man so etwas macht immer ein tail -f /var/log/httpd/*_log & laufen haben, dann wird die zeitliche Abfolge klarer.
Der einzige Eintrag in /var/log/httpd/error_log:
[notice] caught SIGTERM, shutting down /* vom letzten shutdown? */ [warn] pid file /var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
Das war vom Start, aber es gab ja auch Segfaults die geloggt wurden. Passieren die Segfaults direkt nach dem (oder beim) Starten? Oder spaeter? Wenn letzteres, ist es moeglich dass der Server in dem Moment einen Request kriegt, oder passiert es auch ohne? Wenn's bei Requests passiert, kann man mit das 'tethereal -i eth0 port 80' sehen. Im Apache-Log tauchen Requests die zu einem Segfault fuehren grundsaetzlich nicht auf. (Nur wenn man das relativ neue mod_logforensic verwendet geht das.) Peter
Hallo, On 17-May-2004 poeml@cmdline.net wrote:
On Mon, May 17, 2004 at 11:02:48AM +0200, Heinz W. Pahlke wrote:
Ein sofort danach ausgefuehrtes "rcapache status" bringt dann aber schon wieder ein "dead" :-(
Am bevor man so etwas macht immer ein tail -f /var/log/httpd/*_log & laufen haben, dann wird die zeitliche Abfolge klarer.
Ist schon klar, aber im Moment stecke ich bis ueber den Kopf in Arbeit, und dann auch noch ein paar kleine Rechner-Probleme loesen zu muessen, ist etwas nervig. Und so habe ich in dem Moment nicht dartan gedacht.
Der einzige Eintrag in /var/log/httpd/error_log:
[notice] caught SIGTERM, shutting down /* vom letzten shutdown? */ [warn] pid file /var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
Das war vom Start, aber es gab ja auch Segfaults die geloggt wurden.
Nur kann ich die nicht genauer zuordnen. Manchmal werden solche geloggt, manche offensichtlich aber auch nicht.
Passieren die Segfaults direkt nach dem (oder beim) Starten? Oder spaeter? Wenn letzteres, ist es moeglich dass der Server in dem
Sowohl als auch. Ich merke es ja nur, wenn ich irgendeine Webseite, an der ich arbeite, ploetzlich nicht mehr ueber den entsprechenden virtuellen Server aufrufen kann. Und machnmal geht es sofort nach dem Booten des PC nicht mehr, und manchmal auch erst nach einiger Zeit.
Moment einen Request kriegt, oder passiert es auch ohne?
Dazu muesste ich die Log-Dateien staerker im Auge behalten. Aber das ist beim Arbeiten, speziell parallel an mehreren Projekten, fast unmoeglich. Ich habe es bei einem anderen Problem auch schon mal mit logsurfer versucht, aber da der Lautsprecher haeufiger mal ein beep von sich gibt, faellt mir das nie rechtzeitig auf.
Wenn's bei Requests passiert, kann man mit das 'tethereal -i eth0 port 80' sehen. Im Apache-Log tauchen Requests die zu einem Segfault fuehren grundsaetzlich nicht auf. (Nur wenn man das relativ neue mod_logforensic verwendet geht das.)
Mein Eindruck ist, dass dies Problem wohl doch etwas mehr Zeit zur Loesung verlangt. Also muss ich jetzt erst mal damit leben. Jedenfalls vielen Dank fuer deine Bemuehungen. Beste Gruesse, Heinz. -- http://www.pahlke-online.de/reisenews/ http://www.Pahlke-KunstWebDesign.de/
On Mon, May 17, 2004 at 02:51:40PM +0200, Heinz W. Pahlke wrote:
Am bevor man so etwas macht immer ein tail -f /var/log/httpd/*_log & laufen haben, dann wird die zeitliche Abfolge klarer.
Ist schon klar, aber im Moment stecke ich bis ueber den Kopf in Arbeit, und dann auch noch ein paar kleine Rechner-Probleme loesen zu muessen, ist etwas nervig. Und so habe ich in dem Moment nicht dartan gedacht.
Schon klar.
Das war vom Start, aber es gab ja auch Segfaults die geloggt wurden.
Nur kann ich die nicht genauer zuordnen. Manchmal werden solche geloggt, manche offensichtlich aber auch nicht.
Segfaults werden normalerweise schon geloggt, wenn sie nicht gerade im Parent-Prozess selber auftreten (zB direkt beim Start). Requests die zu einem Segfault fuehren werden grundsaetzlich nicht geloggt, weil Logging grundsaetzlich erst nach vollstaendiger Bearbeitung durch den child passiert.
Passieren die Segfaults direkt nach dem (oder beim) Starten? Oder spaeter? Wenn letzteres, ist es moeglich dass der Server in dem
Sowohl als auch. Ich merke es ja nur, wenn ich irgendeine Webseite, an der ich arbeite, ploetzlich nicht mehr ueber den entsprechenden virtuellen Server aufrufen kann. Und machnmal geht es sofort nach dem Booten des PC nicht mehr, und manchmal auch erst nach einiger Zeit.
Eine Moeglichkeit waere, den Apache als einen einzelnen Prozess zu starten, und zu stracen, wie folgt: strace -f -o httpd.strace /usr/sbin/httpd -X -f /etc/httpd/httpd.conf -D ... Oder, mit mehreren Processen, falls er mehr zu tun hat, strace -ff -o httpd.strace /usr/sbin/httpd -f /etc/httpd/httpd.conf -D ... tcpdump bzw. tethereal wuerde ich von vornherein mit laufenlassen, um alle moeglicherweise erforderlichen Daten zur Analyse gleich mit zu sammeln. Ist der Rechner YOU-maessig up to date? Welche Version war das: 8.1? Unter ftp://ftp.suse.com/pub/projects/apache/mod_php4/8.1-i386/ gibt es ein neueres PHP. Immer einen Versuch wert. Darueberhinaus kann ich ein Paket vom 1.3.31 mit Exception hooks und mod_log_forensic empfehlen: ftp://ftp.suse.com/pub/projects/apache/apache/8.1-i386/ Peter
Hallo, On 17-May-2004 poeml@cmdline.net wrote:
Segfaults werden normalerweise schon geloggt, wenn sie nicht gerade im Parent-Prozess selber auftreten (zB direkt beim Start).
Requests die zu einem Segfault fuehren werden grundsaetzlich nicht geloggt, weil Logging grundsaetzlich erst nach vollstaendiger Bearbeitung durch den child passiert.
Danke fuer die Erklaerung.
Ist der Rechner YOU-maessig up to date?
You hat bei mir absolut nichts zu suchen. Was ich update, suche ich mir bei Suse selbst zusammen. Oft benutze ich auch Versionen aus anderen Quellen (z.B. Packman) oder selbstkompilierte Versionen.
Welche Version war das: 8.1? Unter
9.0, aber wie gesagt mit diversen Fremdpaketen.
ftp://ftp.suse.com/pub/projects/apache/mod_php4/8.1-i386/ gibt es ein neueres PHP. Immer einen Versuch wert.
Darueberhinaus kann ich ein Paket vom 1.3.31 mit Exception hooks und mod_log_forensic empfehlen: ftp://ftp.suse.com/pub/projects/apache/apache/8.1-i386/
Wenn ich wieder Zeit habe, werde ich mich mal dort umsehen. Jetzt ist es mir zu riskant, dass der apache hinterher gar nicht mehr will. Das waere mir dann doch zu nervig. Beste Gruesse, Heinz. -- http://www.pahlke-online.de/reisenews/ http://www.Pahlke-KunstWebDesign.de/
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Monday 17 May 2004 11:02, Heinz W. Pahlke wrote:
Der einzige Eintrag in /var/log/httpd/error_log:
[notice] caught SIGTERM, shutting down /* vom letzten shutdown? */ [warn] pid file /var/run/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
Hast Du irgendwelche VirtualHosts mit eigenen ErrorLogs? Der Apache fährt macht einen nomalen Shutdown, wenn er ein SIGTERM kriegt. Allerdings löscht er dann auch sein PID File. Stehen die beiden obigen Zeilen wirklich nacheinander im Logfile? Normalerweise schreibt der Apache immer noch eine Zeit mit ins Logfile. Das benutze ich, um zu erkennen, was zusammengehört. Vielleicht hilft Dir ja das Programm strace weiter. Mit strace -p $(cat /var/run/httpd.pid) kannst Du schön lauschen, welche Systemcalls der Apache gerade macht. Bei mir kommt da immer nur select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) time(NULL) = 1084796624 wait4(-1, 0xbffff4c8, WNOHANG, NULL) = 0 also ein Zyklus, in dem er seine gestorbenen Kinder einsammelt. Manchmal startet er ein neues Kind, dann erscheint mal "fork", nur wenn er ein Signal kriegt, ist richtig was los. Torsten -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAqLAZwicyCTir8T4RAqx7AJkBcBVGBDAdPa3+2GOpvCxZSgI5nACgjw+c hWDGq0e8EUt0oEPkaeZQKZ8= =mmoa -----END PGP SIGNATURE-----
Hallo, On 17-May-2004 Torsten Foertsch wrote:
Hast Du irgendwelche VirtualHosts mit eigenen ErrorLogs?
Ja, aber da steht nichts interessantes drin (alles nur Fehlermeldungen aus meinen Seitentests, wenn da irgendwelche Bilder oder css-Dateien nicht gefunden werden.
Allerdings löscht er dann auch sein PID File. Stehen die beiden obigen Zeilen wirklich nacheinander im Logfile? Normalerweise schreibt der Apache
Ja, ich habe nichts gekuerzt.
Vielleicht hilft Dir ja das Programm strace weiter. Mit
strace -p $(cat /var/run/httpd.pid)
kannst Du schön lauschen, welche Systemcalls der Apache gerade macht.
Wenn ich hier wieder etwas Luft habe und das Problem weiter besteht, setze ich hier mal an. Noch hoffe ich aber, dass vielleicht schon die Deinstallation von apache-contrib etwas gebracht haben koennte. Beste Gruesse, Heinz. -- http://www.pahlke-online.de/reisenews/ http://www.Pahlke-KunstWebDesign.de/
Hallo, nachdem heute eine Anfrage kam, kurz zur Info in die Liste: On 17-May-2004 Heinz W. Pahlke wrote:
Wenn ich hier wieder etwas Luft habe und das Problem weiter besteht, setze ich hier mal an. Noch hoffe ich aber, dass vielleicht schon die Deinstallation von apache-contrib etwas gebracht haben koennte.
Das hat leider nichts gebracht. Trotzdem besteht das Problem nicht mehr :-) Den Grund weiss ich aber nicht :-((( Ich habe in den letzten Wochen etliche Programme und Libraries geupdatet sowie neue Programme installiert, die aber alle eigentlich nichts mit dem apache zu tun haben. Und trotzdem: Seit zwei Wochen beobachte ich nun, dass der apache nicht mehr gleich nach dem Start wieder stirbt, sondern auch viele Stunden spaeter noch lebt. Fuer mich ist das zwar erfreulich, aber anderen hilft das natuerlich nichts. Beste Gruesse, Heinz. -- http://www.pahlke-online.de/reisenews/ http://www.Pahlke-KunstWebDesign.de/
participants (3)
-
Heinz W. Pahlke
-
poeml@cmdline.net
-
Torsten Foertsch