summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Hassan <Ray.Hassan@Sun.COM>2010-02-18 13:36:37 +0000
committerRay Hassan <Ray.Hassan@Sun.COM>2010-02-18 13:36:37 +0000
commit99fd4d22c4d79c3cbb29109c221e7868cfa07333 (patch)
tree03b3dcf27a26830c65b288ea9173e6756d8ff968
parentb69a86957bad202e0d4cd49e4ceb7fea54a83270 (diff)
downloadillumos-gate-99fd4d22c4d79c3cbb29109c221e7868cfa07333.tar.gz
6881136 2nd node panics when 1st node has metadb problems - SVM/ZFS mixed system.
-rw-r--r--usr/src/cmd/lvm/util/metaclust.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/usr/src/cmd/lvm/util/metaclust.c b/usr/src/cmd/lvm/util/metaclust.c
index e68f82b052..497cfc53e8 100644
--- a/usr/src/cmd/lvm/util/metaclust.c
+++ b/usr/src/cmd/lvm/util/metaclust.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -880,12 +880,18 @@ main(int argc, char **argv)
meta_print_hrtime(0));
/*
- * Does local set exist? If not, exit with 0
- * since there's no reason to have this node panic if
- * the local set cannot be started.
+ * With multinode disksets configured we need to
+ * update all replicas on all cluster nodes to have
+ * the same status. If local replicas on a cluster
+ * node are not accessible we need to panic this
+ * node, otherwise we abort in the reconfig cycle
+ * and failfast/reboot the "good" cluster node too.
+ * To avoid a total cluster outage in the above case
+ * we panic only the failing node via md_exit(.., 1).
*/
if ((local_sp = load_local_set(ep)) == NULL) {
- md_exit(local_sp, 0);
+ /* panic the node */
+ md_exit(local_sp, 1);
}
if ((max_sets = get_max_sets(ep)) == 0) {