[libvirt] [PATCH v2] qemu driver: use lseek64 for setting position in logfile

Stefan Berger stefanb at linux.vnet.ibm.com
Tue Jan 4 16:43:53 UTC 2011


V2:
   - removed replacements of lseek() to lseek64() from patch

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

Signed-off-by: Stefan Berger <stefanb at us.ibm.com>

---
  src/qemu/qemu_driver.c |    6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

Index: libvirt-acl/src/qemu/qemu_driver.c
===================================================================
--- libvirt-acl.orig/src/qemu/qemu_driver.c
+++ libvirt-acl/src/qemu/qemu_driver.c
@@ -2624,7 +2624,7 @@ static int qemudStartVMDaemon(virConnect
                                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;

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110104/3fe81b53/attachment-0001.htm>


More information about the libvir-list mailing list