child pid 28254 exit signal Segmentation fault (11)

basst

New Member
Hallo,
ich habe folgendes Apache Problem im /var/log/httpd/error_log


[Sat Aug 22 19:10:16 2009] [notice] child pid 28254 exit signal Segmentation fault (11)
[Sat Aug 22 19:10:17 2009] [notice] child pid 28255 exit signal Segmentation fault (11)
[Sat Aug 22 19:10:17 2009] [notice] child pid 28256 exit signal Segmentation fault (11)
[Sat Aug 22 19:10:17 2009] [notice] child pid 28257 exit signal Segmentation fault (11)
[Sat Aug 22 19:10:17 2009] [notice] child pid 28258 exit signal Segmentation fault (11)
[Sat Aug 22 19:10:17 2009] [notice] child pid 28259 exit signal Segmentation fault (11)

nach einiger zeit musse der dienst dann neu gestartet werden.
dann ...

[Sat Aug 22 19:11:35 2009] [notice] Digest: generating secret for digest authentication ...
[Sat Aug 22 19:11:35 2009] [notice] Digest: done
[Sat Aug 22 19:11:35 2009] [notice] mod_bw : Memory Allocated 0 bytes (each conf takes 28 bytes)
[Sat Aug 22 19:11:35 2009] [notice] mod_bw : Version 0.8 - Initialized [0 Confs]
[Sat Aug 22 19:11:36 2009] [notice] mod_python: Creating 4 session mutexes based on 512 max processes and 0 max threads.
[Sat Aug 22 19:11:36 2009] [warn] RSA server certificate CommonName (CN) `plesk' does NOT match server name!?
[Sat Aug 22 19:11:36 2009] [warn] RSA server certificate CommonName (CN) `plesk' does NOT match server name!?
[Sat Aug 22 19:11:36 2009] [warn] Init: SSL server IP/port conflict: default-xx-xx-xxx-xxx:xxx (/etc/httpd/conf.d/zz010_psa_httpd.conf:78) vs. webmail:443 (/etc/httpd/conf.d/zz010_psa_httpd.conf:133)
[Sat Aug 22 19:11:36 2009] [warn] Init: You should not use name-based virtual hosts in conjunction with SSL!!
[Sat Aug 22 19:11:36 2009] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
 
Last edited by a moderator:
Hi,

laut whois sollte es ein dedizierter Server bei OVH sein ;)

Spontan würde ich auf den oom-Killer tippen. Wie sieht denn der Speicherverbrauch im Allgemeinen und die Apache-Konfiguration in Bezug auf 'MaxClients' und 'MaxRequestsPerChild' aus?


-W
 
ich habe 16 GB Arbeitsspeicher im Rootserver

ich habe 16 GB Arbeitsspeicher im Rootserver

meine httpd.conf

<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 4000
</IfModule>

<IfModule worker.c>
StartServers 2
MaxClients 512
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 4000
</IfModule>

Hier mal ein par Prozesse #top
7132 apache 20 0 65880 43m 5012 S 21 0.3 0:04.80 httpd
5672 apache 20 0 49952 26m 4016 R 13 0.2 0:00.40 httpd
6872 apache 20 0 48564 25m 4204 S 13 0.2 0:00.40 httpd
6830 apache 20 0 60676 38m 5184 S 13 0.2 0:05.86 httpd
6478 apache 20 0 48600 26m 4880 S 11 0.2 0:03.34 httpd
6866 apache 20 0 35192 12m 4636 S 10 0.1 0:00.30 httpd
4375 mysql 20 0 1526m 1.4g 4676 S 9 8.8 817:33.82 mysqld
7148 apache 20 0 59824 37m 4996 S 8 0.2 0:04.82 httpd
5954 apache 20 0 64712 42m 5480 S 1 0.3 0:10.98 httpd
6356 apache 20 0 62460 39m 5096 S 1 0.2 0:08.02 httpd
6834 apache 20 0 35536 13m 4652 S 1 0.1 0:00.96 httpd
6867 apache 20 0 48592 26m 4940 S 1 0.2 0:03.76 httpd
7474 root 20 0 2292 1124 788 R 1 0.0 0:00.04 top
 
