aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2010-11-22 13:36:14 +0000
committerDaniel P. Berrange <berrange@redhat.com>2010-11-23 14:10:05 +0000
commit7f9cebc0c0a75891f1812c14f6396f63b1da85c1 (patch)
treed06f270031c14e8775dd7660e0f09652ef2da279
parentRemove trailing ':' from timestamp (diff)
downloadlibvirt-7f9cebc0c0a75891f1812c14f6396f63b1da85c1.tar.gz
libvirt-7f9cebc0c0a75891f1812c14f6396f63b1da85c1.tar.bz2
libvirt-7f9cebc0c0a75891f1812c14f6396f63b1da85c1.zip
Ensure logfile isn't truncated by shutdown message.
When running non-root, the QEMU log file is usually opened with truncation, since there is no logrotate for non-root usage. This means that when libvirt logs the shutdown timestamp, the log is accidentally truncated * src/qemu/qemu_driver.c: Never truncate log file with shutdown message
-rw-r--r--src/qemu/qemu_driver.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 04cca4329..0dac75e53 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -741,7 +741,7 @@ static int qemuCgroupControllerActive(struct qemud_driver *driver,
}
static int
-qemudLogFD(struct qemud_driver *driver, const char* name)
+qemudLogFD(struct qemud_driver *driver, const char* name, bool append)
{
char logfile[PATH_MAX];
mode_t logmode;
@@ -756,7 +756,7 @@ qemudLogFD(struct qemud_driver *driver, const char* name)
logmode = O_CREAT | O_WRONLY;
/* Only logrotate files in /var/log, so only append if running privileged */
- if (driver->privileged)
+ if (driver->privileged || append)
logmode |= O_APPEND;
else
logmode |= O_TRUNC;
@@ -3976,7 +3976,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
}
DEBUG0("Creating domain log file");
- if ((logfile = qemudLogFD(driver, vm->def->name)) < 0)
+ if ((logfile = qemudLogFD(driver, vm->def->name, false)) < 0)
goto cleanup;
emulator = vm->def->emulator;
@@ -4271,7 +4271,7 @@ static void qemudShutdownVMDaemon(struct qemud_driver *driver,
VIR_DEBUG("Shutting down VM '%s' pid=%d migrated=%d",
vm->def->name, vm->pid, migrated);
- if ((logfile = qemudLogFD(driver, vm->def->name)) < 0) {
+ if ((logfile = qemudLogFD(driver, vm->def->name, true)) < 0) {
/* To not break the normal domain shutdown process, skip the
* timestamp log writing if failed on opening log file. */
VIR_WARN("Unable to open logfile: %s",