]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu driver: fix positioning to end of log file
authorStefan Berger <stefanb@us.ibm.com>
Tue, 4 Jan 2011 17:46:10 +0000 (12:46 -0500)
committerStefan Berger <stefanb@us.ibm.com>
Tue, 4 Jan 2011 17:46:10 +0000 (12:46 -0500)
While doing some testing with Qemu and creating huge logfiles I encountered the case where the VM could not start anymore due to the lseek() to the end of the Qemu VM's log file failing. The patch below fixes the problem by replacing the previously used 'int' with 'off_t'.

To reproduce this error, you could do the following:

dd if=/dev/zero of=/var/log/libvirt/qemu/<name of VM>.log bs=1024 count=$((1024*2048))

and you should get an error like this:

error: Failed to start domain <name of VM>
error: Unable to seek to -2147482651 in /var/log/libvirt/qemu/<name of VM>.log: Success

src/qemu/qemu_driver.c

index e24ee41bb23b2f113ee1c6316192f60daf907d6d..e915705b180fbfc427f6d60bcf784d39b39b1f87 100644 (file)
@@ -2624,7 +2624,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
                               enum virVMOperationType vmop) {
     int ret;
     unsigned long long qemuCmdFlags;
-    int pos = -1;
+    off_t pos = -1;
     char ebuf[1024];
     char *pidfile = NULL;
     int logfile = -1;