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 - arvidjaar@gmail.com
+
+- 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 - arvidjaar@gmail.com
+
+- 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
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
---
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
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
---
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: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org