Uninterruptible process state

Sun 13 May 2018 by admin

Looking for reason why some processes cannot be killed, you probably reach to process state called uninterruptible. Nice explanation:

https://stackoverflow.com/questions/223644/what-is-an-uninterruptable-process

Linux ps command shows which process is in that state by pinning D in process output list. But on which step this process really stuck, you can get by using Linux Magic SysRq:

# sysctl kernel.sysrq=1
# echo 'w' > /proc/sysrq-trigger
# dmesg 
[  883.011825] sysrq: SysRq : Show Blocked State
[  883.024880]   task                        PC stack   pid father
[  883.024938] ls              D ffff88003d21b858     0  3767   1729 0x00000000
[  883.024944]  ffff88003d21b858 000000003b4618ee ffffffff81e11500 ffff88003cfae200
[  883.024946]  ffff88003d21c000 0000000000000082 ffff88003d21b8f8 ffffffffc03f04c0
[  883.024949]  ffff88003d21b8e0 ffff88003d21b870 ffffffff81837845 ffff88003cfae200
[  883.024951] Call Trace:
[  883.025001]  [<ffffffffc03f04c0>] ? __rpc_wait_for_completion_task+0x30/0x30 [sunrpc]
[  883.025010]  [<ffffffff81837845>] schedule+0x35/0x80
[  883.025020]  [<ffffffffc03f04e4>] rpc_wait_bit_killable+0x24/0xa0 [sunrpc]
[  883.025022]  [<ffffffff81837bed>] __wait_on_bit+0x5d/0x90
[  883.025029]  [<ffffffffc03f04c0>] ? __rpc_wait_for_completion_task+0x30/0x30 [sunrpc]
[  883.025031]  [<ffffffff81837ca2>] out_of_line_wait_on_bit+0x82/0xb0
[  883.025039]  [<ffffffff810c4280>] ? autoremove_wake_function+0x40/0x40
[  883.025046]  [<ffffffffc03e6bd0>] ? call_decode+0x800/0x800 [sunrpc]
[  883.025053]  [<ffffffffc03f161c>] __rpc_execute+0x15c/0x470 [sunrpc]
[  883.025061]  [<ffffffffc03f449a>] rpc_execute+0x5a/0xb0 [sunrpc]
[  883.025068]  [<ffffffffc03e81c0>] rpc_run_task+0x70/0x90 [sunrpc]
[  883.025095]  [<ffffffffc04c5863>] nfs4_call_sync_sequence+0x63/0xa0 [nfsv4]

In this particular example command ls stuck in waiting for completion some nfs calls.


Comments