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

Reply via email to