cluster: RHEL57 - resource-agents: Remove netmask from IP address when creating list of them
by Marek Grác
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 56b618c99947d457579c6bc9f0a1de4aae329595
Parent: f26a3627a1087816fae1bb671623fc74bf653a90
Author: Marek 'marx' Grac <mgrac(a)redhat.com>
AuthorDate: Mon Feb 7 14:14:39 2011 +0100
Committer: Marek 'marx' Grac <mgrac(a)redhat.com>
CommitterDate: Wed Feb 23 18:39:55 2011 +0100
resource-agents: Remove netmask from IP address when creating list of them
IP address were copied directly to configuration of various resource agents.
Resolves: rhbz#675739
---
rgmanager/src/resources/utils/config-utils.sh | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/rgmanager/src/resources/utils/config-utils.sh b/rgmanager/src/resources/utils/config-utils.sh
index 5646fa8..c54b266 100644
--- a/rgmanager/src/resources/utils/config-utils.sh
+++ b/rgmanager/src/resources/utils/config-utils.sh
@@ -210,7 +210,9 @@ build_ip_list()
break
fi
- ipaddrs="$ipaddrs $ipaddr"
+ # remove netmask
+ iponly=`echo $ipaddr | sed 's/\/.*//'`
+ ipaddrs="$ipaddrs $iponly"
((x++))
done
13 years, 2 months
cluster: RHEL57 - resource-agents: Add option disable_rdisc to ip.sh
by Marek Grác
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: f26a3627a1087816fae1bb671623fc74bf653a90
Parent: b9306e19ba3f346326befd933c8ecdd9bc8973bf
Author: Marek 'marx' Grac <mgrac(a)redhat.com>
AuthorDate: Fri Jan 28 15:29:48 2011 +0100
Committer: Marek 'marx' Grac <mgrac(a)redhat.com>
CommitterDate: Wed Feb 23 18:38:08 2011 +0100
resource-agents: Add option disable_rdisc to ip.sh
rdisc is called by ip.sh which causes static routes to be updated by
dynamic ones. This option adds possibility to disable this feature.
Resolves: rhbz#620700
---
rgmanager/src/resources/ip.sh | 21 +++++++++++++++++++--
1 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/rgmanager/src/resources/ip.sh b/rgmanager/src/resources/ip.sh
index 4f7e432..38d1ab9 100755
--- a/rgmanager/src/resources/ip.sh
+++ b/rgmanager/src/resources/ip.sh
@@ -121,6 +121,17 @@ meta_data()
<content type="string"/>
</parameter>
+ <parameter name="disable_rdisc">
+ <longdesc lang="en">
+ Disable updating of routing using RDISC protocol and
+ preserve static routes.
+ </longdesc>
+ <shortdesc lang="en">
+ Disable updating of routing using RDISC protocol
+ </shortdesc>
+ <content type="boolean"/>
+ </parameter>
+
</parameters>
<actions>
@@ -632,7 +643,10 @@ ipv6()
# Not sure if this is necessary for ipv6 either.
file=$(which rdisc 2>/dev/null)
if [ -f "$file" ]; then
- killall -HUP rdisc || rdisc -fs
+ if [ "$OCF_RESKEY_disable_rdisc" != "yes" ] && \
+ [ "$OCF_RESKEY_disable_rdisc" != "1" ]; then
+ killall -HUP rdisc || rdisc -fs
+ fi
fi
return 0
@@ -711,7 +725,10 @@ ipv4()
file=$(which rdisc 2>/dev/null)
if [ -f "$file" ]; then
- killall -HUP rdisc || rdisc -fs
+ if [ "$OCF_RESKEY_disable_rdisc" != "yes" ] && \
+ [ "$OCF_RESKEY_disable_rdisc" != "1" ]; then
+ killall -HUP rdisc || rdisc -fs
+ fi
fi
return 0
13 years, 2 months
cluster: STABLE31 - config: stop leaking memory on config reload
by Fabio M. Di Nitto
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 7d2b388cfe9cdc7e0eac65218788527a3969fe8c
Parent: 0901934fdcd49f85deac905da3d63497d3885382
Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
AuthorDate: Thu Feb 24 15:04:31 2011 +0100
Committer: Fabio M. Di Nitto <fdinitto(a)redhat.com>
CommitterDate: Thu Feb 24 15:04:31 2011 +0100
config: stop leaking memory on config reload
Resolves: rhbz#680155
Signed-off-by: Fabio M. Di Nitto <fdinitto(a)redhat.com>
---
config/plugins/xml/config.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/config/plugins/xml/config.c b/config/plugins/xml/config.c
index 1db23da..7dcf8ba 100644
--- a/config/plugins/xml/config.c
+++ b/config/plugins/xml/config.c
@@ -142,7 +142,5 @@ fail:
if (doc)
xmlFreeDoc(doc);
- xmlCleanupParser();
-
return err;
}
13 years, 2 months
gfs2-utils: the annotated tag 3.1.1 has been created
by Bob Peterson
Gitweb: http://git.fedorahosted.org/git/gfs2-utils.git?p=gfs2-utils.git;a=commitd...
Commit: ffda3929ec66f086f91adc69682285127693f137
Parent: 0000000000000000000000000000000000000000
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: 2011-02-23 15:23 +0000
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: 2011-02-23 15:23 +0000
annotated tag: 3.1.1 has been created
at ffda3929ec66f086f91adc69682285127693f137 (tag)
tagging 4a727917ff403b6f386c992d1e071e3f1a795893 (commit)
replaces 3.1.0
New tag for updated source tree
Benjamin Marzinski (1):
gfs2_grow: fix growing on full filesystems
Bob Peterson (14):
mkfs.gfs2 should support discard request generation
GFS2: mkfs.gfs2 segfaults with 18.55TB and -b512
gfs2-utils: minor corrections to README.build
fsck.gfs2: reports master/root dinodes as unused and fixes the bitmap
fsck.gfs2: can't repair rgrps resulting from gfs_grow->gfs2_convert
gfs2_edit: handle corrupt file systems better
gfs2_edit: print large block numbers better
gfs2_edit: has problems printing gfs1 journals
gfs2_edit: add -d option for printing journal details
gfs2_edit: Fix error message on blockalloc when outside bitmap
gfs2_edit: fix careless compiler warning
gfs2_edit: fix segfault in set_bitmap when block is in rgrp
fsck.gfs2: segfault in pass1b
gfs2_edit savemeta doesn't save all leaf blocks for large dirs
David Teigland (1):
gfs_controld: remove oom_adj
Steven Whitehouse (5):
tune: Clean up and make closer to tune2fs
strings: Clean up strings
libgfs2: Remove calls to gettext from libgfs2
libgfs2: Remove unused function get_sysfs_uinit()
libgfs2: Move gfs2_query into gfs2_convert
13 years, 2 months
gfs2-utils: master - gfs2_edit savemeta doesn't save all leaf blocks for large dirs
by Bob Peterson
Gitweb: http://git.fedorahosted.org/git/gfs2-utils.git?p=gfs2-utils.git;a=commitd...
Commit: 4a727917ff403b6f386c992d1e071e3f1a795893
Parent: 4e79f08f455038bdfb962f941676b7d5d8c21ef8
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: Wed Feb 23 07:13:31 2011 -0600
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: Wed Feb 23 07:13:31 2011 -0600
gfs2_edit savemeta doesn't save all leaf blocks for large dirs
This patch changes the gfs2_edit "savemeta" option so that it
processes exhash directories the same way that fsck.gfs2 does,
namely, it does a read of the hash table and saves all the
leaf blocks from that. Before it was trying to traverse the
blocks, but that only works for medium-size exhash directories.
rhbz#679565
---
gfs2/edit/savemeta.c | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/gfs2/edit/savemeta.c b/gfs2/edit/savemeta.c
index 666a452..844da8c 100644
--- a/gfs2/edit/savemeta.c
+++ b/gfs2/edit/savemeta.c
@@ -398,10 +398,21 @@ static void save_inode_data(int out_fd)
}
}
/* Process directory exhash inodes */
- if (S_ISDIR(inode->i_di.di_mode)) {
- if (inode->i_di.di_flags & GFS2_DIF_EXHASH) {
- save_indirect_blocks(out_fd, cur_list, metabh,
- height, 0);
+ if (S_ISDIR(inode->i_di.di_mode) &&
+ inode->i_di.di_flags & GFS2_DIF_EXHASH) {
+ uint64_t leaf_no, old_leaf = -1;
+ int li;
+
+ for (li = 0; li < (1 << inode->i_di.di_depth); li++) {
+ gfs2_get_leaf_nr(inode, li, &leaf_no);
+ if (leaf_no == old_leaf ||
+ gfs2_check_range(&sbd, leaf_no) != 0)
+ continue;
+ old_leaf = leaf_no;
+ mybh = bread(&sbd, leaf_no);
+ if (gfs2_check_meta(mybh, GFS2_METATYPE_LF) == 0)
+ save_block(sbd.device_fd, out_fd, leaf_no);
+ brelse(mybh);
}
}
if (inode->i_di.di_eattr) { /* if this inode has extended attributes */
13 years, 2 months
cluster: RHEL57 - fsck.gfs2: segfault in pass1b
by Bob Peterson
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: b9306e19ba3f346326befd933c8ecdd9bc8973bf
Parent: 415fc5f19db6780c76dfc00f680a9617dacd7b31
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: Tue Feb 22 16:40:37 2011 -0600
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: Tue Feb 22 16:40:37 2011 -0600
fsck.gfs2: segfault in pass1b
The problem occurred when there were duplicate block
references in a dinode but all references in the duplicate
list are eventually deleted due to other corruption.
The fix is an additional check whether the list is empty.
rhbz#679076
---
gfs2/fsck/pass1b.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/gfs2/fsck/pass1b.c b/gfs2/fsck/pass1b.c
index a0c5c88..9abc8c1 100644
--- a/gfs2/fsck/pass1b.c
+++ b/gfs2/fsck/pass1b.c
@@ -558,7 +558,7 @@ static int handle_dup_blk(struct gfs2_sbd *sbp, struct duptree *b)
last_reference = clear_a_reference(sbp, b, &b->ref_inode_list,
&dh, 0);
- if (last_reference) {
+ if (last_reference && !osi_list_empty(&b->ref_inode_list)) {
uint8_t q;
/* If we're down to a single reference (and not all references
13 years, 2 months
fence: master - fenced: don't ignore victim_done messages for reduced victims
by David Teigland
Gitweb: http://git.fedorahosted.org/git/fence.git?p=fence.git;a=commitdiff;h=73c0...
Commit: 73c0f58f071d713bd3b634ffcfb1d02feba84fcc
Parent: 7181608a3a497bff3d9d1306e77503dbfc4c32f5
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Feb 22 15:47:24 2011 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Feb 22 16:40:30 2011 -0600
fenced: don't ignore victim_done messages for reduced victims
When a victim is "reduced" (i.e. fenced skips fencing it because it
rejoins the cluster cleanly before fenced fences it), it is immediately
removed from the list of victims, before the "victim_done" message is
sent for it. The victim_done message updates the time of the last
successful fencing operation for a failed node.
The code that processes received victim_done messages was ignoring the
message for the reduced victim because the node couldn't be found in
the victims list. This caused the latest fencing information to not be
recorded for the node, causing dlm_controld to wait indefinately for
fencing to complete for the reduced victim.
The fix is to simply record the information from a victim_done message
even if the node is not in the victims list.
bz 678704
Acked-by: Ryan O'Hara <rohara(a)redhat.com>
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
fence/fenced/cpg.c | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/fence/fenced/cpg.c b/fence/fenced/cpg.c
index eec2ba6..716d4c4 100644
--- a/fence/fenced/cpg.c
+++ b/fence/fenced/cpg.c
@@ -654,9 +654,9 @@ static void receive_victim_done(struct fd *fd, struct fd_header *hd, int len)
node = get_node_victim(fd, id->nodeid);
if (!node) {
+ /* see comment below about no node */
log_debug("receive_victim_done %d:%u no victim nodeid %d",
hd->nodeid, seq, id->nodeid);
- return;
}
log_debug("receive_victim_done %d:%u remove victim %d time %llu how %d",
@@ -672,9 +672,11 @@ static void receive_victim_done(struct fd *fd, struct fd_header *hd, int len)
if (hd->nodeid == our_nodeid) {
/* sanity check, I don't think this should happen;
see comment in fence_victims() */
- if (!node->local_victim_done)
- log_error("expect local_victim_done");
- node->local_victim_done = 0;
+ if (node) {
+ if (!node->local_victim_done)
+ log_error("expect local_victim_done");
+ node->local_victim_done = 0;
+ }
} else {
/* save details of fencing operation from master, which
master saves at the time it completes it */
@@ -682,8 +684,12 @@ static void receive_victim_done(struct fd *fd, struct fd_header *hd, int len)
id->fence_how, id->fence_time);
}
- list_del(&node->list);
- free(node);
+ /* we can have no node when reduce_victims() removes it, bz 678704 */
+
+ if (node) {
+ list_del(&node->list);
+ free(node);
+ }
}
/* we know that the quorum value here is consistent with the cpg events
13 years, 2 months
cluster: STABLE31 - fenced: don't ignore victim_done messages for reduced victims
by David Teigland
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 0901934fdcd49f85deac905da3d63497d3885382
Parent: c217c686b16f9aa8be3b2b49d017b11bf05b26fc
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Feb 22 15:47:24 2011 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Feb 22 16:39:53 2011 -0600
fenced: don't ignore victim_done messages for reduced victims
When a victim is "reduced" (i.e. fenced skips fencing it because it
rejoins the cluster cleanly before fenced fences it), it is immediately
removed from the list of victims, before the "victim_done" message is
sent for it. The victim_done message updates the time of the last
successful fencing operation for a failed node.
The code that processes received victim_done messages was ignoring the
message for the reduced victim because the node couldn't be found in
the victims list. This caused the latest fencing information to not be
recorded for the node, causing dlm_controld to wait indefinately for
fencing to complete for the reduced victim.
The fix is to simply record the information from a victim_done message
even if the node is not in the victims list.
bz 678704
Acked-by: Ryan O'Hara <rohara(a)redhat.com>
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
fence/fenced/cpg.c | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/fence/fenced/cpg.c b/fence/fenced/cpg.c
index a8629b9..99e16a0 100644
--- a/fence/fenced/cpg.c
+++ b/fence/fenced/cpg.c
@@ -652,9 +652,9 @@ static void receive_victim_done(struct fd *fd, struct fd_header *hd, int len)
node = get_node_victim(fd, id->nodeid);
if (!node) {
+ /* see comment below about no node */
log_debug("receive_victim_done %d:%u no victim nodeid %d",
hd->nodeid, seq, id->nodeid);
- return;
}
log_debug("receive_victim_done %d:%u remove victim %d time %llu how %d",
@@ -670,9 +670,11 @@ static void receive_victim_done(struct fd *fd, struct fd_header *hd, int len)
if (hd->nodeid == our_nodeid) {
/* sanity check, I don't think this should happen;
see comment in fence_victims() */
- if (!node->local_victim_done)
- log_error("expect local_victim_done");
- node->local_victim_done = 0;
+ if (node) {
+ if (!node->local_victim_done)
+ log_error("expect local_victim_done");
+ node->local_victim_done = 0;
+ }
} else {
/* save details of fencing operation from master, which
master saves at the time it completes it */
@@ -680,8 +682,12 @@ static void receive_victim_done(struct fd *fd, struct fd_header *hd, int len)
id->fence_how, id->fence_time);
}
- list_del(&node->list);
- free(node);
+ /* we can have no node when reduce_victims() removes it, bz 678704 */
+
+ if (node) {
+ list_del(&node->list);
+ free(node);
+ }
}
/* we know that the quorum value here is consistent with the cpg events
13 years, 2 months
cluster: RHEL6 - fenced: don't ignore victim_done messages for reduced victims
by David Teigland
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 4eb20ad9f8e62d0739c7897d79bc1bccb94e5250
Parent: 8fd8d3f3c52b9efc09d911bd8fdcab3e8742e9cb
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Feb 22 15:47:24 2011 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Feb 22 16:33:11 2011 -0600
fenced: don't ignore victim_done messages for reduced victims
When a victim is "reduced" (i.e. fenced skips fencing it because it
rejoins the cluster cleanly before fenced fences it), it is immediately
removed from the list of victims, before the "victim_done" message is
sent for it. The victim_done message updates the time of the last
successful fencing operation for a failed node.
The code that processes received victim_done messages was ignoring the
message for the reduced victim because the node couldn't be found in
the victims list. This caused the latest fencing information to not be
recorded for the node, causing dlm_controld to wait indefinately for
fencing to complete for the reduced victim.
The fix is to simply record the information from a victim_done message
even if the node is not in the victims list.
bz 678704
Acked-by: Ryan O'Hara <rohara(a)redhat.com>
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
fence/fenced/cpg.c | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/fence/fenced/cpg.c b/fence/fenced/cpg.c
index a8629b9..99e16a0 100644
--- a/fence/fenced/cpg.c
+++ b/fence/fenced/cpg.c
@@ -652,9 +652,9 @@ static void receive_victim_done(struct fd *fd, struct fd_header *hd, int len)
node = get_node_victim(fd, id->nodeid);
if (!node) {
+ /* see comment below about no node */
log_debug("receive_victim_done %d:%u no victim nodeid %d",
hd->nodeid, seq, id->nodeid);
- return;
}
log_debug("receive_victim_done %d:%u remove victim %d time %llu how %d",
@@ -670,9 +670,11 @@ static void receive_victim_done(struct fd *fd, struct fd_header *hd, int len)
if (hd->nodeid == our_nodeid) {
/* sanity check, I don't think this should happen;
see comment in fence_victims() */
- if (!node->local_victim_done)
- log_error("expect local_victim_done");
- node->local_victim_done = 0;
+ if (node) {
+ if (!node->local_victim_done)
+ log_error("expect local_victim_done");
+ node->local_victim_done = 0;
+ }
} else {
/* save details of fencing operation from master, which
master saves at the time it completes it */
@@ -680,8 +682,12 @@ static void receive_victim_done(struct fd *fd, struct fd_header *hd, int len)
id->fence_how, id->fence_time);
}
- list_del(&node->list);
- free(node);
+ /* we can have no node when reduce_victims() removes it, bz 678704 */
+
+ if (node) {
+ list_del(&node->list);
+ free(node);
+ }
}
/* we know that the quorum value here is consistent with the cpg events
13 years, 2 months
gfs2-utils: master - fsck.gfs2: segfault in pass1b
by Bob Peterson
Gitweb: http://git.fedorahosted.org/git/gfs2-utils.git?p=gfs2-utils.git;a=commitd...
Commit: 4e79f08f455038bdfb962f941676b7d5d8c21ef8
Parent: 897437313adc8801b38ea42abc4fd07bd486ce3e
Author: Bob Peterson <rpeterso(a)redhat.com>
AuthorDate: Tue Feb 22 15:56:39 2011 -0600
Committer: Bob Peterson <rpeterso(a)redhat.com>
CommitterDate: Tue Feb 22 15:56:39 2011 -0600
fsck.gfs2: segfault in pass1b
The problem occurred when there were duplicate block
references in a dinode but all references in the duplicate
list are eventually deleted due to other corruption.
The fix is an additional check whether the list is empty.
rhbz#679076
---
gfs2/fsck/pass1b.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/gfs2/fsck/pass1b.c b/gfs2/fsck/pass1b.c
index 090b412..5bbda7c 100644
--- a/gfs2/fsck/pass1b.c
+++ b/gfs2/fsck/pass1b.c
@@ -542,7 +542,7 @@ static int handle_dup_blk(struct gfs2_sbd *sbp, struct duptree *b)
last_reference = clear_a_reference(sbp, b, &b->ref_inode_list,
&dh, 0);
- if (last_reference) {
+ if (last_reference && !osi_list_empty(&b->ref_inode_list)) {
uint8_t q;
/* If we're down to a single reference (and not all references
13 years, 2 months