PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2 & memory corruption



netwalker
16.10.08, 08:47
Guten Morgen,
ich habe schon einigen Wochen Probleme mit meinem Apache Server. Heut morgen habe den Apache-Server neugestartet und nach 10 min, waren einige httpd2-prefork Prozesse auf 100%.

Direkt als erstes habe ich ein blick ins error_log geworfen und habe folgendes gesehen:


*** glibc detected *** /usr/sbin/httpd2-prefork: malloc(): memory corruption: 0x00007f2a07250a10 ***
======= Backtrace: =========
/lib64/libc.so.6[0x7f2a06f71af8]
/lib64/libc.so.6[0x7f2a06f744dc]
/lib64/libc.so.6(__libc_calloc+0x168)[0x7f2a06f75e18]
/usr/lib64/liblber-2.4.so.2(ber_memcalloc_x+0x45)[0x7f2a08250455]
/usr/lib64/libldap-2.4.so.2(ldap_send_server_request+0x1dc)[0x7f2a084795ec]
/usr/lib64/libldap-2.4.so.2(ldap_send_initial_request+0xe0)[0x7f2a08479a10]
/usr/lib64/libldap-2.4.so.2(ldap_sasl_bind+0x18c)[0x7f2a0846ecfc]
/usr/lib64/libldap-2.4.so.2(ldap_sasl_bind_s+0x88)[0x7f2a0846ef98]
/usr/lib64/libldap-2.4.so.2(ldap_simple_bind_s+0x60)[0x7f2a0846f530]
/usr/lib64/apache2-prefork/mod_ldap.so[0x7f2a01b36b57]
/usr/lib64/apache2-prefork/mod_ldap.so[0x7f2a01b373e5]
/usr/lib64/apache2-prefork/mod_authnz_ldap.so[0x7f2a0192d6c7]
/usr/lib64/apache2-prefork/mod_auth_basic.so[0x7f2a05cde0a0]
/usr/sbin/httpd2-prefork(ap_run_check_user_id+0x83)[0x7f2a08f8cc43]
/usr/sbin/httpd2-prefork(ap_process_request_internal+0x348)[0x7f2a08f8eed8]
/usr/sbin/httpd2-prefork(ap_process_request+0x1b8)[0x7f2a08fa0d08]
/usr/sbin/httpd2-prefork[0x7f2a08f9dc08]
/usr/sbin/httpd2-prefork(ap_run_process_connection+0x83)[0x7f2a08f99773]
/usr/sbin/httpd2-prefork[0x7f2a08fa54ad]
/usr/sbin/httpd2-prefork[0x7f2a08fa575a]
/usr/sbin/httpd2-prefork(ap_mpm_run+0xabc)[0x7f2a08fa627c]
/usr/sbin/httpd2-prefork(main+0xa35)[0x7f2a08f7e175]
/lib64/libc.so.6(__libc_start_main+0xe6)[0x7f2a06f1a436]
/usr/sbin/httpd2-prefork[0x7f2a08f7d259]
======= Memory map: ========
7f29f4000000-7f29f4021000 rw-p 7f29f4000000 00:00 0
7f29f4021000-7f29f8000000 ---p 7f29f4021000 00:00 0
7f29f976d000-7f29f9783000 r-xp 00000000 08:03 819299 /lib64/libgcc_s.so.1
7f29f9783000-7f29f9982000 ---p 00016000 08:03 819299 /lib64/libgcc_s.so.1
7f29f9982000-7f29f9983000 r--p 00015000 08:03 819299 /lib64/libgcc_s.so.1
7f29f9983000-7f29f9984000 rw-p 00016000 08:03 819299 /lib64/libgcc_s.so.1
7f29f9984000-7f29f9989000 r-xp 00000000 08:03 819410 /lib64/libnss_winbind.so.2
7f29f9989000-7f29f9b89000 ---p 00005000 08:03 819410 /lib64/libnss_winbind.so.2
7f29f9b89000-7f29f9b8a000 r--p 00005000 08:03 819410 /lib64/libnss_winbind.so.2
7f29f9b8a000-7f29f9b8b000 rw-p 00006000 08:03 819410 /lib64/libnss_winbind.so.2
7f29f9b8b000-7f29f9b90000 rw-p 7f29f9b8b000 00:00 0
7f29f9b90000-7f29fdb90000 rw-s 00000000 00:09 589824 /SYSV00000000 (deleted)
7f29fdb90000-7f29fdb97000 r-xp 00000000 08:03 3074183 /usr/lib64/php5/extensions/zlib.so
7f29fdb97000-7f29fdd96000 ---p 00007000 08:03 3074183 /usr/lib64/php5/extensions/zlib.so
7f29fdd96000-7f29fdd97000 r--p 00006000 08:03 3074183 /usr/lib64/php5/extensions/zlib.so
7f29fdd97000-7f29fdd98000 rw-p 00007000 08:03 3074183 /usr/lib64/php5/extensions/zlib.so
7f29fdd98000-7f29fdd9f000 r-xp 00000000 08:03 3073963 /usr/lib64/php5/extensions/xmlwriter.so
7f29fdd9f000-7f29fdf9e000 ---p 00007000 08:03 3073963 /usr/lib64/php5/extensions/xmlwriter.so
7f29fdf9e000-7f29fdf9f000 r--p 00006000 08:03 3073963 /usr/lib64/php5/extensions/xmlwriter.so
7f29fdf9f000-7f29fdfa0000 rw-p 00007000 08:03 3073963 /usr/lib64/php5/extensions/xmlwriter.so
7f29fdfa0000-7f29fdfa7000 r-xp 00000000 08:03 3073971 /usr/lib64/php5/extensions/xmlreader.so
7f29fdfa7000-7f29fe1a6000 ---p 00007000 08:03 3073971 /usr/lib64/php5/extensions/xmlreader.so
7f29fe1a6000-7f29fe1a7000 r--p 00006000 08:03 3073971 /usr/lib64/php5/extensions/xmlreader.so
7f29fe1a7000-7f29fe1a8000 rw-p 00007000 08:03 3073971 /usr/lib64/php5/extensions/xmlreader.so
7f29fe1a8000-7f29fe1a9000 rw-p 7f29fe1a8000 00:00 0
7f29fe1a9000-7f29fe1ad000 r-xp 00000000 08:03 3073964 /usr/lib64/php5/extensions/tokenizer.so
7f29fe1ad000-7f29fe3ac000 ---p 00004000 08:03 3073964 /usr/lib64/php5/extensions/tokenizer.so
7f29fe3ac000-7f29fe3ad000 r--p 00003000 08:03 3073964 /usr/lib64/php5/extensions/tokenizer.so
7f29fe3ad000-7f29fe3ae000 rw-p 00004000 08:03 3073964 /usr/lib64/php5/extensions/tokenizer.so
7f29fe3ae000-7f29fe3f9000 r-xp 00000000 08:03 3036361 /usr/lib64/libsqlite.so.0.8.6
7f29fe3f9000-7f29fe5f8000 ---p 0004b000 08:03 3036361 /usr/lib64/libsqlite.so.0.8.6
7f29fe5f8000-7f29fe5f9000 r--p 0004a000 08:03 3036361 /usr/lib64/libsqlite.so.0.8.6
7f29fe5f9000-7f29fe5fc000 rw-p 0004b000 08:03 3036361 /usr/lib64/libsqlite.so.0.8.6
7f29fe5fc000-7f29fe60c000 r-xp 00000000 08:03 3073973 /usr/lib64/php5/extensions/sqlite.so
7f29fe60c000-7f29fe80c000 ---p 00010000 08:03 3073973 /usr/lib64/php5/extensions/sqlite.so
7f29fe80c000-7f29fe80d000 r--p 00010000 08:03 3073973 /usr/lib64/php5/extensions/sqlite.so
7f29fe80d000-7f29fe80f000 rw-p 00011000 08:03 3073973 /usr/lib64/php5/extensions/sqlite.so
7f29fe80f000-7f29fe890000 r-xp 00000000 08:03 3034898 /usr/lib64/libsqlite3.so.0.8.6
7f29fe890000-7f29fea90000 ---p 00081000 08:03 3034898 /usr/lib64/libsqlite3.so.0.8.6
7f29fea90000-7f29fea91000 r--p 00081000 08:03 3034898 /usr/lib64/libsqlite3.so.0.8.6
7f29fea91000-7f29fea92000 rw-p 00082000 08:03 3034898 /usr/lib64/libsqlite3.so.0.8.6
7f29fea92000-7f29fea98000 r-xp 00000000 08:03 3073972 /usr/lib64/php5/extensions/pdo_sqlite.so
7f29fea98000-7f29fec97000 ---p 00006000 08:03 3073972 /usr/lib64/php5/extensions/pdo_sqlite.so
7f29fec97000-7f29fec98000 r--p 00005000 08:03 3073972 /usr/lib64/php5/extensions/pdo_sqlite.so
7f29fec98000-7f29fec99000 rw-p 00006000 08:03 3073972 /usr/lib64/php5/extensions/pdo_sqlite.so
7f29fec99000-7f29feca0000 r-xp 00000000 08:03 3073976 /usr/lib64/php5/extensions/pdo_mysql.so
7f29feca0000-7f29fee9f000 ---p 00007000 08:03 3073976 /usr/lib64/php5/extensions/pdo_mysql.so
7f29fee9f000-7f29feea0000 r--p 00006000 08:03 3073976 /usr/lib64/php5/extensions/pdo_mysql.so
7f29feea0000-7f29feea1000 rw-p 00007000 08:03 3073976 /usr/lib64/php5/extensions/pdo_mysql.so
7f29feea1000-7f29feeb8000 r-xp 00000000 08:03 3073965 /usr/lib64/php5/extensions/pdo.so
7f29feeb8000-7f29ff0b7000 ---p 00017000 08:03 3073965 /usr/lib64/php5/extensions/pdo.so
7f29ff0b7000-7f29ff0b8000 r--p 00016000 08:03 3073965 /usr/lib64/php5/extensions/pdo.so
7f29ff0b8000-7f29ff0bb000 rw-p 00017000 08:03 3073965 /usr/lib64/php5/extensions/pdo.so
7f29ff0bb000-7f29ff0d6000 r-xp 00000000 08:03 3073975 /usr/lib64/php5/extensions/mysqli.so
7f29ff0d6000-7f29ff2d5000 ---p 0001b000 08:03 3073975 /usr/lib64/php5/extensions/mysqli.so
7f29ff2d5000-7f29ff2d6000 r--p 0001a000 08:03 3073975 /usr/lib64/php5/extensions/mysqli.so
7f29ff2d6000-7f29ff2d9000 rw-p 0001b000 08:03 3073975 /usr/lib64/php5/extensions/mysqli.so
7f29ff2d9000-7f29ff401000 r-xp 00000000 08:03 3036363 /usr/lib64/libmysqlclient.so.15.0.0
7f29ff401000-7f29ff600000 ---p 00128000 08:03 3036363 /usr/lib64/libmysqlclient.so.15.0.0
7f29ff600000-7f29ff603000 r--p 00127000 08:03 3036363 /usr/lib64/libmysqlclient.so.15.0.0
7f29ff603000-7f29ff635000 rw-p 0012a000 08:03 3036363 /usr/lib64/libmysqlclient.so.15.0.0
7f29ff635000-7f29ff636000 rw-p 7f29ff635000 00:00 0
7f29ff636000-7f29ff643000 r-xp 00000000 08:03 3073974 /usr/lib64/php5/extensions/mysql.so
7f29ff643000-7f29ff842000 ---p 0000d000 08:03 3073974 /usr/lib64/php5/extensions/mysql.so
7f29ff842000-7f29ff843000 r--p 0000c000 08:03 3073974 /usr/lib64/php5/extensions/mysql.so
7f29ff843000-7f29ff844000 rw-p 0000d000 08:03 3073974 /usr/lib64/php5/extensions/mysql.so
7f29ff844000-7f29ff845000 rw-p 7f29ff844000 00:00 0
7f29ff845000-7f29ff84c000 r-xp 00000000 08:03 3073966 /usr/lib64/php5/extensions/json.so
7f29ff84c000-7f29ffa4b000 ---p 00007000 08:03 3073966 /usr/lib64/php5/extensions/json.so
7f29ffa4b000-7f29ffa4c000 r--p 00006000 08:03 3073966 /usr/lib64/php5/extensions/json.so
7f29ffa4c000-7f29ffa4d000 rw-p 00007000 08:03 3073966 /usr/lib64/php5/extensions/json.so
7f29ffa4d000-7f29ffa56000 r-xp 00000000 08:03 3073967 /usr/lib64/php5/extensions/iconv.so
7f29ffa56000-7f29ffc55000 ---p 00009000 08:03 3073967 /usr/lib64/php5/extensions/iconv.so
......
7f2a091bb000-7f2a0954f000 rw-p 7f2a091bb000 00:00 0 [heap]
7fff10fa1000-7fff10fb6000 rw-p 7ffffffea000 00:00 0 [stack]
7fff10ffe000-7fff11000000 r-xp 7fff10ffe000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]



