日別アーカイブ: 2024年10月10日

whoisをaptで入れたかっただけなのにnfsが止まっているだけで固まったっぽい

sudo apt install whois

入っていなかったので気軽にぽちっとな。といったところ

Fetched 51.7 kB in 3s (20.5 kB/s)
Selecting previously unselected package whois.
(Reading database ... 84374 files and directories currently installed.)
Preparing to unpack .../whois_5.5.22_amd64.deb ...
Unpacking whois (5.5.22) ...
Setting up whois (5.5.22) ...
Processing triggers for man-db (2.12.0-4build2) ...

ここいらで固まった。

root     2325613 2325562  0 11:19 pts/2    00:00:00 sudo apt install whois
root 2325619 2325613 0 11:19 pts/3 00:00:00 sudo apt install whois
root 2325620 2325619 0 11:19 pts/3 00:00:00 apt install whois
root 2325694 2325620 0 11:19 pts/3 00:00:00 apt install whois
root 2325709 2325694 0 11:19 pts/3 00:00:00 sh -c -- test -x /usr/lib/needrestart/apt-pinvoke && /usr/lib/needrestart/apt-pinvoke -m u || t
root 2325710 2325709 0 11:19 pts/3 00:00:00 /usr/bin/perl /usr/sbin/needrestart -m u

pid 2325710で動いていないっぽいので

yoshitake@epeasv01:~$ sudo cat /proc/2325710/stack
[<0>] rpc_wait_bit_killable+0x11/0x90 [sunrpc]
[<0>] __rpc_execute+0x121/0x340 [sunrpc]
[<0>] rpc_execute+0xda/0x110 [sunrpc]
[<0>] rpc_run_task+0x12e/0x190 [sunrpc]
[<0>] nfs4_do_call_sync+0x6b/0xc0 [nfsv4]
[<0>] _nfs4_proc_getattr+0x13b/0x180 [nfsv4]
[<0>] nfs4_proc_getattr+0x6e/0x110 [nfsv4]
[<0>] __nfs_revalidate_inode+0xd7/0x3c0 [nfs]
[<0>] nfs_access_get_cached+0x1da/0x280 [nfs]
[<0>] nfs_do_access+0x63/0x290 [nfs]
[<0>] nfs_permission+0x9a/0x1f0 [nfs]
[<0>] inode_permission+0xff/0x1b0
[<0>] link_path_walk.part.0.constprop.0+0x130/0x3c0
[<0>] path_lookupat+0x3e/0x1b0
[<0>] filename_lookup+0xe4/0x200
[<0>] user_path_at_empty+0x3e/0x70
[<0>] do_readlinkat+0x6d/0x140
[<0>] __x64_sys_readlink+0x1e/0x30
[<0>] x64_sys_call+0x1c24/0x25c0
[<0>] do_syscall_64+0x7f/0x180
[<0>] entry_SYSCALL_64_after_hwframe+0x78/0x80

スタックトレース中を見たらrpc_wait_bit_killableとかいっている。nfsが何やらともいっている。

直接の原因はnfsのrpc呼び出しが待ち状態でエンドレス待機中の模様。

身に覚えがあるといえば自動再接続設定しているnfsホストが停止中なのこと。これのせいかな?

という事で調べる

とりあえずcronからバックアップしているのでpsしたら終わっていないやつらが大量に待機中。

sudo systemctl stop cron

だと、待機中のrsyncプロセスは実行中のまま。(それはそう)ということで様子をみながら手動でpid指定でぺちぺちkill。と思ったが途中で面倒になったのでまとめてpkill。

消えないプロセスいたのでkill -9

作業が終わって、apt installが固まっていたコンソールを見たら処理が完了していた。きちんと見ていないのでいつ処理が再度走り出したかは未確認

とりあえず、cron止めておいた。nfsホストがお亡くなりなので直さなくては。