Calling virStreamFinish prematurely seems to trigger this code path even after the stream is closed, which ends up hitting this error message later: error : virFDStreamUpdateCallback:127 : internal error: stream is not open Skip this function if stream->closed, which is used in many other places like read/write handlers --- daemon/stream.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/daemon/stream.c b/daemon/stream.c index f072a17..8a97260 100644 --- a/daemon/stream.c +++ b/daemon/stream.c @@ -76,6 +76,8 @@ static void daemonStreamUpdateEvents(daemonClientStream *stream) { int newEvents = 0; + if (stream->closed) + return; if (stream->rx) newEvents |= VIR_STREAM_EVENT_WRITABLE; if (stream->tx && !stream->recvEOF) -- 2.7.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list