
On 2/19/24 23:24, Vincent Vanlaer wrote:
Similar to when actual data is being written to the stream, it is necessary to acknowledge handling of the client request when a hole is encountered. This is done later in daemonStreamHandleWrite by sending a fake zero-length reply if the status variable is set to VIR_STREAM_CONTINUE. It seems that setting status from the message header was missed for holes in the introduction of the sparse stream feature.
Signed-off-by: Vincent Vanlaer <libvirt-e6954efa@volkihar.be> --- src/remote/remote_daemon_stream.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/remote/remote_daemon_stream.c b/src/remote/remote_daemon_stream.c index 1a89ff822c..453728a66b 100644 --- a/src/remote/remote_daemon_stream.c +++ b/src/remote/remote_daemon_stream.c @@ -747,6 +747,7 @@ daemonStreamHandleWrite(virNetServerClient *client, * Otherwise just carry on with processing stream * data. */ ret = daemonStreamHandleHole(client, stream, msg); + status = msg->header.status; } else if (msg->header.type == VIR_NET_STREAM) { status = msg->header.status; switch (status) {
I'm wondering why is this needed. I mean - is there a bug and what are the steps to reproduce? It's been a while since I touched this part of the codebase. Michal