"At work (LNI) we have a tool which implements a remotely controlled RDMA agent using the OpenFabrics interface. The agent is used for compliance, interoperability, and performance testing. For quite some time we've had a problem where sometimes the agent hangs and then after sending SIGINT (ctrl-C or kill) the agent shows up as 'defunct' with a Zombie state in the output of ps.
"Normally a zombie process means that the process has died but remains in the process table because the parent hasn’t called wait() to 'reap' the process and retrieve the return code..."