Jetzt hast Du glatt die interessanten ersten Zeilen der top-Ausgabe weg gelassen (in Zukunft bitte auch noch [noparse]
Code:
....
[/noparse]-Tags um die Ausgabe schreiben, damit man es besser lesen kann.

Was die einzelnen Apache-Parameter bedeuten und wie man sie optimal setzt, ist in folgendem [Thread=14308]Thread[/Thread] beschrieben. Da geht es zwar nicht nur um den Apache, sondern auch um MySQL, es lohnt sich aber trotzdem, sich in dieses Themengebiet etwas einzulesen.
 
Danke für den Link (sehr guter Thraed), hier noch mal prozesse .... - Mem: "1661344

Danke für den Link (sehr guter Thraed), hier noch mal prozesse ....
- Mem: "16613448k total, 16147152k used" was verbraucht denn so viel RAM?

Code:
top - 22:49:52 up 1 day,  4:29,  1 user,  load average: 3.18, 3.08, 3.91
Tasks: 284 total,   3 running, 281 sleeping,   0 stopped,   0 zombie
Cpu(s): 27.4%us,  2.4%sy,  0.0%ni, 64.9%id,  4.8%wa,  0.2%hi,  0.3%si,  0.0%st
Mem:  16613448k total, 16147152k used,   466296k free,   102324k buffers
Swap:   522104k total,     4040k used,   518064k free, 13474080k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5349 mysql     20   0  869m 757m 4340 S  144  4.7  37:52.89 mysqld
17428 apache    20   0 60048  37m 5020 S   31  0.2   0:03.34 httpd
17402 apache    20   0 48592  26m 4868 S   20  0.2   0:00.90 httpd
17403 apache    20   0 60668  38m 5048 S   11  0.2   0:02.58 httpd
11031 apache    20   0 63432  40m 4992 S   11  0.3   0:03.30 httpd
17469 apache    20   0 48560  26m 4864 S   10  0.2   0:01.02 httpd
17447 apache    20   0 60500  37m 4996 S    7  0.2   0:02.48 httpd
17473 apache    20   0 35328  12m 4640 R    6  0.1   0:00.56 httpd
  378 root      15  -5     0    0    0 S    1  0.0   1:31.44 kswapd0
14486 root      20   0     0    0    0 S    1  0.0   0:00.68 pdflush
17446 apache    20   0 58916  36m 5072 R    1  0.2   0:01.22 httpd
 
Hi,

[Sat Aug 22 19:10:16 2009] [notice] child pid 28254 exit signal Segmentation fault (11)

Im Fall eines SegFaults (hat übrigens nichts mit dem OOM-Killer zu tun) kannst Du einen Coredump erzeugen und mittels Debugger (gdb) analysieren. Bei Google findest Du zu den Begriffen Coredump und gdb einige Hinweise, u.a. http://www.oreilly.de/german/freebooks/rlinux3ger/ch142.html

- Mem: "16613448k total, 16147152k used" was verbraucht denn so viel RAM?

Das meiste dient als Cache ("13474080k cached").

CU
Tom09
 
Last edited by a moderator:
Probelem gelöst?

Hallo,

Hallo,
ich habe folgendes Apache Problem im /var/log/httpd/error_log
[Sat Aug 22 19:10:16 2009] [notice] child pid 28254 exit signal Segmentation fault (11)

ich habe ähnliches Problem mit Apache. Frage an basst. Wurde das Problem gelöst? Wie?

Grüße und danke im Voraus.
 
Hallo stickybit und willkommen an Board!

Gegenfrage an und für Dich:
Hast Du den Tipp von Tom09 mit dem Coredump versucht?
Es ist relativ einfach und verrät Dir i.d.r welches Modul den SigFault erzeugt.

Blind ins Blaue hinein würde ich auf den üblichen Verdächtigen Tippen: PHP. ;)

huschi.
 
Hallo und danke für die Antwort huschi,

ja, habe ich probiert. Leider ohne Erfolg.
Ich habe Folgendes in die Apache-Conf-Datei eingefügt.
Code:
LogLevel debug
CoreDumpDirectory /tmp
Lt. Beschreibung in meinem Buch sollte im /tmp Verzeichnis eine entsprechende Datei auftauchen. Dies geschieht leider nicht. Hast Du einen Tipp warum?

Die SigFault's tauchen auf, wenn mann versucht in einem PHP-Script eine Datei bzw. Adresse über http mit file() zu öffnen.
PHP:
$s = file('http://web.de');
Die Zieladresse spielt keine Rolle. Das Script sendet nichts an den Browser, weder irgendeine Fehlermeldung noch evtl. echo Ausgaben. Kommentiert man die o.g. Zeile aus, wird das Script normal ausgeführt. Irgendwelche Ideen?
Danke im Voraus.
 
Ich habe Folgendes in die Apache-Conf-Datei eingefügt.
Blöde Frage, aber typischer Fehler:
Hast Du den Apache danach auch neu gestartet?
Wenn ja, steht denn im zentralen error_log irgendwas dazu?

Das Script sendet nichts an den Browser
Natürlich nicht. Der Apache-Thread ist ja auch abgestürzt. Wie soll er noch etwas senden?

Schon überprüft ob allow_url_fopen überhaupt gesetzt ist?