Zusätzlich sind folgende Einträge zu finden:


httpd2-prefork: io.c:234: ber_flush2: Assertion `( (sb)->sb_opts.lbo_valid == 0x3 )' failed.
httpd2-prefork: io.c:234: ber_flush2: Assertion `( (sb)->sb_opts.lbo_valid == 0x3 )' failed.
httpd2-prefork: io.c:234: ber_flush2: Assertion `( (sb)->sb_opts.lbo_valid == 0x3 )' failed.
httpd2-prefork: io.c:234: ber_flush2: Assertion `( (sb)->sb_opts.lbo_valid == 0x3 )' failed.
httpd2-prefork: io.c:234: ber_flush2: Assertion `( (sb)->sb_opts.lbo_valid == 0x3 )' failed.
[Thu Oct 16 09:21:48 2008] [notice] child pid 18117 exit signal Aborted (6)
[Thu Oct 16 09:21:48 2008] [notice] child pid 18119 exit signal Aborted (6)
[Thu Oct 16 09:21:48 2008] [notice] child pid 18120 exit signal Aborted (6)
[Thu Oct 16 09:21:48 2008] [notice] child pid 18121 exit signal Aborted (6)
[Thu Oct 16 09:21:48 2008] [notice] child pid 18222 exit signal Aborted (6)


Das ganze nervt mich etwas, weil ich sowas nie hatte und absolut nicht weis was ich noch machen soll :(

Könnt Ihr vielleicht paar tipps geben, was ich dagegen machen könnte. Währe für jede Hilfe dankbar!!!

marce
16.10.08, 08:50
Welches OS und welche Versionen verwendest Du denn? Selbstgebaut oder aus Paketquellen?

Ansosten würde ich mal einen Memtest laufen lassen und auf evtl. Updates checken...

netwalker
16.10.08, 09:00
Ohh sry. Ist ein openSuse 11 x86_64 mit Intel Xeon CPU´s und 16 GB Arbeitsspeicher.

Der kernel: Linux 2.6.25.5-1.1-default #1 SMP 2008-06-07 01:55:22 +0200 x86_64 x86_64 x86_64 GNU/Linux

netwalker
21.10.08, 08:13
Hallo,

es gibt noch keine Kernel update, da diese Entscheidung nicht bei mir liegt, nur ich habe immer noch das Problem, das der Apache2 manche PIDS einfach nicht schließt und diese mit 100% mein System bremsen. Habe jetzt ein Script geschrieben, das jede Stunden den Apache neustartet, sonst bekomme ich die PIDS einfach nicht weg.

Ich weis jetzt auch nicht ob es besser ist worker zu installieren und alles umzuändern, ich kann das nicht wirklich abschätzen, weil ich so eine Umstellung bis jetzt nicht gemacht habe. Dazu kommt das manche Dienste nicht offline sein dürfen, eine Umstellung würde bedeutet, das manche Dienste für eine Zeit nicht zur Verfügung stehen würden.

Habt ihr vielleicht so eine Umstellung gemacht und könnt Ihr mir vielleicht berichten, ob das gut geht oder habt ihr eine Vorstellung wieso die PIDS nicht geschlossen werden?

Danke im Voraus!

CoolTux
21.10.08, 12:39
Es gibt bei solchen Fällen immmer die Option einer Testumgebung.
Relevante Teile der Produktivumgebung werden in einer Testumgebung wieder gespiegelt. In der Testumgebung kannst Du dann nach Lust und Laune experimentieren.



Gruß

BedriddenTech
21.10.08, 14:36
Laß die Maschine über Nacht doch mal einen Memtest machen. Sicher ist sicher.

cane
21.10.08, 17:03
Dazu kommt das manche Dienste nicht offline sein dürfen, eine Umstellung würde bedeutet, das manche Dienste für eine Zeit nicht zur Verfügung stehen würden.

Wer ist denn auf die glorreiche Idee gekommen solche Dienste auf einem 64bit openSuSE 11.0 zu betreiben :ugly:

Da nimmt man doch besser einen SLES oder wenn es denn kostenlos sein soll ein Debian Etch.

mfg
cane

netwalker
21.10.08, 20:11
Ist etwas kompliziert das ganze, ich war auch für Debian aber die Administration wollte openSuse und egal was ich gesagt habe, wurde ignoriert und ich darf mich damit rumärgern. Danach habe ich versucht Sie zu SLES zu überreden, nur irgendwie ohne erfolg, naja was solls.

CoolTux: Genau das wollte ich auch, das ich ein Rechner (64bit) bekomme worauf ich das ganze wieder spiegeln kann und habe ein 32bit System bekommen (brings total) und habe halt trotzdem alles installiert und konfiguriert und da läuft alles ohne Probleme. Danach kam einer mit einer Super das ich ja ein 64bit Virtual Maschine erstellen könnte ... *rolleyes*

Ich versuche jetzt die Leute zu überreden ein Kernel-Update durchzuführen vielleicht bringt das was. Mit einem load von 12 oder 13 bringt gar nichts,das ist doch kein stabiles System.

CoolTux
22.10.08, 08:03
So eine Testumbegung ist generell eine feine Sache und sollte auch für zukünftige Umstellungen und/oder Erweiterungen am Pro System erhalten bleiben. Es empfiehlt sich z.B. um Hardware zu sparen ein VM Server. Ich verwende dafür gerne den VMware Server. Dieser ist kostenfrei und ich benötige nur ein oder zwei physikalische Rechner. Am besten natürlich mit 64bit Unterstützung.

Du kannst Deinen Admins ja mal vorrechnen was entweder ein Ausfall kosten würde oder was eigentlich Dein Aufwand für Dein Arbeitgeber kostet. Denn Du scheinst ja nicht wenig Aufwand zu haben :-)

netwalker
22.10.08, 10:14
CoolTux: Danke für deine tipps.

Ich habe heute etwas heraus gefunden. Wie man aus den log-files heraus lesen kann, verwende ich mod_ldap, um mich beim AD zu authentifizieren. Habe heut morgen mal die Authentifizierung rausgenommen und zur zeit laufen die httpd-prefork Prozesse stabil und verursachen kaum last (also keine 100% Prozesse).
Jetzt stellt sich bei mir die Frage, wieso und warum. Kann Linux dein PID nicht schließen, weil ein Prozess mit LDAP verbunden ist? Müssen ggf. zusätzliche Konfigurationen gemacht werden.

Auf dem Server läuft zusätzlich windbind und samba wegen den ganzen Microsoft Netzwerk.

netwalker
24.10.08, 07:49
Hallo,

so gestern gab es ein Kernel Update. Ein Fehler ist raus nur die Sache mit dem


hub 5-0:1.0: unable to enumerate USB device on port

ist leider noch da. Ich denke/hoffe das das nicht so ein rießen Problem ist. Das Problem mit Apache besteht leider immer noch und weis absolut nicht mehr was ich dagegen machen soll.

Hat jemand schon so eine Erfahrung gemacht? Empfiehlt es sich apache-worker zu installieren oder doch bei apache-prefork zu bleiben?