2019-06-11

NetBSD/i386 8.99.41 kernel panic at /usr/src/sys/kern/kern_condvar.c line 170

dynabook SS SX/15Aで利用しているNetBSD/i386のパッケージを更新するためにpkg_rolling-replaceを実行しています。ビルドに時間がかかりますが、エラーが出ないのであれば、待っていれば終わるので、1週間くらいは待つつもりでいます。しかし何故か毎晩深夜にカーネルが落ちてしまい、処理が中断してしまうのです。

何分にも旧いマシンなので、ハードウェアに何か故障があっても不思議ではありません。ちなみに/var/carshにはメモリイメージが残っているのですが、カーネルの解析は難しいので、見ても判らないので放置していました。

毎晩カーネルが落ちて処理が中断するので、クラッシュした場所くらいは確認しておこうと思うようになりました。その結果を見ると、どうも同じ場所で落ちています。
# gunzip netbsd.15.core.gz
# gunzip netbsd.15.gz
# crash -M netbsd.15.core -N netbsd.15
Crash version 8.99.41, image version 8.99.41.
System panicked: kernel diagnostic assertion "(l->l_pflag & LP_INTR) == 0 || panicstr != NULL" failed: file "/usr/src/sys/kern/kern_condvar.c", line 170
Backtrace from time of crash is available.
crash> bt
_KERNEL_OPT_NARCNET(0,104,c011b026,8,c06f21c3,c1137ded,0,104,c10a6888,dc6bdee8) at 0
_KERNEL_OPT_BEEP_ONHALT_COUNT(104,0,c10a6888,dc6bdee8,c4d142e0,c516abe8,c516abe4,dc6bdedc,c0db688e,c10a6888) at _KERNEL_OPT_BEEP_ONHALT_COUNT+0x1
vpanic(c10a6888,dc6bdee8,dc6bdf0c,c090b6a0,c10a6888,c10a67ef,c115b35c,c115b338,aa,c5169000) at vpanic+0x13d
kern_assert(c10a6888,c10a67ef,c115b35c,c115b338,aa,c5169000,c4d142e0,c5169000,c516abe4,c516abe8) at kern_assert+0x23
cv_wait(c516abe8,c516abe4,ffffffff,c4d11140,20000000,c4d142e0,c5169000,dc6bdf94,c02cc8e8,c5169004) at cv_wait+0x1a8
wpi_stop(c5169004,1,8,20000000,2,0,dc9c7810,c5422940,c0920e86,6) at wpi_stop+0x80
wpi_softintr(c5169000,0,c0100400,1673000,1670010,30,c0100010,10,0,1d14020) at wpi_softintr+0x2cb
softint_dispatch(c51d70a0,4,37bbaff2,a1a6dfbe,36bef7da,27b6dfdb,dc6c0ff0,dc6c0e14,dc6c0e68,80050033) at softint_dispatch+0xc1
Bad frame pointer: 0xc4fdbe48
crash>
ハードウェアの故障でクラッシュしているなら、落ちる場所がランダムに変わるのではないかと思います。それなのにクラッシュしている場所がいつも同じという事は、カーネルの何処かにバグがあるのかもしれません。

0 件のコメント:

コメントを投稿