Hello community,

here is the log from the commit of package lvm2.2466 for openSUSE:13.1:Update 
checked in at 2014-03-03 10:34:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/lvm2.2466 (Old)
 and      /work/SRC/openSUSE:13.1:Update/.lvm2.2466.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "lvm2.2466"

Changes:
--------
--- /work/SRC/openSUSE:13.1:Update/lvm2.2466/lvm2.changes       2014-02-03 
15:22:24.000000000 +0100
+++ /work/SRC/openSUSE:13.1:Update/.lvm2.2466.new/lvm2.changes  2014-03-03 
10:34:19.000000000 +0100
@@ -1,0 +2,14 @@
+Thu Feb 20 16:01:23 UTC 2014 - [email protected]
+
+- add 0001-lvmetad-Init-lazily-to-avoid-socket-access-on-config.patch
+  avoid connect to lvmetad.socket too early to prevent deadlock during
+  "systemctl daemon-reload" (bnc#862076)
+
+-------------------------------------------------------------------
+Thu Feb  6 16:23:37 UTC 2014 - [email protected]
+
+- add autoactivate-lvmetad-with-generator.patch - if use_lvmetad=1,
+  automatically activate lvm2-lvmetad.socket to ensure lvmetad is
+  started when required (bnc#862076)
+
+-------------------------------------------------------------------

New:
----
  0001-lvmetad-Init-lazily-to-avoid-socket-access-on-config.patch
  autoactivate-lvmetad-with-generator.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ lvm2.spec ++++++
--- /var/tmp/diff_new_pack.bbelP9/_old  2014-03-03 10:34:19.000000000 +0100
+++ /var/tmp/diff_new_pack.bbelP9/_new  2014-03-03 10:34:19.000000000 +0100
@@ -76,6 +76,10 @@
 Patch72:        suppress_locking_failer_message.patch
 Patch73:        remove-fedora-systemd.patch
 
+#bnc#862076
+Patch74:        autoactivate-lvmetad-with-generator.patch
+Patch75:        0001-lvmetad-Init-lazily-to-avoid-socket-access-on-config.patch
+
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 # Not a real replacement but we drop evms
 Provides:       evms = 2.5.5
@@ -114,6 +118,8 @@
 %patch71 -p1
 %patch72 -p1
 %patch73 -p1
+%patch74 -p1
+%patch75 -p1
 
 %build
 #set path so that thin_check can be found
@@ -208,12 +214,12 @@
 popd
 
 %post
-%service_add_post blk-availability.service lvm2-monitor.service 
lvm2-lvmetad.socket
+%service_add_post blk-availability.service lvm2-monitor.service
 [ -x /sbin/mkinitrd ] && /sbin/mkinitrd
 /sbin/ldconfig
 
 %preun
-%service_del_preun blk-availability.service lvm2-monitor.service 
lvm2-lvmetad.service lvm2-lvmetad.socket
+%service_del_preun blk-availability.service lvm2-monitor.service
 
 %postun
 [ -x /sbin/mkinitrd ] && /sbin/mkinitrd

++++++ 0001-lvmetad-Init-lazily-to-avoid-socket-access-on-config.patch ++++++
>From 983f0b46f2de85b8de0e2d7f8afbdf53f132a87a Mon Sep 17 00:00:00 2001
From: Petr Rockai <[email protected]>
Date: Mon, 29 Oct 2012 21:39:46 +0100
Subject: [PATCH] lvmetad: Init lazily, to avoid socket access on config
 overrides.

Signed-off-by: Andrey Borzenkov <[email protected]>
---
 lib/cache/lvmetad.c | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c
index 6a374ac..72e07fd 100644
--- a/lib/cache/lvmetad.c
+++ b/lib/cache/lvmetad.c
@@ -33,7 +33,8 @@ static struct cmd_context *_lvmetad_cmd = NULL;
 
 void lvmetad_disconnect(void)
 {
-       daemon_close(_lvmetad);
+       if (_lvmetad_connected)
+               daemon_close(_lvmetad);
        _lvmetad_connected = 0;
        _lvmetad_cmd = NULL;
 }
@@ -41,19 +42,25 @@ void lvmetad_disconnect(void)
 void lvmetad_init(struct cmd_context *cmd)
 {
        if (!_lvmetad_use && !access(LVMETAD_PIDFILE, F_OK))
-               log_warn("WARNING: lvmetad is running but disabled. Restart 
lvmetad before enabling it!");
+               log_warn("WARNING: lvmetad is running but disabled."
+                        " Restart lvmetad before enabling it!");
+       _lvmetad_cmd = cmd;
+}
+
+static void _lvmetad_connect()
+{
        if (_lvmetad_use && _lvmetad_socket && !_lvmetad_connected) {
                assert(_lvmetad_socket);
                _lvmetad = lvmetad_open(_lvmetad_socket);
-               if (_lvmetad.socket_fd >= 0 && !_lvmetad.error) {
+               if (_lvmetad.socket_fd >= 0 && !_lvmetad.error)
                        _lvmetad_connected = 1;
-                       _lvmetad_cmd = cmd;
-               }
        }
 }
 
 void lvmetad_warning(void)
 {
+       if (!_lvmetad_connected)
+               _lvmetad_connect();
        if (_lvmetad_use && (_lvmetad.socket_fd < 0 || _lvmetad.error))
                log_warn("WARNING: Failed to connect to lvmetad: %s. Falling 
back to internal scanning.",
                         strerror(_lvmetad.error));
@@ -61,7 +68,11 @@ void lvmetad_warning(void)
 
 int lvmetad_active(void)
 {
-       return _lvmetad_use && _lvmetad_connected;
+       if (!_lvmetad_use)
+               return 0;
+       if (!_lvmetad_connected)
+               _lvmetad_connect();
+       return _lvmetad_connected;
 }
 
 void lvmetad_set_active(int active)
@@ -873,6 +884,11 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, 
activation_handler handler)
        char *future_token;
        int was_silent;
 
+       if (!lvmetad_active()) {
+               log_error("Cannot proceed since lvmetad is not active.");
+               return 0;
+       }
+
        if (!(iter = dev_iter_create(cmd->lvmetad_filter, 1))) {
                log_error("dev_iter creation failed");
                return 0;
-- 
1.8.4.5


++++++ autoactivate-lvmetad-with-generator.patch ++++++
From: Andrey Borzenkov <[email protected]>
Subject: [PATCH] activate lvmetad in generator if use_lvmetad=1

This avoids unbootable system if user changes use_lvmetad but forgets
to enable lvmetad.

Ref: https://bugzilla.novell.com/show_bug.cgi?id=862076

Signed-off-by: Andrey Borzenkov <[email protected]>

---
 scripts/lvm2_activation_generator_systemd_red_hat.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Index: LVM2.2.02.98/scripts/lvm2_activation_generator_systemd_red_hat.c
===================================================================
--- LVM2.2.02.98.orig/scripts/lvm2_activation_generator_systemd_red_hat.c
+++ LVM2.2.02.98/scripts/lvm2_activation_generator_systemd_red_hat.c
@@ -153,15 +153,15 @@ int main(int argc, char *argv[])
                r = EXIT_FAILURE; goto out;
        }
 
+       dir = argc > 1 ? argv[1] : DEFAULT_UNIT_DIR;
+
        /* If lvmetad used, rely on autoactivation instead of direct 
activation. */
        if (lvm_uses_lvmetad()) {
                kmsg("LVM: Logical Volume autoactivation enabled.\n");
-               goto out;
-       }
-
-       dir = argc > 1 ? argv[1] : DEFAULT_UNIT_DIR;
-
-       if (!generate_unit(dir, 1) || !generate_unit(dir, 0))
+               if (dm_snprintf(unit_path, PATH_MAX, "%s/%s", 
"/usr/lib/systemd/system", "lvm2-lvmetad.socket") < 0 ||
+                   !register_unit_with_target (dir, "lvm2-lvmetad.socket", 
"sockets.target"))
+                       r = EXIT_FAILURE;
+       } else if (!generate_unit(dir, 1) || !generate_unit(dir, 0))
                r = EXIT_FAILURE;
 out:
        kmsg("LVM: Activation generator %s.\n", r ? "failed" : "successfully 
completed");
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to