Hello community,

here is the log from the commit of package lvm2 for openSUSE:Factory checked in 
at 2014-06-16 21:43:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lvm2 (Old)
 and      /work/SRC/openSUSE:Factory/.lvm2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "lvm2"

Changes:
--------
--- /work/SRC/openSUSE:Factory/lvm2/lvm2.changes        2014-06-10 
14:37:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.lvm2.new/lvm2.changes   2014-06-16 
21:43:45.000000000 +0200
@@ -1,0 +2,48 @@
+
+Tue May 30 09:01:08 UTC 2014 - l...@suse.com
+
+- Versioning for the lvm2-cmirrord dependencies
+
+-------------------------------------------------------------------
+Thu May 29 10:01:35 UTC 2014 - dmzh...@suse.com
+
+- bnc#878930, systemd is putting out an erroneous message about 
lvm2-monitor.service
+  patch: remove-quote-in-lvm2-monitor.patch
+
+-------------------------------------------------------------------
+Wed May 28 16:45:45 UTC 2014 - lw...@suse.com
+
+- fix lvm2-activation{,-early}.service is marked world-inaccessible 
(bnc#878481)
+  add systemd-use-umask-022-for-generated-systemd-units-by.patch
+- add comment to lvm.conf to inform user to start lvm2-lvmetad.socket
+  if it is not started in case of use_lvmetad = 1 (bnc#878473)
+- disable lvmetad in lvm.conf to fix it (bnc#862076)
+
+-------------------------------------------------------------------
+Wed May 28 15:46:58 UTC 2014 - lw...@suse.com
+
+- bnc#878121, modify clvmd.ocf start debug level -d2 to d0
+
+-------------------------------------------------------------------
+Wed May 28 14:57:23 UTC 2014 - lw...@suse.com
+
+- bnc#870598, change lockdir to /run/lvm/lock
+        modify lvm.conf
+  bnc#854092, backport patches to fix 'nohup lvm' crash
+        patch:0001-toolcontext-Only-reopen-stdin-if-readable.patch
+  bnc#870824, defaut the mirrortype to mirror when clvmd is running
+        patch:use-mirrortype-asdefault-whenclvmdrunning.patch
+  bnc#859824, get rid of the annoying message 'LVM activation generator 
successfully completed'
+        patch:systemd-lvm2-activation-generator-report-only-error.patch
+  bnc#837538, fix closedown of clvmd
+        patch:fix-closedown-before-thread-finish.patch
+
+-------------------------------------------------------------------
+Wed May 28 14:50:13 UTC 2014 - lw...@suse.com
+
+- Added: clvmd-fix-debugging-level-set-in-clvmd_set_debug-function.patch
+   This patch is missed in sle12, added from sle11sp3
+   Fix debugging level set in clvmd_set_debug by using the correct
+   variable (bnc#785467),change default -d0 to -d2
+
+-------------------------------------------------------------------

New:
----
  0001-toolcontext-Only-reopen-stdin-if-readable.patch
  clvmd-fix-debugging-level-set-in-clvmd_set_debug-function.patch
  fix-closedown-before-thread-finish.patch
  remove-quote-in-lvm2-monitor.patch
  systemd-lvm2-activation-generator-report-only-error.patch
  systemd-use-umask-022-for-generated-systemd-units-by.patch
  use-mirrortype-asdefault-whenclvmdrunning.patch

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

Other differences:
------------------
++++++ lvm2.spec ++++++
--- /var/tmp/diff_new_pack.aoCA87/_old  2014-06-16 21:43:46.000000000 +0200
+++ /var/tmp/diff_new_pack.aoCA87/_new  2014-06-16 21:43:46.000000000 +0200
@@ -103,6 +103,20 @@
 
 #upstream, bnc#871176
 Patch91:        0001-RAID-Make-RAID-4-5-6-display-sync-status-under-headi.patch
+#fixed in upstream,bnc#785467
+Patch92:        clvmd-fix-debugging-level-set-in-clvmd_set_debug-function.patch
+#upstream 
+Patch93:        0001-toolcontext-Only-reopen-stdin-if-readable.patch
+#suse, bnc873538
+Patch94:        fix-closedown-before-thread-finish.patch
+#upstream
+Patch95:        systemd-lvm2-activation-generator-report-only-error.patch
+#suse, bnc#870824
+Patch96:        use-mirrortype-asdefault-whenclvmdrunning.patch
+# bnc#878481 
+Patch97:        systemd-use-umask-022-for-generated-systemd-units-by.patch
+# bnc#878930
+Patch98:        remove-quote-in-lvm2-monitor.patch
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 # Not a real replacement but we drop evms
@@ -159,6 +173,13 @@
 %patch89 -p1
 %patch90 -p1
 %patch91 -p1
+%patch92 -p1
+%patch93 -p1
+%patch94 -p1
+%patch95 -p1
+%patch96 -p1
+%patch97 -p1
+%patch98 -p1
 
 %build
 #set path so that thin_check can be found
@@ -405,6 +426,8 @@
 Requires:       device-mapper >= 1.02.25
 Requires:       lvm2 = %{version}
 Requires:       lvm2-cmirrord
+Obsoletes:      cmirrord < %{version}
+Provides:       cmirrord = %{version}
 Summary:        Clustered LVM2
 Group:          Productivity/Clustering/HA
 

++++++ 0001-toolcontext-Only-reopen-stdin-if-readable.patch ++++++
Index: LVM2.2.02.98/lib/commands/toolcontext.c
===================================================================
--- LVM2.2.02.98.orig/lib/commands/toolcontext.c        2014-04-14 
14:06:23.245391597 +0800
+++ LVM2.2.02.98/lib/commands/toolcontext.c     2014-04-14 14:06:47.761421565 
+0800
@@ -1315,6 +1315,7 @@ struct cmd_context *create_toolcontext(u
 {
        struct cmd_context *cmd;
        FILE *new_stream;
+       int flags;
 
 #ifdef M_MMAP_MAX
        mallopt(M_MMAP_MAX, 0);
@@ -1358,7 +1359,10 @@ struct cmd_context *create_toolcontext(u
                        goto out;
                }
 
-               if (is_valid_fd(STDIN_FILENO)) {
+               /* nohup might set stdin O_WRONLY ! */
+               if (is_valid_fd(STDIN_FILENO) &&
+                   ((flags = fcntl(STDIN_FILENO, F_GETFL)) > 0) &&
+                   (flags & O_ACCMODE) != O_WRONLY) {
                        if (!_reopen_stream(stdin, STDIN_FILENO, "r", "stdin", 
&new_stream))
                                goto_out;
                        stdin = new_stream;
@@ -1368,7 +1372,9 @@ struct cmd_context *create_toolcontext(u
                        }
                }
 
-               if (is_valid_fd(STDOUT_FILENO)) {
+               if (is_valid_fd(STDOUT_FILENO) &&
+                   ((flags = fcntl(STDOUT_FILENO, F_GETFL)) > 0) &&
+                   (flags & O_ACCMODE) != O_RDONLY) {
                        if (!_reopen_stream(stdout, STDOUT_FILENO, "w", 
"stdout", &new_stream))
                                goto_out;
                        stdout = new_stream;
@@ -1629,6 +1635,7 @@ void destroy_toolcontext(struct cmd_cont
 {
        struct dm_config_tree *cft_cmdline;
        FILE *new_stream;
+       int flags;
 
        if (cmd->dump_filter)
                persistent_filter_dump(cmd->filter, 1);
@@ -1654,7 +1661,9 @@ void destroy_toolcontext(struct cmd_cont
 #ifndef VALGRIND_POOL
        if (cmd->linebuffer) {
                /* Reset stream buffering to defaults */
-               if (is_valid_fd(STDIN_FILENO)) {
+               if (is_valid_fd(STDIN_FILENO) &&
+                   ((flags = fcntl(STDIN_FILENO, F_GETFL)) > 0) &&
+                   (flags & O_ACCMODE) != O_WRONLY) {
                        if (_reopen_stream(stdin, STDIN_FILENO, "r", "stdin", 
&new_stream)) {
                                stdin = new_stream;
                                setlinebuf(stdin);
@@ -1662,7 +1671,9 @@ void destroy_toolcontext(struct cmd_cont
                                cmd->linebuffer = NULL; /* Leave buffer in 
place (deliberate leak) */
                }
 
-               if (is_valid_fd(STDOUT_FILENO)) {
+               if (is_valid_fd(STDOUT_FILENO) &&
+                   ((flags = fcntl(STDOUT_FILENO, F_GETFL)) > 0) &&
+                   (flags & O_ACCMODE) != O_RDONLY) {
                        if (_reopen_stream(stdout, STDOUT_FILENO, "w", 
"stdout", &new_stream)) {
                                stdout = new_stream;
                                setlinebuf(stdout);

++++++ clvmd-fix-debugging-level-set-in-clvmd_set_debug-function.patch ++++++
Index: LVM2.2.02.98/daemons/clvmd/clvmd.c
===================================================================
--- LVM2.2.02.98.orig/daemons/clvmd/clvmd.c
+++ LVM2.2.02.98/daemons/clvmd/clvmd.c
@@ -364,7 +364,7 @@ int main(int argc, char *argv[])
        /* Deal with command-line arguments */
        opterr = 0;
        optind = 0;
-       while ((opt = getopt_long(argc, argv, "vVhfd::t:RST:CI:E:",
+       while ((opt = getopt_long(argc, argv, "vVhfd:t:RST:CI:E:",
                                  longopts, NULL)) != -1) {
                switch (opt) {
                case 'h':
@@ -451,7 +451,7 @@ int main(int argc, char *argv[])
                return debug_clvmd(debug_arg, clusterwide_opt)==1?0:1;
        }
 
-       clvmd_set_debug(debug_opt);
+       clvmd_set_debug(debug_arg);
 
        /* Fork into the background (unless requested not to) */
        if (!foreground_mode)
++++++ clvmd.ocf ++++++
--- /var/tmp/diff_new_pack.aoCA87/_old  2014-06-16 21:43:46.000000000 +0200
+++ /var/tmp/diff_new_pack.aoCA87/_new  2014-06-16 21:43:46.000000000 +0200
@@ -29,7 +29,7 @@
 # Parameter defaults
 : ${OCF_RESKEY_CRM_meta_globally_unique:="false"}
 : ${OCF_RESKEY_daemon_timeout:="80"}
-: ${OCF_RESKEY_daemon_options:="-d2"}
+: ${OCF_RESKEY_daemon_options:="-d0"}
 
 # Common variables
 DAEMON="/usr/sbin/clvmd"

++++++ fix-closedown-before-thread-finish.patch ++++++
Index: LVM2.2.02.98/daemons/clvmd/clvmd-corosync.c
===================================================================
--- LVM2.2.02.98.orig/daemons/clvmd/clvmd-corosync.c    2014-04-14 
14:08:40.547558968 +0800
+++ LVM2.2.02.98/daemons/clvmd/clvmd-corosync.c 2014-04-14 14:09:30.440619510 
+0800
@@ -251,8 +251,12 @@ static void corosync_cpg_confchg_callbac
                ninfo = dm_hash_lookup_binary(node_hash,
                                              (char *)&left_list[i].nodeid,
                                              COROSYNC_CSID_LEN);
-               if (ninfo)
+               if (ninfo) {
                        ninfo->state = NODE_DOWN;
+                       char name[MAX_CLUSTER_MEMBER_NAME_LEN];
+                       sprintf(name, "%x", ninfo->nodeid);
+                       decrease_inflight_expected_reply(name);
+               }
        }
 
        num_nodes = member_list_entries;
Index: LVM2.2.02.98/daemons/clvmd/clvmd.c
===================================================================
--- LVM2.2.02.98.orig/daemons/clvmd/clvmd.c     2014-04-14 14:08:40.582559010 
+0800
+++ LVM2.2.02.98/daemons/clvmd/clvmd.c  2014-04-14 14:09:59.751655009 +0800
@@ -1602,6 +1602,56 @@ static void process_remote_command(struc
        free(replyargs);
 }
 
+void decrease_inflight_expected_reply(char *nodename)
+{
+       struct local_client * thisfd;
+       struct node_reply *reply;
+
+       DEBUGLOG("remote node %s down", nodename);
+
+       for (thisfd = &local_client_head; thisfd != NULL;
+            thisfd = thisfd->next) {
+               /* in-flight request */
+               if (thisfd->type == LOCAL_SOCK
+                   && thisfd->bits.localsock.sent_out
+                   && thisfd->bits.localsock.in_progress
+                   && ! thisfd->bits.localsock.finished
+                   && thisfd->bits.localsock.expected_replies >
+                   thisfd->bits.localsock.num_replies) {
+
+                       pthread_mutex_lock(&thisfd->bits.localsock.reply_mutex);
+
+                       reply = thisfd->bits.localsock.replies;
+                       while (reply && strcmp(reply->node, nodename) != 0) {
+                               reply = reply->next;
+                       }
+                       /* if the remote down server has replies,do not 
decrease the expected_replies */
+                       if (reply)
+                               continue;
+
+                       thisfd->bits.localsock.expected_replies--;
+                       DEBUGLOG
+                           ("remote node down, decrement the expected replies 
to (%ld),num_replies(%ld)",
+                            thisfd->bits.localsock.expected_replies,
+                            thisfd->bits.localsock.num_replies)
+
+                       if (thisfd->bits.localsock.expected_replies <= 
thisfd->bits.localsock.num_replies) {
+                               /* tell pre_and_post thread to finish */
+                               if (thisfd->bits.localsock.threadid) {
+                                       thisfd->bits.localsock.all_success = 0;
+                                       
pthread_mutex_lock(&thisfd->bits.localsock.mutex);
+                                       thisfd->bits.localsock.state = 
POST_COMMAND;
+                                       
pthread_cond_signal(&thisfd->bits.localsock.cond);
+                                       
pthread_mutex_unlock(&thisfd->bits.localsock.mutex);
+                               }
+                       }
+                       
pthread_mutex_unlock(&thisfd->bits.localsock.reply_mutex);
+
+               }
+       }
+
+}
+
 /* Add a reply to a command to the list of replies for this client.
    If we have got a full set then send them to the waiting client down the 
local
    socket */
@@ -1643,7 +1693,7 @@ static void add_reply_to_list(struct loc
                 client->bits.localsock.expected_replies);
 
        /* If we have the whole lot then do the post-process */
-       if (++client->bits.localsock.num_replies ==
+       if (++client->bits.localsock.num_replies >=
            client->bits.localsock.expected_replies) {
                /* Post-process the command */
                if (client->bits.localsock.threadid) {
Index: LVM2.2.02.98/daemons/clvmd/clvmd.h
===================================================================
--- LVM2.2.02.98.orig/daemons/clvmd/clvmd.h     2014-04-14 14:08:40.564558988 
+0800
+++ LVM2.2.02.98/daemons/clvmd/clvmd.h  2014-04-14 14:09:30.442619512 +0800
@@ -112,6 +112,8 @@ extern int do_post_command(struct local_
 extern void cmd_client_cleanup(struct local_client *client);
 extern int add_client(struct local_client *new_client);
 
+
+extern void decrease_inflight_expected_reply();
 extern void clvmd_cluster_init_completed(void);
 extern void process_message(struct local_client *client, char *buf,
                            int len, const char *csid);
++++++ lvm.conf ++++++
--- /var/tmp/diff_new_pack.aoCA87/_old  2014-06-16 21:43:46.000000000 +0200
+++ /var/tmp/diff_new_pack.aoCA87/_new  2014-06-16 21:43:46.000000000 +0200
@@ -441,7 +441,7 @@
 
     # Local non-LV directory that holds file-based locks while commands are
     # in progress.  A directory like /tmp that may get wiped on reboot is OK.
-    locking_dir = "/run/lock/lvm"
+    locking_dir = "/run/lvm/lock"
 
     # Whenever there are competing read-only and read-write access requests for
     # a volume group's metadata, instead of always granting the read-only
@@ -541,7 +541,8 @@
     #
     # If lvmetad has been running while use_lvmetad was 0, it MUST be stopped
     # before changing use_lvmetad to 1 and started again afterwards.
-    use_lvmetad = 1
+    # If use_lvmetad set to 1, please make sure lvm2-lvmetad.socket is started
+    use_lvmetad = 0
 
     # Full path of the utility called to check that a thin metadata device
     # is in a state that allows it to be used.

++++++ remove-quote-in-lvm2-monitor.patch ++++++
Index: LVM2.2.02.98/scripts/lvm2_monitoring_systemd_red_hat.service.in
===================================================================
--- LVM2.2.02.98.orig/scripts/lvm2_monitoring_systemd_red_hat.service.in        
2014-05-29 17:57:49.651975608 +0800
+++ LVM2.2.02.98/scripts/lvm2_monitoring_systemd_red_hat.service.in     
2014-05-29 17:59:51.691134245 +0800
@@ -12,7 +12,7 @@ Type=oneshot
 Environment=LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES=1
 ExecStart=@sbindir@/lvm vgchange --monitor y
 # The lvmetad must be disabled here, it needs 
https://bugzilla.redhat.com/show_bug.cgi?id=843587 to be resolved first.
-ExecStop="@sbindir@/lvm vgchange --monitor n --config 'global{use_lvmetad=0}'"
+ExecStop=@sbindir@/lvm vgchange --monitor n --config 'global{use_lvmetad=0}'
 RemainAfterExit=yes
 
 [Install]
++++++ systemd-lvm2-activation-generator-report-only-error.patch ++++++
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       
2014-04-14 14:25:29.280756835 +0800
+++ LVM2.2.02.98/scripts/lvm2_activation_generator_systemd_red_hat.c    
2014-04-14 14:27:19.894797719 +0800
@@ -154,17 +154,16 @@ int main(int argc, char *argv[])
        }
 
        /* If lvmetad used, rely on autoactivation instead of direct 
activation. */
-       if (lvm_uses_lvmetad()) {
-               kmsg("LVM: Logical Volume autoactivation enabled.\n");
+       if (lvm_uses_lvmetad())
                goto out;
-       }
 
        dir = argc > 1 ? argv[1] : DEFAULT_UNIT_DIR;
 
        if (!generate_unit(dir, 1) || !generate_unit(dir, 0))
                r = EXIT_FAILURE;
 out:
-       kmsg("LVM: Activation generator %s.\n", r ? "failed" : "successfully 
completed");
+       if (r)
+               kmsg("LVM: Activation generator failed.\n");
        if (kmsg_fd != -1)
                (void) close(kmsg_fd);
        return r;
++++++ systemd-use-umask-022-for-generated-systemd-units-by.patch ++++++
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
@@ -145,6 +145,7 @@ int main(int argc, char *argv[])
 {
        const char *dir;
        int r = EXIT_SUCCESS;
+        mode_t old_mask;       
 
        kmsg_fd = open(KMSG_DEV_PATH, O_WRONLY|O_NOCTTY);
 
@@ -158,9 +159,13 @@ int main(int argc, char *argv[])
                goto out;
 
        dir = argc > 1 ? argv[1] : DEFAULT_UNIT_DIR;
-
+ 
+       /* mark lvm2-activation.*.service as world-accessible */
+        old_mask = umask(0022);
        if (!generate_unit(dir, 1) || !generate_unit(dir, 0))
                r = EXIT_FAILURE;
+       umask(old_mask);
+
 out:
        if (r)
                kmsg("LVM: Activation generator failed.\n");
++++++ use-mirrortype-asdefault-whenclvmdrunning.patch ++++++
Index: LVM2.2.02.98/tools/lvcreate.c
===================================================================
--- LVM2.2.02.98.orig/tools/lvcreate.c  2014-04-14 14:25:22.291748711 +0800
+++ LVM2.2.02.98/tools/lvcreate.c       2014-04-24 15:40:49.104019108 +0800
@@ -670,6 +670,28 @@ static int _read_activation_params(struc
        return 1;
 }
 
+static int clvmd_daemon_is_running()
+{
+       int fd;
+       struct flock lock;
+
+       if((fd = open(CLVMD_PIDFILE, O_RDONLY)) < 0)
+               return 0;
+
+       lock.l_type = F_WRLCK;
+       lock.l_start = 0;
+       lock.l_whence = SEEK_SET;
+       lock.l_len = 0;
+       if (fcntl(fd, F_GETLK, &lock) < 0) {
+              /* errors with fcntl */
+               close(fd);
+               return 0;
+       }
+
+       close(fd);
+       return (lock.l_type == F_UNLCK) ? 0 : 1;
+}
+
 static int _lvcreate_params(struct lvcreate_params *lp,
                            struct lvcreate_cmdline_params *lcp,
                            struct cmd_context *cmd,
@@ -696,15 +718,16 @@ static int _lvcreate_params(struct lvcre
        }
 
 // FIXME -m0 implies *striped*
-
-       /* Set default segtype */
-       if (arg_count(cmd, mirrors_ARG))
+        /* Set default segtype */
+       if (arg_count(cmd, mirrors_ARG)) {
                /*
                 * FIXME: Add default setting for when -i and -m arguments
                 *        are both given.  We should default to "raid10".
                 */
                segtype_str = find_config_tree_str(cmd, 
"global/mirror_segtype_default", DEFAULT_MIRROR_SEGTYPE);
-       else if (arg_count(cmd, thin_ARG) || arg_count(cmd, thinpool_ARG))
+               if(clvmd_daemon_is_running())
+                       segtype_str = "mirror";
+       } else if (arg_count(cmd, thin_ARG) || arg_count(cmd, thinpool_ARG))
                segtype_str = "thin";
        else
                segtype_str = "striped";
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to