Portál AbcLinuxu, 17. července 2025 04:42


Dotaz: Network a disk IO synchronizace, kernel pannic

Lukáš Benda avatar 18.6.2007 13:38 Lukáš Benda | skóre: 12 | blog: benBlog | Štítina
Network a disk IO synchronizace, kernel pannic
Přečteno: 305×
Odpovědět | Admin
Dobry den,

Mam problem se serverem, ktery slouzi jako uloziste dat (teda hlavne pro sambu). Na serveru jsou ulozene ruzne data poskytnute adresare jsou pak mapovany jako disky k uzivatelum. Bohuzel obcas se mi server zhrouti, kdyz uzivatele pracuji x xsl soubory (primo ze site). Ty XSL soubory jsou vytvoreny dost hrozne (ad 1: maji fakt dlouha jmena s diakritikou. Ad 2: maji ruzne provazane bunky na jine xsl soubory, ktere taky lezi na sdilenem disku).

Kdyz pak nekdo tekovy soubor otevre a zacne ho editovat, po chvili dojde ke zhrouceni serveru. Problem vsak neni primo v sambe, protoze stejny problem je tu i po te co jsem cely disk prekopiroval na windows ktery bezi pod vmware.

Z toho bych usuzoval ze je problem nekde v synchronizaci sitovych a diskovych operaci.

Kde mam hledat chybu? Muze tohle opravit spravne nastaveni IPtables?

P.S.: Zhroucenim systemu myslim Kernel panic.
Google bomba: benzin blog
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.6.2007 14:14 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Odpovědět | | Sbalit | Link | Blokovat | Admin
Není to spíš problém hardwaru? Kernel panic kvůli chybě nějakého softwaru, to by byla trochu silná káva…
Lukáš Benda avatar 18.6.2007 22:05 Lukáš Benda | skóre: 12 | blog: benBlog | Štítina
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Zda se mi to sice divne, ale kdybych to pripustil, tak bych musel najit, kde je chyba v HW. Muze byt ve spatnem nastaveni jadra? (nastavoval jsem ho a kompiloval sam).

Jak poznat z ceho ta chyba pochazi?
Google bomba: benzin blog
18.6.2007 22:42 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Nic není nemožné. Např. na Fedoře před asi dvěma roky nebyl problém nachytat jádro při cyklickém automountování.
18.6.2007 14:56 K
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Odpovědět | | Sbalit | Link | Blokovat | Admin
Neni neco zajimavyho ke cteni ve /var/log/messages ? Mozna by stalo za to otestovat pamet. Co to napise kdyz to spadne ? Proc vznikne ta panika ? Pise to treba jmeno ovladace ?
Lukáš Benda avatar 18.6.2007 22:04 Lukáš Benda | skóre: 12 | blog: benBlog | Štítina
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
No problem je v tom, ze /var/log/messages nic moc zajimaveho neobsahuje mam sice vyfocenou obrazovky kdyz to padne, ale z toho nejsem moc chytry. http://server.apnet.cz/error/

Kdyz jsem to jel pres sambu tak to psalo chybu v smb, nebo cifs modulu. Pak jsem ty moduly proste z jadra vyhodil (samba server bezi i bez toho) a uz to prestalo psat jmena ovladacu uplne, ale i tak to lehlo. Kdyz to jede pres wmvare server, tak to taky zadne jsmeno modulu nenapise.

Skutecne to co provadi Excel kdyz se snazi pracovat se souborem se spoustou bunek ktere odkazuji na ruzne dalsi soubory, je dost brutalni protoze kvuli kazde bunce je ten soubor otevren znovu.

Pameti jsem testoval okamzite po padu a nic spatneho nehlasily. Vymenil jsem disk mezi stroji (mam 6 stroju totozne konfigurace) a taky se nic nezmenilo.

