質問: クラッシュからのカーネルパニックメッセージを分析して問題を診断する方法 私のcentos 6.8サーバーは数日おきにクラッシュし、その理由を理解しようとしています。カーネルバージョン2.6.32-642.1.1.el6.x86_64を使用しています。これまでのところ、私はプログラムcrashをインストールして、カーネルパニックから作成されたカーネルダンプをふるい分けできるようにしています。しかし、正直に言って、出力される情報の多くを本当に理解していません。[root@resh boot]# crash /usr/lib/debug/lib/modules/2.6.32-642.1.1.el6.x86_64/vmlinux /var/crash/127.0.0.1-2016-08-02-09\:12\:20/vmcore kernel: /usr/lib/debug/lib/modules/2.6.32-642.1.1.el6.x86_64/vmlinux dumpfile: /var/crash/127.0.0.1-2016-08-02-09:12:20/vmcore [partial dump] cpus: 32 date: tue aug 2 09:09:29 2016 uptime: 12:47:24 load average: 4.78, 4.66, 4.55 tasks: 998 nodename: resh.cluster.org release: 2.6.32-642.1.1.el6.x86_64 version: #1 smp tue may 31 21:57:07 utc 2016 machine: x86_64 (2294 mhz) memory: 31.8 gb panic: "bug: unable to handle kernel null pointer dereference at 0000000000000002" pid: 42993 command: "kslowd002" task: ffff88040d88d520 [thread_info: ffff880100000000] cpu: 7 state: task_running (panic) クラッシュバックトレース:crash> bt pid: 42993 task: ffff88040d88d520 cpu: 7 command: "kslowd002" #0 [ffff8801000039c0] machine_kexec at ffffffff8103fdcb #1 [ffff880100003a20] crash_kexec at ffffffff810d1fe2 #2 [ffff880100003af0] oops_end at ffffffff8154bd00 #3 [ffff880100003b20] no_context at ffffffff810518cb #4 [ffff880100003b70] __bad_area_nosemaphore at ffffffff81051b55 #5 [ffff880100003bc0] bad_area_nosemaphore at ffffffff81051c23 #6 [ffff880100003bd0] __do_page_fault at ffffffff8105231c #7 [ffff880100003cf0] do_page_fault at ffffffff8154dc8e #8 [ffff880100003d20] page_fault at ffffffff8154af95 [exception rip: unknown or invalid address] rip: 0000000000000002 rsp: ffff880100003dd8 rflags: 00010202 rax: ffffffffa0465a80 rbx: ffff8801bc7da200 rcx: ffff8801bc7da2a8 rdx: 0000000000000002 rsi: 00000000ffffffff rdi: ffff8801bc7da200 rbp: ffff880100003e20 r8: ffffffff81ad12d8 r9: fe2582cc8764a601 r10: 0000000000000001 r11: 0000000000000000 r12: 0000000000000000 r13: ffff8801bc7da248 r14: ffff8801bc7da290 r15: 00000000ffffffff orig_rax: ffffffffffffffff cs: 0010 ss: 0018 #9 [ffff880100003dd8] fscache_object_slow_work_execute at ffffffffa0460e9f [fscache] #10 [ffff880100003e28] slow_work_execute at ffffffff81121363 #11 [ffff880100003e68] slow_work_thread at ffffffff81121645 #12 [ffff880100003ee8] kthread at ffffffff810a662e #13 [ffff880100003f48] kernel_thread at ffffffff8100c28a クラッシュログ:bug: unable to handle kernel null pointer dereference at 0000000000000002 ip: [<0000000000000002>] 0x2 pgd 0 oops: 0010 [#1] smp last sysfs file: /sys/devices/system/cpu/online cpu 7 modules linked in: nfs nfsd lockd nfs_acl auth_rpcgss sunrpc 8021q garp stp llc cpufreq_ondemand freq_table pcc_cpufreq cachefiles fscache(t) ipv6 ipt_reject nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack iptable_filter ip_tables xfs exportfs ext2 power_meter acpi_ipmi ipmi_si ipmi_msghandler microcode itco_wdt itco_vendor_support hpilo hpwdt igb i2c_algo_bit i2c_core ptp pps_core sg serio_raw lpc_ich mfd_core ioatdma dca shpchp ext4 jbd2 mbcache sd_mod crc_t10dif hpsa ahci dm_mirror dm_region_hash dm_log dm_mod [last unloaded: scsi_wait_scan] pid: 42993, comm: kslowd002 tainted: g -- ------------ t 2.6.32-642.1.1.el6.x86_64 #1 hp proliant dl360e gen8 rip: 0010:[<0000000000000002>] [<0000000000000002>] 0x2 rsp: 0018:ffff880100003dd8 eflags: 00010202 rax: ffffffffa0465a80 rbx: ffff8801bc7da200 rcx: ffff8801bc7da2a8 rdx: 0000000000000002 rsi: 00000000ffffffff rdi: ffff8801bc7da200 rbp: ffff880100003e20 r08: ffffffff81ad12d8 r09: fe2582cc8764a601 r10: 0000000000000001 r11: 0000000000000000 r12: 0000000000000000 r13: ffff8801bc7da248 r14: ffff8801bc7da290 r15: 00000000ffffffff fs: 0000000000000000(0000) gs:ffff8800380e0000(0000) knlgs:0000000000000000 cs: 0010 ds: 0018 es: 0018 cr0: 000000008005003b cr2: 0000000000000002 cr3: 0000000001a8d000 cr4: 00000000000407e0 dr0: 0000000000000000 dr1: 0000000000000000 dr2: 0000000000000000 dr3: 0000000000000000 dr6: 00000000ffff0ff0 dr7: 0000000000000400 process kslowd002 (pid: 42993, threadinfo ffff880100000000, task ffff88040d88d520) stack: ffffffffa0460e9f ffff880100003e00 ffff8801bc7da238 ffff8801bc7da298 <d> 0000000000000002 ffffffff81f55ec0 ffff8801bc7da290 ffff8801bc7da298 <d> 0000000000000001 ffff880100003e60 ffffffff81121363 ffff880100003e60 call trace: [<ffffffffa0460e9f>] ? fscache_object_slow_work_execute+0xaf/0x1c0 [fscache] [<ffffffff81121363>] slow_work_execute+0x233/0x310 [<ffffffff81121645>] slow_work_thread+0x205/0x360 [<ffffffff810a6ac0>] ? autoremove_wake_function+0x0/0x40 [<ffffffff81121440>] ? slow_work_thread+0x0/0x360 [<ffffffff810a662e>] kthread+0x9e/0xc0 [<ffffffff8100c28a>] child_rip+0xa/0x20 [<ffffffff810a6590>] ? kthread+0x0/0xc0 [<ffffffff8100c280>] ? child_rip+0x0/0x20 code: bad rip value. rip [<0000000000000002>] 0x2 rsp <ffff880100003dd8> cr2: 0000000000000002 誰かがクラッシュの原因を理解していますか?問題の診断に役立つプログラムがあれば、私はそれらを聞くことにオープンです。
回答: 簡単な回答:これは カーネルバグ#13998 に関連しているように見えます(この結論に至った方法については、以下を参照してください)。これは、以降のカーネルバージョンでは再現されていません。この場合は、新しいカーネル(またはcentosの新しいバージョン、同じ違い)にアップグレードすると、fscacheモジュールに関連する問題を解決する必要があります。問題であるfscacheの手がかり:panic: "bug: unable to handle kernel null pointer dereference at 000000000000002" カーネルが意味のないメモリアドレスをロードしようとしたことを意味します。command: "kslowd002" これは、パニックが発生したときにカーネルが実行しようとしていたコマンドです。これは必ずしもこれがクラッシュの原因となったコマンドであったことを意味するわけではありませんが、開始するのに適しています。 kslowdとは何ですか?それについて読んでください ここ 。バックトレースで:#9 [ffff880100003dd8] fscache_object_slow_work_execute at ffffffffa0460e9f [fscache] 前に実行される最後のプロシージャです。[exception rip: unknown or invalid address] これは、カーネルが逆参照できなかったnullポインタです。つまり、カーネルがメモリを調べようとしたが、存在しないためにできなかった場所です。これはfscacheの既知のバグであり、明らかにそれ以降のバージョンのカーネルで解決されました。 ここ は、解決されなかった同じ問題に対するcentos-6固有のバグレポート(#0007782)です。 centosからの推奨事項は、カーネルが利用可能な最新バージョンであることを確認することでもあります。この場合、centosの次の安定したメジャーリリースへのアップグレードが必要になる可能性があります。これらのクラッシュダンプの詳細については、このチュートリアルを強くお勧めします。 http://www.dedoimedo.com/computers/crash-analyze.html