The DataStreamSender::Channel::CloseInternal() does not close the channel on an error. This will cause the node on the other side of the channel to wait indefinitely causing a hang.
We observed this occurring due to a kerberos issue related to the the credential cache being outdated, but in theory this can occur for any error that causes Channel::CloseInternal() to fail without closing properly.
The query "hangs" in that it remains registered forever and never makes progress, but the impalads remain responsive and continue to work as expected for other queries.
There is no workaround at this time.