Sice nemuzu vyloucit chybu v HW, ale kdyz k chybe dochazi prave v kobinaci s Excelem, tak je to podivne.
Google bomba: benzin blog
michich avatar 18.6.2007 22:32 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
http://server.apnet.cz/error/
Dostávám Error 403 Forbidden.
Lukáš Benda avatar 18.6.2007 22:53 Lukáš Benda | skóre: 12 | blog: benBlog | Štítina
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Spatne nastavene opravneni uz je to spraveno.
Google bomba: benzin blog
18.6.2007 22:33 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Ty fotky mají špatná práva, nelze je otevřít.
michich avatar 18.6.2007 23:04 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Je to sice hrozně špatně čitelné, ale je z toho patrné, že to padlo v rhine_interrupt, čili v obsluze přerušení od síťovky. Zkus nejnovější -rc kernel a jestli to bude padat i v něm, tak se pokus zachytit Oops tak, aby šel lépe přečíst, a vystav ho někde spolu se svým přeloženým modulem via-rhine.o.
19.6.2007 09:08 K
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Presne tak, vypada to na modul sitovky. Zkus kernel jine verze jestli se to bud opakovat. S tim pravdepodobne souvisi i to padani samby. Kdyz zablbne ten ovladac tak se slozi.
Lukáš Benda avatar 19.6.2007 10:04 Lukáš Benda | skóre: 12 | blog: benBlog | Štítina
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Opakuje se to dlouhodobe od kernelu 2.16 po 2.19 tedka zkusim 2.20 ale myslim ze to nepomuze. Zkusim ale tu sitovku zkompilovat jako modul.
Google bomba: benzin blog
Lukáš Benda avatar 19.6.2007 10:05 Lukáš Benda | skóre: 12 | blog: benBlog | Štítina
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Sakrys samozrejme 2.6. atd :D
Google bomba: benzin blog
Lukáš Benda avatar 22.6.2007 09:24 Lukáš Benda | skóre: 12 | blog: benBlog | Štítina
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Odpovědět | | Sbalit | Link | Blokovat | Admin
No tak jsem nainstaloval nejnovejsi verzi kernelu 2.6.20-r8 (gentoo).

00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)

