Oops - woher?
Jan 'RedBully' Seiffert
redbully at cc.fh-luh.de
Sun Oct 29 02:30:47 CET 2006
Florian Schwarz wrote:
> Jan-Benedict Glaw schrieb:
>> On Thu, 2006-10-26 19:43:57 +0200, Florian Schwarz <floh at linland.de> wrote:
>>> Das war das, was mir der syslogd auf die SSH Konsole gekotzt hat. Auf
>>> der "richtigen" Konsole stand noch mehr, aber ich weiß nicht wie ich das
>>> ordentlich logge. In der messages habe ich noch was gefunden, hängt ma
>> $ dmesg > outputdatei
>
> So, habs jetzt mal geschafft son Oops einzufangen! Hängt mal wieder als
> Anhang dran.
>
> Hilft das weiter?
>
^_^
Ja ... und Nein.
Also:
> BUG: unable to handle kernel NULL pointer dereference at virtual address 00000044
Dein kernel hat sich "vergegriffen", das sollte nicht passieren.
Moegliche Gruende sind, das irgendwo ein Test auf NULL vergessen wurde,
oder das irgendwo NULL ankam, wo nach Programm-konventionen keins
ankommen sollte.
Ein blick in deine Register zeigt ja genug 0-len ;)
Mit dem "at virtual address 00000044" spekulier ich jetzt mal wild, das
vorher ein Pointer verbogen wurde in unsinnige gefilde, und dann
letzteres passierte.
Der callstack zeigt in das Memorysystem des Kernels (so mit
swapper-thread und shrink_slab), aber, der ist wohl nur der, der da
drueber gestolpert ist, also nicht der Ausloeser. Den Fehler verursacht
warsch. wer anders.
Was uns zum "Hauptproblem" bringt: Der Kernel ist Tainted. Binaer modul
geladen? fcpci? FritzCard?
_So_ wird sich das keiner angucken, und ist auch oft der Grund fuer
sowas. (Sowas kommt von sowas? ^_^ )
(Das riecht boese nach verpfuschten Speicherverwaltungsinformationen,
Binaermodule sind beruechtigt fuer sowas, da ihre Programmierer oft
nicht mit den Subtilitaeten des Linux-Speichersystems klarkommen (Windos
macht doof^w^w^w, sorry vorgeschrittene Stunde...), und keiner den Code
noch mal reviewed, der "sich damit auskennt")
Verschieb es weg, loesch es, was auch immer, mach den Kernel clean (NB:
ich hab die Taint-Flags, die er da ausgibt grad nicht im Kopf, der
Kernel tainted sich auch glaub ich selbst, wenn vorher schon ein Ooops
auftritt, falls ich mit Binaermodul daneben liege, such ggf. mal
"oberhalb" in den logs), und versuch den Fehler zu reproduzieren. Wenn
Binaermodul und ohne nicht reproduzierbar -> an Hersteller wenden.
Ach und nicht erschrecken, Jan-Benedict hat sicher noch ein paar
deutlichere Worte.
*duck*
> Gruß,
> Floh
>
Gruss
Jan
>
> ------------------------------------------------------------------------
>
> printing eip:
> c02821b2
> *pde = 00000000
> Oops: 0002 [#1]
> SMP
> Modules linked in: fcpci aes dm_crypt ext2 mbcache nfsd exportfs lockd nfs_acl sunrpc ipv6 capi capifs parport_pc parport floppy pcspkr 8139too 8139cp mii uhci_hcd shpchp pci_hotplug amd64_agp agpgart dm_snapshot dm_mirror dm_mod sata_promise sg sata_via libata snd_via82xx gameport snd_ac97_codec snd_ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore it87 hwmon_vid eeprom i2c_isa i2c_viapro i2c_core capidrv kernelcapi nls_utf8 nls_iso8859_15 nls_cp850 sd_mod usb_storage scsi_mod ehci_hcd usbcore hisax crc_ccitt isdn slhc ide_generic ide_cd cdrom genrtc xfs ide_disk generic via82cxxx ide_core evdev
> CPU: 0
> EIP: 0060:[<c02821b2>] Tainted: PF VLI
> EFLAGS: 00010283 (2.6.18-1-k7 #1)
> EIP is at _spin_lock+0x1/0xf
> eax: 00000044 ebx: 00000000 ecx: 00000001 edx: efdfdd90
> esi: efdfdd90 edi: 00000061 ebp: 00000061 esp: c1a69f10
> ds: 007b es: 007b ss: 0068
> Process kswapd0 (pid: 143, ti=c1a68000 task=c19d1ab0 task.ti=c1a68000)
> Stack: c015cd0f efdfdc9c 00000000 c016de10 00000080 efdc23e4 f07dbb64 00002580
> c18deac0 00000081 000000d0 c014761f 00096000 00000000 00096000 00039318
> 00000080 00000000 00000000 c02cdc80 c02cdc80 00000003 c01479d4 00000000
> Call Trace:
> [<c015cd0f>] remove_inode_buffers+0x2b/0x58
> [<c016de10>] shrink_icache_memory+0xc5/0x1bb
> [<c014761f>] shrink_slab+0xd3/0x13c
> [<c01479d4>] kswapd+0x2b5/0x3a0
> [<c012db49>] autoremove_wake_function+0x0/0x2d
> [<c014771f>] kswapd+0x0/0x3a0
> [<c012da7b>] kthread+0xc2/0xef
> [<c012d9b9>] kthread+0x0/0xef
> [<c0101005>] kernel_thread_helper+0x5/0xb
> Code: 05 90 ff 02 30 c9 89 c8 c3 89 c2 90 81 28 00 00 00 01 0f 94 c0 84 c0 b9 01 00 00 00 75 09 90 81 02 00 00 00 01 30 c9 89 c8 c3 90 <fe> 08 79 09 f3 90 80 38 00 7e f9 eb f2 c3 90 81 28 00 00 00 01
> EIP: [<c02821b2>] _spin_lock+0x1/0xf SS:ESP 0068:c1a69f10
>
>
--
pod* a;
pott* b;
a = (pod *)b;
Ein echter Podcast :-D
More information about the Linux
mailing list