概要 色々ドライバを弄っていたところ、カーネルの共有ワークキューである events_unbound が長時間ブロックされ、そのワーク項目が RTNL を保持したまま離さない状況に陥りました。 具体的には後続のカーネル処理がワークキュー上で滞留し、D state のプロセスが連鎖的に累積しました。 大変残念なことに、D state は割り込み不可の I/O 待ち状態のため kill -9 でも終了させられません。sudo も sudo reboot も応答せず、IPMI にも触れない状態に追い込まれました。 最終的に、生きていた rootを持ってる Docker コンテナに docker exec で入り、コンテナ内から /proc/sysrq-trigger を叩いてカーネルに強制リブートさせることで復旧できました。覚えておくと役に立つので書き残しておこうと思いました。 なぜsudoまで

