Hello community, here is the log from the commit of package hyper-v for openSUSE:Factory checked in at 2014-12-19 09:38:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hyper-v (Old) and /work/SRC/openSUSE:Factory/.hyper-v.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hyper-v" Changes: -------- --- /work/SRC/openSUSE:Factory/hyper-v/hyper-v.changes 2014-12-06 13:47:10.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.hyper-v.new/hyper-v.changes 2014-12-19 09:36:55.000000000 +0100 @@ -1,0 +2,8 @@ +Wed Dec 17 09:06:33 UTC 2014 - oher...@suse.de + +- Start hv_kvp_daemon after network-online.target (bnc#910353) +- ignore ENOBUFS and ENOMEM in the KVP daemon +- vssdaemon: skip all filesystems mounted readonly (bnc#909864) +- vssdaemon: report freeze errors + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hyper-v.spec ++++++ --- /var/tmp/diff_new_pack.Kpj0bY/_old 2014-12-19 09:36:56.000000000 +0100 +++ /var/tmp/diff_new_pack.Kpj0bY/_new 2014-12-19 09:36:56.000000000 +0100 @@ -129,15 +129,17 @@ # started via %{_udevrulesdir}/%{hv_kvp_daemon}.rules [Unit] Description=Hyper-V KVP Daemon +# During startup the current hostname is cached, so start very late +Requires=network-online.target +After=network-online.target ConditionVirtualization=microsoft [Service] Environment="PATH=%{helper_dir}/bin:/usr/sbin:/usr/bin:/sbin:/bin" -Type=forking # Restart appears to work, but its unsupported # Reboot required until kernel-user protocol is fixed ExecStartPre=/usr/bin/mkdir /run/%{hv_kvp_daemon} -ExecStart=${bindir}/%{hv_kvp_daemon} +ExecStart=${bindir}/%{hv_kvp_daemon} --no-daemon ExecReload=/usr/bin/false Restart=no @@ -152,11 +154,10 @@ ConditionVirtualization=microsoft [Service] -Type=forking # Restart appears to work, but its unsupported # Reboot required until kernel-user protocol is fixed ExecStartPre=/usr/bin/mkdir /run/%{hv_vss_daemon} -ExecStart=${bindir}/%{hv_vss_daemon} +ExecStart=${bindir}/%{hv_vss_daemon} --no-daemon ExecReload=/usr/bin/false Restart=no @@ -171,8 +172,7 @@ ConditionVirtualization=microsoft [Service] -Type=forking -ExecStart=${bindir}/%{hv_fcopy_daemon} +ExecStart=${bindir}/%{hv_fcopy_daemon} --no-daemon [Install] WantedBy=default.target ++++++ hyper-v.tools.hv.hv_kvp_daemon.c ++++++ --- /var/tmp/diff_new_pack.Kpj0bY/_old 2014-12-19 09:36:56.000000000 +0100 +++ /var/tmp/diff_new_pack.Kpj0bY/_new 2014-12-19 09:36:56.000000000 +0100 @@ -1561,8 +1561,15 @@ addr_p, &addr_l); if (len < 0) { + int saved_errno = errno; syslog(LOG_ERR, "recvfrom failed; pid:%u error:%d %s", addr.nl_pid, errno, strerror(errno)); + + if (saved_errno == ENOBUFS) { + syslog(LOG_ERR, "receive error: ignored"); + continue; + } + close(fd); return -1; } @@ -1765,8 +1772,15 @@ len = netlink_send(fd, incoming_cn_msg); if (len < 0) { + int saved_errno = errno; syslog(LOG_ERR, "net_link send failed; error: %d %s", errno, strerror(errno)); + + if (saved_errno == ENOMEM || saved_errno == ENOBUFS) { + syslog(LOG_ERR, "send error: ignored"); + continue; + } + exit(EXIT_FAILURE); } } ++++++ hyper-v.tools.hv.hv_vss_daemon.c ++++++ --- /var/tmp/diff_new_pack.Kpj0bY/_old 2014-12-19 09:36:56.000000000 +0100 +++ /var/tmp/diff_new_pack.Kpj0bY/_new 2014-12-19 09:36:56.000000000 +0100 @@ -83,7 +83,7 @@ FILE *mounts; struct mntent *ent; unsigned int cmd; - int error = 0, root_seen = 0; + int error = 0, root_seen = 0, save_errno = 0; switch (operation) { case VSS_OP_FREEZE: @@ -103,7 +103,7 @@ while ((ent = getmntent(mounts))) { if (strncmp(ent->mnt_fsname, match, strlen(match))) continue; - if (strcmp(ent->mnt_type, "iso9660") == 0) + if (hasmntopt(ent, MNTOPT_RO) != NULL) continue; if (strcmp(ent->mnt_type, "vfat") == 0) continue; @@ -115,7 +115,6 @@ if (error && operation == VSS_OP_FREEZE) goto err; } - endmntent(mounts); if (root_seen) { error |= vss_do_freeze("/", cmd); @@ -123,10 +122,19 @@ goto err; } - return error; + goto out; err: - endmntent(mounts); + save_errno = errno; vss_operate(VSS_OP_THAW); + /* Call syslog after we thaw all filesystems */ + if (ent) + syslog(LOG_ERR, "FREEZE of %s failed; error:%d %s", + ent->mnt_dir, save_errno, strerror(save_errno)); + else + syslog(LOG_ERR, "FREEZE of / failed; error:%d %s", save_errno, + strerror(save_errno)); +out: + endmntent(mounts); return error; } -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org