On Mon, Sep 12, 2016 at 17:34:42 +0300, Nikolay Shirokovskiy wrote:
This is a pretty big change but you did not write anything to describe
or justify it.
---
src/logging/log_handler.c | 38 ++++++++++++++++++++++++++++++++++++--
src/logging/log_protocol.x | 5 +++++
2 files changed, 41 insertions(+), 2 deletions(-)
[...]
@@ -492,10 +517,19 @@ virLogHandlerDomainReadLogFile(virLogHandlerPtr
handler,
char *data = NULL;
ssize_t got;
- virCheckFlags(0, NULL);
+ virCheckFlags(VIR_LOG_MANAGER_PROTOCOL_DOMAIN_READ_LOG_FILE_WAIT, NULL);
virObjectLock(handler);
+ if (flags & VIR_LOG_MANAGER_PROTOCOL_DOMAIN_READ_LOG_FILE_WAIT) {
+ while (virLogHandlerGetLogFileFromPath(handler, path)) {
+ if (virCondWait(&handler->condition, &handler->parent.lock)
< 0) {
+ virReportSystemError(errno, "%s", _("failed to wait for
EOF"));
+ goto error;
+ }
+ }
E.g why do you need this? The qemu process is dead at the point when
libvirt attempts to read the log file so I don't see a reason to wait
here.
Peter