Quelque petits soucis lors d'un upgrade kernel sur un HP Proliant ML350 G3.

L'action : mise à jour noyau du 2.6.18-6-686 Debian vers un 2.6.25-bpo.1-686 puis 2.6.26-bpo.1-686

Le résultat : après les reboot nous obtenions :

[ 115.293610] virtual[3035]: segfault at 9bd844b8 ip b7c92d5b sp bfcde0d0 error 4 in libc-2.3.6.so[b7b96000+127000]
[ 117.156483] smokeping[3029]: segfault at 9be1c4b8 ip b7f5ed5b sp bfbec9ac error 4 in libc-2.3.6.so[b7e62000+127000]
[ 119.843435] authdaemond[2700]: segfault at 9bfa34b8 ip b7ebed5b sp bfe551b0 error 4 in libc-2.3.6.so[b7dc2000+127000]
[ 119.850857] authdaemond[3193]: segfault at 9bfa34b8 ip b7ebed5b sp bfe551b0 error 4 in libc-2.3.6.so[b7dc2000+127000]
[ 119.861912] authdaemond[3197]: segfault at 9bfa34b8 ip b7ebed5b sp bfe551b0 error 4 in libc-2.3.6.so[b7dc2000+127000]
[ 119.881931] authdaemond[3204]: segfault at 9bfa34b8 ip b7ebed5b sp bfe551b0 error 4 in libc-2.3.6.so[b7dc2000+127000]
[ 123.437760] authdaemond[3209]: segfault at 9bfa34b8 ip b7ebed5b sp bfe551b0 error 4 in libc-2.3.6.so[b7dc2000+127000]
[ 126.109079] sympa.pl[3223]: segfault at 9b9884b8 ip b7e94d5b sp bfb22d6c error 4 in libc-2.3.6.so[b7d98000+127000]
[ 126.122140] authdaemond[3215]: segfault at 9bfa34b8 ip b7ebed5b sp bfe551b0 error 4 in libc-2.3.6.so[b7dc2000+127000]
[ 126.510816] authdaemond[3225]: segfault at 9bfa34b8 ip b7ebed5b sp bfe551b0 error 4 in libc-2.3.6.so[b7dc2000+127000]
[ 127.022884] archived.pl[3237]: segfault at 9b9da4b8 ip b7ee5d5b sp bfb745ac error 4 in libc-2.3.6.so[b7de9000+127000]
[ 127.936428] task_manager.pl[3240]: segfault at 9ba634b8 ip b7f6ed5b sp bfffba2c error 4 in libc-2.3.6.so[b7e72000+127000]

avec les deux version et reproductible à chaque fois.

La libc faisant plus que rarement des segfaults nous sommes orientés vers un problème mémoire puis matériel mais après moult tests, que néni, rien de tout cela.

En grattant un peu plus loin nous avons trouvé dans /var/log/dmesg.*.gz :

[ 0.000000] ------------[ cut here ]------------
[ 0.000000] WARNING: at arch/x86/kernel/rtc.c:124 mach_get_cmos_time+0xb6/0x161()
[ 0.000000] Modules linked in:
[ 0.000000] Pid: 0, comm: swapper Not tainted 2.6.26-bpo.1-686 #1
[ 0.000000] [<c0122587>] warn_on_slowpath+0x40/0x66
[ 0.000000] [<c02b42ea>] cpu_init+0x233/0x23b
[ 0.000000] [<c0122e00>] vprintk+0x21f/0x2e1
[ 0.000000] [<c0389f31>] init_apic_mappings+0x2a8/0x2c2
[ 0.000000] [<c02b9dab>] _spin_lock_irqsave+0x16/0x2f
[ 0.000000] [<c02b9e39>] _spin_unlock_irqrestore+0xd/0x10
[ 0.000000] [<c0122a2d>] release_console_sem+0x173/0x18c
[ 0.000000] [<c0122eb6>] vprintk+0x2d5/0x2e1
[ 0.000000] [<c0108f00>] fpregs_get+0x20/0xcc
[ 0.000000] [<c0391f1d>] __alloc_bootmem_core+0x129/0x2ba
[ 0.000000] [<c010872b>] rtc_cmos_read+0x5f/0x66
[ 0.000000] [<c01089c9>] mach_get_cmos_time+0xb6/0x161
[ 0.000000] [<c01088d5>] read_persistent_clock+0x14/0x27
[ 0.000000] [<c0390792>] timekeeping_init+0xc/0x12f
[ 0.000000] [<c03902b3>] pidhash_init+0x5f/0x8a
[ 0.000000] [<c037f722>] start_kernel+0x19b/0x2d7
[ 0.000000] =======================
[ 0.000000] ---[ end trace 4eaa2a86a8e2da22 ]---0

Ouch! vilain.

Puis grâce à ce cher Google nous avons découvert ce joli bug RTC du kernel qui semble être spécifique aux HP Prolaint ML350 G*

https://bugs.launchpad.net/debian/+source/linux-2.6/+bug/314378

En suivant le lien redhat-bugs #451188 en haut de page nous constatons qu'il est signalé que ce bug est corrigé dans la branche Git du 2.6.27 de Linus.

Un peu de patience avant les upgrades sur ce type de hardware :).