huschi.
 
danke huschi!

Hast Du den Apache danach auch neu gestartet?
ja.

Wenn ja, steht denn im zentralen error_log irgendwas dazu?
[Wed Sep 16 10:36:51 2009] [notice] mod_bw : Memory Allocated 0 bytes (each conf takes 32 bytes)
[Wed Sep 16 10:36:51 2009] [notice] mod_bw : Version 0.7 - Initialized [0 Confs]
[Wed Sep 16 10:36:51 2009] [notice] Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8c PHP/5.3.0 configured -- resuming normal operations
[Wed Sep 16 10:36:51 2009] [info] Server built: Dec 29 2008 10:21:50
[Wed Sep 16 10:36:51 2009] [debug] prefork.c(1001): AcceptMutex: sysvsem (default: sysvsem)

Schon überprüft ob allow_url_fopen überhaupt gesetzt ist?
ja, es hat ja funtioniert. Der Fehler besteht erst seit mehreren Tagen. Ich habe vorher nichts geändert.
Ja gut, ich habe relativ viele Vhosts. In den letzten Tagen sind einige hinzugekommen.
Wenn ich die Anzahl reduziere, dann wird das Problem behoben. Es ist aber für mich keine Lösung.
Ich denke, die Apache-Kinder werden vom System gekillt, weil sie zu viel RAM verbrachen.
ulimit -c steht auf unlimited. Keine Ahnung, was ich noch am System drehen kann, damit das Problem behoben wird. Hast Du eine Idee, huschi?
 
Wenn ich die Anzahl reduziere, dann wird das Problem behoben.
Schon getestet? Wäre wirklich eine seltsame Lösung.

Ich denke, die Apache-Kinder werden vom System gekillt, weil sie zu viel RAM verbrachen.
Falsch! Ein Segmentation-Fault entsteht, wenn auf Speicherbereiche zugegriffen wird, die nicht dem Prozess zugeordnet sind. Dies kann natürlich auch passieren, wenn ein memalloc mal keinen Speicher mehr findet und das Programm diesen Fehler nicht abfängt.
Aber direkt auf zu hohen Speicherverbrauch zu tippen führt Dich grundsätzlich in die falsche Richtung. Denn der Fehler liegt im Programm selber.
Daher wäre mein erster Versuch: Nachsehen ob es Software-Updates gibt.

PS:
Der Fehler besteht erst seit mehreren Tagen. Ich habe vorher nichts geändert.
Das habe ich schon häufiger gehört... :D

huschi.
 
danke huschi!

mehr findet und das Programm diesen Fehler nicht abfängt.
aber wenn kein RAM mehr da ist, warum wird nicht geswapt? Ich dachte, dies wird vom BS erledigt.

Daher wäre mein erster Versuch: Nachsehen ob es Software-Updates gibt.
huschi.

Code:
[Wed Sep 16 11:28:25 2009] [notice] mod_bw : Memory Allocated 0 bytes (each conf takes 32 bytes)
[Wed Sep 16 11:28:25 2009] [notice] mod_bw : Version 0.8 - Initialized [0 Confs]
[Wed Sep 16 11:28:25 2009] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Wed Sep 16 11:28:25 2009] [notice] Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8c PHP/5.3.0 configured -- resuming normal operations
[Wed Sep 16 11:28:25 2009] [info] Server built: Sep 16 2009 11:26:11
[Wed Sep 16 11:28:25 2009] [debug] prefork.c(1013): AcceptMutex: sysvsem (default: sysvsem)
Ich habe nun Apache + PHP + mod_bw aktualisiert. Es hat leider nicht zur Lösung beigetragen.
Ich habe gemerkt, dass einige Aufrufe vom Testscript plötzlich erfolgreich verlaufen. Das war aber auch vor den Updates.

Noch irgendwelche Ideen?
 
aber wenn kein RAM mehr da ist, warum wird nicht geswapt?
Ich hatte doch vorhin ausführlich erklärt, dass diese Vermutung eine Sackgasse ist!

Ich habe nun Apache + PHP + mod_bw aktualisiert.
Schon mal mod_bw raus geschmissen?
(Ich wiederhole: Ohne Coredump kann man nicht sagen, welches Modul den SegFault wirft.)

huschi.
 
Ich hatte die Fehlermeldung vor ein paar Tagen nach einem apt-get upgrade.
Da wurde PHP5 nicht endgültig upgedatet. Ich musste es mit apt-get-install manuell noch einmal installieren, wobei eine Menge älterer Pakete rausgeflogen sind. Das hat den Fehler aber dann beseitigt.

Mach doch mal ein apt-get -s install mit php5 und schau ob er dir Pakete anzeigt, die er verändern würde.
 
Back
Top