時々、HPE Proliant サーバがシステムのシャットダウン中に NMI によってクラッシュします。
Issue
背景
提供されている hpwdt ドライバ はカーネルの一部であり、最終手段となる NMI ハンドラとして登録されます。その他の登録されている NMI ハンドラによって処理されない NMI が発生した際には、hpwdt ドライバは、システムをダウンします。これは hpwdt ドライバの期待される動作です。
これは、複数の方法で発生しますが、HPE Proliant サーバ上では、基本的に、/dev/watchdog をオープンし、ウォッチドッグを停止することなく、クローズすることによってなされます。これが発生した際には、以下のメッセージが常に表示されます。(注意として、これからは、ウォッチドッグを停止せずに /dev/watchdog をクローズしたプロセスを特定することはできません。)
[ 4900.993470] hpwdt: Unexpected close, not stopping watchdog!
この状況では、hp-asrd が動作していなかった状況ですが、もし、プロセスが存在している場合は、そのプロセスは、(デフォルト 600 秒となる) カウントダウンタイマーを開始します。しかし、当該のプロセスは、/dev/watchdog をデフォルトでは利用せず、ハードウェアと直接やりとりします。もし、hp-asrd が実行されていた場合、このプロセスはデフォルトでは、ウォッチドッグを 1 秒毎にアップデートします。これはつまり、少なくとも 10 分間実行できなかった場合には、hp-asrd が ASR を実行するということを意味します。(シャットダウンが適切に行われている場合には、hp-asrd はカウントダウンタイマーを停止させます。)
詳細
-
システムが以下のパニックメッセージでクラッシュしています。
[ 5492.146364] Kernel panic - not syncing: An NMI occurred. Depending on your system the reason for the NMI is logged in any one of the following resources: 1. Integrated Management Log (IML) 2. OA Syslog 3. OA Forward Progress Log 4. iLO Event Log [ 5492.505988] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-123.9.2.el7.x86_64 #1 [ 5492.605615] Hardware name: HP ProLiant DL380p Gen8, BIOS P70 08/02/2014 [ 5492.692636] ffffffffa03ae2d8 17844fa82b224426 ffff880fffa06de0 ffffffff815e241b [ 5492.789893] ffff880fffa06e60 ffffffff815db8d9 0000000000000008 ffff880fffa06e70 [ 5492.887146] ffff880fffa06e10 17844fa82b224426 ffffffff8101a6a9 ffffc9001cb22072 [ 5492.984397] Call Trace: [ 5493.016447] <NMI> [<ffffffff815e241b>] dump_stack+0x19/0x1b [ 5493.092031] [<ffffffff815db8d9>] panic+0xd8/0x1e7 [ 5493.155010] [<ffffffff8101a6a9>] ? sched_clock+0x9/0x10 [ 5493.224869] [<ffffffffa03ad8ed>] hpwdt_pretimeout+0xdd/0xe0 [hpwdt] [ 5432188793.308464] [<ffffffff815eb0d9>] nmi_handle.isra.0+0x69/0xb0 [ 5493.384033] [<ffffffff815eb246>] do_nmi+0x126/0x340 [ 5493.449296] [<ffffffff815ea531>] end_repeat_nmi+0x1e/0x2e [ 5493.521458] [<ffffffff8131fa67>] ? intel_idle+0xe7/0x160 [ 5493.592448] [<ffffffff8131fa67>] ? intel_idle+0xe7/0x160 [ 5493.663438] [<ffffffff8131fa67>] ? intel_idle+0xe7/0x160 [ 5493.734432] <<EOE>> [<ffffffff814835a0>] cpuidle_enter_state+0x40/0xc0 [ 5493.822634] [<ffffffff814836e5>] cpuidle_idle_call+0xc5/0x200 [ 5493.899368] [<ffffffff8101bcae>] arch_cpu_idle+0xe/0x30 [ 5493.969241] [<ffffffff810b47e5>] cpu_startup_entry+0xf5/0x290 [ 5494.045960] [<ffffffff815c3cb7>] rest_init+0x77/0x80 [ 5494.112394] [<ffffffff81a08fa7>] start_kernel+0x429/0x44a [ 5494.184531] [<ffffffff81a08987>] ? repair_env_string+0x5c/0x5c [ 5494.262390] [<ffffffff81a08120>] ? early_idt_handlers+0x120/0x120 [ 5494.343686] [<ffffffff81a085ee>] x86_64_start_reservations+0x2a/0x2c [ 5494.428419] [<ffffffff81a08742>] x86_64_start_kernel+0x152/0x175
-
IML ログには以下のエントリがあります。
An Unrecoverable System Error (NMI) has occurred (System error code 0x0000002B, 0x00000000)
Environment
- Red Hat Enterprise Linux 7
- kernel-3.10.0-123.13.1.el7.x86_64
- systemd-208-11.el7_0.5.x86_64
- HP ProLiant DL380p Gen8
- HP ProLiant DL380 Gen9
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.