Tyhle chybu jesem opsal z monitoru pred rekompilaci noveho jadra:
Oops: 0002 [#1]
Modules linked in: vmnet(P) vmmon(P) af_packet
CPU:    0
EIP:    0060:[<c026e1e1>]        Tainted: P        VLI
EFLAGS:	00010286  (2.6.19-gentoo-r5 #9)
EIP is at rhine_interrupt+0x5e1/0x910
eax: 8596290  ebx: 00010000  ecx: 00000002  edx: 0000e400
esi: 0000000  edi: 00016809  ebp: c146b25f  esp: c0445f2c
ds: 007b  es: 007b  ss: 0068
Process swapper (pid: 0, ti=c0444000 task=c03d5420 task.ti=c0444000)
Stack: c049669c 00000282 c153aac0 c0496420 00000282 c146b000 0001e400 00000002
       00000014 dde4ae00 dde4ea00 dd2f88e0 00000000 00000000 00000000 0000000b
       c012ae81 c043af80 0000000b ca445fb4 00000580 c012bebf 00000000 0000000b
Call Trace:
 [<c012ae81>] handle_IRQ_event+0x1a/0x3f
 [<c012bebf>] handle_level_irq+0x66/0xa3
 [<c01049bc>] do_IRQ+0x6b/0x83
 [<c034c4d6>] __sched_text_start+0x486/0x4e9
 [<c010306e>] common_interrupt+0x1a/0x20
 [<c01016b3>] default_idel+0x31/0x59
 [<c0101715>] cpu_idle+0x3a/0x4f
 [<c044665a>] start_kernel+02a6/0x2aa
 [<c04461ea>] unknown_bootoption+0x0/0x206
Code: 49 c0 e8 1d 9b ea ff 53 9d 8b 85 d0 01 00 00 c7 84 bd 90 00 00 00 00 00 00 00 40 89 85 d0 01 00 00 89 c7 8b 85 cc 01 00 00
 83 e7 <0f> 39 85 d0 01 00 00 0f 85 89 fe ff ff 8b 85 cc 01 00 00 2b 85
EIP: [<c026e1e1>] rhine_interrupt+0x5r1/0x910 SS:ESP 0068:c0445f2c
 <0>Kernel panic - not syncing: Fatal exception in interrupt
Dneska mi to lehlo znovu i kdyz jsem prikompiloval moznost "Use MMIO instead of PIO" a "Use Rx Polling (NAPI)". Bohuzel jsem nemel cas opisovat celou chybu z obrazovky. Jenom na radku byli jine moduly. "vmnet(P) vmmon(P) ar_packet via_rhine".

V /var/log/messages nic zajimave neni.
Google bomba: benzin blog
michich avatar 23.6.2007 10:42 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic

Opravdu by se hodil i ten soubor drivers/net/via-rhine.o. A kdybys mohl udělat make drivers/net/via-rhine.s a ten soubor pak taky vystavit, bylo by to ještě lepší. Všechny 3 věci (2 soubory a ten výpis Oops) musí být ze stejné verze, aby to k něčemu bylo.

Vidím, že tento výpis je z jádra pošpiněného proprietárními moduly. Ale ten první Oops byl skoro stejný a z čistého jádra, takže tím to není.

Lukáš Benda avatar 28.6.2007 11:00 Lukáš Benda | skóre: 12 | blog: benBlog | Štítina
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic
Tady je opis chyby tak jak vyskocila dneska.

Na tehle adrese je jak modul via-rhine.ko, ktery pouzivam (bez jakehokoli parametru) a v podadresari via je vsechno z /usr/src/linux/drivers/net/via-*. Taky jsem provedl extra ten make, ktery jste pozadoval.

http://server.apnet.cz/error/

Oops: 0000 [#1]
Modules linked in: vmnet(P) vmmon(P) ar_packet via_rhine
CPU:    0
EIP:    0060:[<de873a8a>]        Tainted: P        VLI
EFLAGS: 00010293  (2.6.20-gentoo-r8 #1)
EIP is at rhine_interrupt+0270/0x605 [via-rhine]
eax: 0007a590 ebx: 00000000  ecx: 00000002  edx: 0007a5fc
esi: 00000000 edi: 00000000  ebp: c1612a60  esp: c044ff3c
ds: 007b  es: 007b  ss: 0068
Process swapper (pid: 0, ti=c044e000 task=c040b420 task.ti=c044e000)
Stack: 00000000 00000286 00000100 c048a540 c011a8ef de836000 00000002
       00000014 00000000 dde208a0 00000000 00000000 c012aa91 c0444f80
       0000000b c0442000 004cf007 c012baea 00000000 c01049b9 c044ffe4
Call Trace:
 [<c011a8ef>] process_timeout+0x0/0x5
 [<c012aa91>] handle_IRQ_event+0x1a/0x3f
 [<c012baea>] handle_level_irq+0x66/0xa0
 [<c01049ba>] do_IRQ+0x5c/0x73
 [<c0103057>] common_interrupt+0x23/0x28
 [<c0101719>] default_idel+0x27/0x39
 [<c0100f33>] cpu_idle+0x3a/0x4f
 [<c045065b>] start_kernel+02ab/0x2af
 [<c04501ae>] unknown_bootoption+0x0/0x202
=======================
Code: 00 83 3d 80 70 87 de 06 7e 1f 89 f8 c1 fb 03 83 e0 0f 89 44 24 08 89 5c 24
 08 89 5c 24 04 c7 04 24 c0 r1 18 61 db 9c 82 a3 9b b0 90 <26> a1 df bd 6e ec
 d6 ed ef 8a b4 d2 e7 e1 73 b5 2a 64 cc 5d b6
EIP: [<de873a8a>] rhine_interrupt+0x270/0x608 SS:ESP 0068:c044ff3c
 <0>Kernel panic - not syncing: Fatal exception in interrupt
Google bomba: benzin blog
michich avatar 28.6.2007 13:44 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Network a disk IO synchronizace, kernel pannic

Bezva. Tak jsem to prozkoumal. Bylo to trošku komplikovanější, protože při přepisování Oopsu jste se buď musel několikrát splést a nebo byl systém v daleko horším stavu, než to na první pohled vypadalo, takže nebyl schopen Oops korektně vypsat. Očividné chyby jsou např.:

EIP is at rhine_interrupt+0270/0x605 [via-rhine]
...
EIP: [<de873a8a>] rhine_interrupt+0x270/0x608 SS:ESP 0068:c044ff3c

Jednou má funkce délku 0x605, podruhé 0x608. Správná hodnota je 0x605.

Code: ... r1 ...

Velmi zvláštní hexadecimální číslo.

Ten kód jsem podrobil detailnějšímu zkoumání. Napřed jsem v objektu via-rhine.o vůbec nemohl najít kus, který by tomu odpovídal, ale pak se přece jen něco objevilo. Ten kód je zhruba toto:

83 3d 80 70 87 de 06	cmpl   $0x6, 0xde877080
7e 1f			jle    +0x1f
89 f8			movl   %edi,%eax
# správně tady mělo být asi s/f8/d8/ a tudíž s/edi/ebx/
c1 fb 03		sarl   $0x3,%ebx
83 e0 0f		andl   $0xf,%eax
# myslím, že zde vypadla celá jedna instrukce:
# 83 e3 0f		andl   $0xf,%ebx
89 44 24 08		movl   %eax,0x8(%esp)
# a tahle je tu naopak navíc:
89 5c 24 08		movl   %ebx,0x8(%esp)
89 5c 24 04		movl   %ebx,0x4(%esp)
c7 04 24 c0 r1(!) 18 61	movl   $0x6118r1c0(!),(%esp)
# teď měl následovat call na printk a další instrukce,
# ale následující byty jsou naprosto mimo:
db 9c 82 a3 9b b0 90 <26> a1 df bd 6e ec
d6 ed ef 8a b4 d2 e7 e1 73 b5 2a 64 cc 5d b6

Prostě ten kód odpovídá programu v via-rhine.s od labelu ".L461:" dále. Jenže od toho volání printk dále už to vůbec jako ten správný kód nevypadá ani omylem. Ve zdrojáku je to tahle část funkce rhine_tx():

if (rp->quirks & rqRhineI)
	rp->stats.collisions += (txstatus >> 3) & 0x0F;
else
	rp->stats.collisions += txstatus & 0x0F;
if (debug > 6)
	printk(KERN_DEBUG "collisions: %1.1x:%1.1x\n",
	       (txstatus >> 3) & 0xF,
	       txstatus & 0xF);
rp->stats.tx_bytes += rp->tx_skbuff[entry]->len;
rp->stats.tx_packets++;

Takže jaké jsou možnosti:

  • Byl jste velmi unaven a opsal něco úplně jiného. :-)
  • Poškození kódu má tentokrát opravdu na svědomí ten VMware.
  • Pamět programu přepsalo něco úplně jiného. Zběsilý DMA přenos? Ale ten by se asi netrefil pokaždé do toho interrupt handleru, dokonce v různých verzích Linuxu.
  • Vadná paměť. Taky nepravděpodobné, že by postihla vždycky stejnou funkci.
  • Opravdu je nějaká chyba v tom přičítání statistik a to, že kód v Oopsu neodpovídá, není důležitá indicie. Zkuste tu část programu prostě zakomentovat. Nebudete dostávat statistiky o kolizích, ale koho by to trápilo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.