Linux Kernel 0-Pointer
Stefan Link
- webserver
Hallo zusammen!
Ich weiß, dass dieses Thema nicht mehr allzuviel mit HTML zu tun hat, aber ich hoffe, hier einen Experten zu finden :).
Mein Linux Suse 9.0 macht mir in der letzten Zeit öfters mal Probleme, in dem es abschmiert. Der Grund liegt an einer 0-Pointer-Exception (siehe unten). Zuerst dachte ich, da wäre immer ein Skript schuld, das ich auf dem Server immer wieder asuführe, aber wie unten zu sehen ist, ist das hier der Prozess kswapd gewesen, das nächste mal ein php-Prozess. Hat von Euch jemand Erfahrung mit sowas, bzw kann mir jemand helfen, den folgenden Auszug aus dem messages log zu interpretieren?
[b]Nov 16 16:04:03 second-home kernel: Unable to handle kernel NULL pointer dereference at virtual address 000000bc[/b]
Nov 16 16:04:03 second-home kernel: printing eip:
Nov 16 16:04:03 second-home kernel: c013fc79
Nov 16 16:04:03 second-home kernel: *pde = 00000000
Nov 16 16:04:03 second-home kernel: Oops: 0000 2.4.21-243-athlon #1 Thu Aug 12 15:24:15 UTC 2004
Nov 16 16:04:03 second-home kernel: CPU: 0
Nov 16 16:04:03 second-home kernel: EIP: 0010:[refill_inactive+169/512] Not tainted
Nov 16 16:04:03 second-home kernel: EIP: 0010:[<c013fc79>] Not tainted
Nov 16 16:04:03 second-home kernel: EFLAGS: 00010206
Nov 16 16:04:03 second-home kernel: eax: 000000d8 ebx: c12c0130 ecx: c12c014c edx: 00000000
Nov 16 16:04:03 second-home kernel: esi: c12c0180 edi: 00000000 ebp: c03059f8 esp: cdffbf38
Nov 16 16:04:03 second-home kernel: ds: 0018 es: 0018 ss: 0018
[b]Nov 16 16:04:03 second-home kernel: Process kswapd (pid: 4, stackpage=cdffb000)[/b]
Nov 16 16:04:05 second-home kernel: Stack: c12dcf80 00000001 00000005 00000020 000001d0 c03059f8 c03059f8 c013fdfb
Nov 16 16:04:05 second-home kernel: cdffbf7c 00000001 000001d0 0000003c 00000020 c013fec6 cdffbf7c 00000001
Nov 16 16:04:05 second-home kernel: 00000000 00000000 c03059f8 cdffa000 c0305920 00000000 c0140096 c03059f8
Nov 16 16:04:10 second-home kernel: Call Trace: [shrink_caches+43/96] (24) [try_to_free_pages_zone+150/336] (36) [kswapd_balance_pgdat+86/192] (24)
Nov 16 16:04:10 second-home kernel: Call Trace: [<c013fdfb>] (24) [<c013fec6>] (36) [<c0140096>] (24)
Nov 16 16:04:10 second-home kernel: [kswapd_balance+25/48] (16) [kswapd+138/192] (04) [ret_from_fork+6/32] (24) [rest_init+0/48] (20)
Nov 16 16:04:10 second-home kernel: [<c0140119>] (16) [<c014024a>] (04) [<c010905e>] (24) [<c0105000>] (20)
Nov 16 16:04:10 second-home kernel: [rest_init+0/48] (08) [arch_kernel_thread+43/64] (08) [kswapd+0/192] (04)
Nov 16 16:04:10 second-home kernel: [<c0105000>] (08) [<c010736b>] (08) [<c01401c0>] (04)
Nov 16 16:04:10 second-home kernel: Code: 2b 92 bc 00 00 00 c1 f8 03 69 c0 13 da 4b 68 c1 fa 03 69 d2
Danke und Gruß
Stefan
Hallo Stefan,
das sieht nach einem Kernel-Fehler aus. Ich könnte mir, im Zusammenhand mit kswapd, vorstellen, dass der Kernel versucht, Speicher zu allozieren, was aber aus irgendeinem Grund scheitert, sodass malloc() einen Nullzeiger zurückgibt. Wenn dieser Zeiger nun dereferenziert wird, was in C nicht geht, wird diese Fehlermeldung ausgegeben.
Welchen Kernel verwendest du? Verwendest du möglicherweise einen gepatchten Kernel? Versuche es doch mit der aktuellsten 2.6er Version. Oder wenn das nicht klappt, mit der 2.4er. Die scheinen nun wirklich mehr als stabil zu sein, wenn ich mir anschaue, wie selten neue Patches erscheinen.
MfG Dimitri Rettig
Hi,
Ich weiß, dass dieses Thema nicht mehr allzuviel mit HTML zu tun hat, aber ich hoffe, hier einen Experten zu finden :).
Nunja, da LKML und HTML zumindest zu 50% eine Gemeinsamkeit besitzen kann man hier wohl auch mal ein wenig Kerneldebugging betreiben ;-)
Mein Linux Suse 9.0 macht mir in der letzten Zeit öfters mal Probleme, in dem es abschmiert.
Was bedeutet "abschmieren" genau?
Der Grund liegt an einer 0-Pointer-Exception (siehe unten).
Die kommt selten aus dem leerem Raum.
Zuerst dachte ich, da wäre immer ein Skript schuld, das ich auf dem Server immer wieder asuführe, aber wie unten zu sehen ist, ist das hier der Prozess kswapd gewesen, das nächste mal ein php-Prozess.
Alterniert das genau zwischen diesen beiden?
Nov 16 16:04:03 second-home kernel: Oops: 0000
/arch/i386/mm/fault.c:
/*
* This routine handles page faults. It determines the address,
* and the problem, and then passes it off to one of the appropriate
* routines.
*
* error_code:
* bit 0 == 0 means no page found, 1 means protection fault
* bit 1 == 0 means read, 1 means write
* bit 2 == 0 means kernel, 1 means user-mode
*/
Der Rest der Datei ist auch gut kommentiert, sollte man bei ausreichenden Englischkenntnissen wenigstens einmal überflogen haben.
Nov 16 16:04:10 second-home kernel: Call Trace: [shrink_caches+43/96] (24) [try_to_free_pages_zone+150/336] (36) [kswapd_balance_pgdat+86/192] (24)
[...]
Nov 16 16:04:10 second-home kernel: [<c0105000>] (08) [<c010736b>] (08) [<c01401c0>] (04)
Lass doch mal ksymoops drüber laufen, damit genaueres darüber zu sagen ist, wo der Fehler herkommt.
Ist aber vermutlich ein Problem mit irgendwelcher Hardware, ist zumindest eine relativ typische Fehlermeldung dafür, das Hardware (hier evt Netzkarte?) und Treiber an irgendeiner Stelle nicht ganz zusammenpassen.
memtest86 ist übrigens bei Speicherproblemen auch immer ein gute Idee.
so short
Christoph Zurnieden
PS:
2.4.21 sollte upgedated werden. Hilft Dir bei Deinem Problem zwar wahrscheinlich nicht, aber eine Sicherheitslücke wird beseitigt.
CZ