When using unbind/disconnect with tcp endpoints where there are outstanding outgoing messages, the pipes on the sockets may linger indefinitely regardless of the ZMQ_LINGER setting.
Test case is attached. With the unbind call:
With the disconnect call:
The differences are probably not due to unbind/disconnect but rather due to which side has outstanding messages in which pipe.
Ubuntu 12.10, x64