Created on 2018-02-07
Modified on 2018-02-08
Published on 2018-07-10
某サーバ上のcron.dailyが2017年12月26日以降動いていない。
/usr/bin/rkhunter
の13500行目でlsofがD
stateで固まっていた。
どうやらバグを踏んでいるようだが、CentOS 6.9にバックポートされてないようだ。。。
固まってしまったlsofのプロセスは、KILLシグナルで止めることが出来る。 rkhunterが固まる件のworkaroundは、rkhunterのcron jobにタイムアウトを設定こと。 少なくともcron.dailyが長時間止まることはなくなる。 他のプロセスでも起こりうるが、発生頻度が低そうなので、個別対応すればOK。
結局、rkhunterは停止することにした。 どーせ、ローカルに配信されたメールは誰も見てないし、rkhunterは踏み台サーバの高負荷の原因だったりするし。 今回の障害原因となったバグは、発生頻度は低そうだから放置・・・
[yuuki@gate ~]$ ps a -AFH |grep 2017 |grep N
root 126 2 0 0 0 1 2017 ? SN 0:00 [ksmd]
root 127 2 0 0 0 1 2017 ? SN 2:05 [khugepaged]
root 26946 26791 0 26527 304 0 2017 ? SN 0:00 /bin/bash /usr/bin/run-parts /etc/cron.daily
root 27250 26946 0 26527 304 1 2017 ? SN 0:00 /bin/sh /etc/cron.daily/rkhunter
root 30044 27250 0 27621 316 6 2017 ? SN 0:16 /bin/sh /usr/bin/rkhunter --cronjob --nocolors --report-warnings-only
root 28059 30044 0 26488 328 5 2017 ? SN 0:00 /usr/sbin/lsof -wnlP +c 0
root 28063 28059 0 26320 40 1 2017 ? DN 0:28 /usr/sbin/lsof -wnlP +c 0
root 28060 30044 0 25830 240 2 2017 ? SN 0:00 egrep -v (FIFO|V?DIR|IPv[46])
root 28061 30044 0 38861 280 3 2017 ? SN 0:00 sort
root 28062 30044 0 25232 188 4 2017 ? SN 0:00 uniq
root 27251 26946 0 26491 204 4 2017 ? SN 0:00 awk -v progname=/etc/cron.daily/rkhunter progname {????? print progname ":\n"????? progname="";???? }???? { print; }
[root@gate ~]# cat /proc/28059/stack
[<ffffffff81080f44>] do_wait+0x1e4/0x240
[<ffffffff81081043>] sys_wait4+0xa3/0x100
[<ffffffff8100b0d2>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff
[root@gate ~]# cat /proc/28063/stack
[<ffffffffa03a75f2>] rpc_wait_bit_killable+0x42/0xa0 [sunrpc]
[<ffffffffa03a7b35>] __rpc_execute+0xf5/0x350 [sunrpc]
[<ffffffffa03a7df1>] rpc_execute+0x61/0xa0 [sunrpc]
[<ffffffffa039e475>] rpc_run_task+0x75/0x90 [sunrpc]
[<ffffffffa039e592>] rpc_call_sync+0x42/0x70 [sunrpc]
[<ffffffffa045cb9c>] nfs3_rpc_wrapper.clone.0+0x6c/0xc0 [nfs]
[<ffffffffa045df27>] nfs3_proc_getattr+0x47/0x90 [nfs]
[<ffffffffa044b293>] __nfs_revalidate_inode+0xe3/0x220 [nfs]
[<ffffffffa044bfc2>] nfs_revalidate_inode+0x22/0x60 [nfs]
[<ffffffffa044686b>] nfs_lookup_revalidate+0x2cb/0x690 [nfs]
[<ffffffff811a770c>] force_reval_path+0x3c/0x60
[<ffffffff811aaf72>] __link_path_walk+0xf52/0x1060
[<ffffffff811ab33a>] path_walk+0x6a/0xe0
[<ffffffff811ab54b>] filename_lookup+0x6b/0xc0
[<ffffffff811ac677>] user_path_at+0x57/0xa0
[<ffffffff8119fa30>] vfs_fstatat+0x50/0xa0
[<ffffffff8119fbab>] vfs_stat+0x1b/0x20
[<ffffffff8119fbd4>] sys_newstat+0x24/0x50
[<ffffffff8100b0d2>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff
[root@gate ~]# cat /proc/28060/stack
[<ffffffff811a4a4b>] pipe_wait+0x5b/0x80
[<ffffffff811a546d>] pipe_read+0x34d/0x4d0
[<ffffffff81199bfa>] do_sync_read+0xfa/0x140
[<ffffffff8119a4f5>] vfs_read+0xb5/0x1a0
[<ffffffff8119a841>] sys_read+0x51/0xb0
[<ffffffff8100b0d2>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff