Co se všechno může stát po odpojení obyčejné USB klávesnice od serveru.
Potřeboval jsem USB klávesnici pro instalaci jiného počítače, tak jsem si ji odpojil od serveru (proč ne, je to hot plug device). Pak se začaly dít věci, v dmesg jsou o tom záznamy:
irq 169: nobody cared (try booting with the "irqpoll" option) Call Trace: <IRQ> [<ffffffff800bb902>] __report_bad_irq+0x30/0x7d [<ffffffff800bbb35>] note_interrupt+0x1e6/0x227 [<ffffffff800bb031>] __do_IRQ+0xbd/0x103 [<ffffffff8001241d>] __do_softirq+0x89/0x133 [<ffffffff8006ca0d>] do_IRQ+0xe7/0xf5 [<ffffffff8005d615>] ret_from_intr+0x0/0xa <EOI> handlers: [<ffffffff801f7652>] (usb_hcd_irq+0x0/0x55) Disabling IRQ #169 usb 5-2: USB disconnect, address 2
Nejvíc se mi líbí hláška „nobody cared
“ :-D. Kernel panic v nějakém IRQ/USB modulu by ještě nebyl takový problém, ale kernel se naštval a postaral se, aby se o to „někdo postaral"
.
Pokračujeme v dmesgu, zde spadl proces munina pro kontrolu času:
ntp_tak_cesnet_[21760]: segfault at 00000000669fcbb0 rip 0000003fcc68a33b rsp 00007fffc8e06130 error 4
A potom pro jistotu celý monitorovací agent:
munin-node[3048]: segfault at 0000000020000000 rip 0000003fcc684e18 rsp 00007fffb1df3ae0 error 4
Zde pak příkaz pro zjištění stavu samby (na desktopu mi vypadlo sdílení, to jsem ještě netušil, že příčinou je odpojená klávesnice, hledat jsem tedy důvody):
smbstatus[23406]: segfault at 00000000c1000348 rip 00002b5ddc45aaf7 rsp 00007fff77b07b20 error 4
Tohle je už vážnější, prostě popadaly nějaké procesy. Kernelu to zřejmě pořád bylo málo, tak přidal:
mm/memory.c:120: bad pmd ffff810130a01440(0000000040000000). swap_free: Bad swap file entry 00e00000
Pád v jádře a to ještě přímo v memory managementu je už pořádný důvod, se o to postarat. Připomínám, že žádný swap file nepoužívám. MM se prostě zbláznil :-(.
Na dálku se to bojím restartnout, stroj zatím běží a potřebné služby jedou. Ani FS nehlásí problém. Připojím k tomu monitor, rebootuju to lokálně a dám vám ještě vědět.
Každopádně, po tomto incidentu už se jádro nemusí obávat, že bych ještě někdy dopustil „nobody cares“.
Konec dobrý, všechno dobré. Po rebootu (nikoliv reset, jak psal Hodža), všechno naběhlo, data (alespoň ta, která se dosud zkontrolovala), jsou v pořádku. Jediná divná služba serveru před rebootem byla munin-node.
Update 12.3.2011
Tak vše je jinak. USB za to přímo nemůže, poté to padlo ještě několikrát na jiných místech. Za všechno může vadná paměť.