After a timeout using a future, the operation that caused the timeout should be cancelled, otherwise it will still be pending. Found it investigating 58565, and could be "causing" 57799 (which would be a timeout on a read being swallowed and then disguised as a pending exception after trying to read again).