The current code only exclude the hostname, while localhost can have alias in /etc/hosts. All of the alias should be excluded from the fence dump node to avoid deadlock issue.
Signed-off-by: Pingfan Liu piliu@redhat.com --- dracut-module-setup.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 27b9f02..d96f8b0 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -689,6 +689,21 @@ kdump_check_iscsi_targets () { } }
+is_localhost() { + local hostnames=$(hostname -A) + local shortnames=$(hostname -A -s) + local nodename=$1 + + hostnames="$hostnames $shortnames) + + for name in ${hostnames}; do + if [ "$name" == "$nodename" ]; then + return 0 + fi + done + return 1 +} + # retrieves fence_kdump nodes from Pacemaker cluster configuration get_pcs_fence_kdump_nodes() { local nodes @@ -703,7 +718,7 @@ get_pcs_fence_kdump_nodes() { eval $node nodename=$uname # Skip its own node name - if [ "$nodename" = `hostname` -o "$nodename" = `hostname -s` ]; then + if is_localhost $nodename; then continue fi nodes="$nodes $nodename"
Hi Pingfan,
On Mon, Jul 29, 2019 at 4:15 PM Pingfan Liu piliu@redhat.com wrote:
The current code only exclude the hostname, while localhost can have alias in /etc/hosts. All of the alias should be excluded from the fence dump node to avoid deadlock issue.
Signed-off-by: Pingfan Liu piliu@redhat.com
dracut-module-setup.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 27b9f02..d96f8b0 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -689,6 +689,21 @@ kdump_check_iscsi_targets () { } }
+is_localhost() {
- local hostnames=$(hostname -A)
- local shortnames=$(hostname -A -s)
- local nodename=$1
- hostnames="$hostnames $shortnames)
Should it be hostnames="$hostnames $shortnames" ?
- for name in ${hostnames}; do
if [ "$name" == "$nodename" ]; then
return 0
fi
- done
- return 1
+}
# retrieves fence_kdump nodes from Pacemaker cluster configuration get_pcs_fence_kdump_nodes() { local nodes @@ -703,7 +718,7 @@ get_pcs_fence_kdump_nodes() { eval $node nodename=$uname # Skip its own node name
if [ "$nodename" = `hostname` -o "$nodename" = `hostname -s` ]; then
if is_localhost $nodename; then continue fi nodes="$nodes $nodename"
-- 2.20.1
Rest of the patch looks good.
On 07/31/2019 03:03 PM, Kairui Song wrote:
Hi Pingfan,
On Mon, Jul 29, 2019 at 4:15 PM Pingfan Liu piliu@redhat.com wrote:
The current code only exclude the hostname, while localhost can have alias in /etc/hosts. All of the alias should be excluded from the fence dump node to avoid deadlock issue.
Signed-off-by: Pingfan Liu piliu@redhat.com
dracut-module-setup.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 27b9f02..d96f8b0 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -689,6 +689,21 @@ kdump_check_iscsi_targets () { } }
+is_localhost() {
- local hostnames=$(hostname -A)
- local shortnames=$(hostname -A -s)
- local nodename=$1
- hostnames="$hostnames $shortnames)
Should it be hostnames="$hostnames $shortnames" ?
Oh, yes. I correct it on the test machine, but forget to fix it in my git repo. Will send out V2 to fix it
Thanks
- for name in ${hostnames}; do
if [ "$name" == "$nodename" ]; then
return 0
fi
- done
- return 1
+}
# retrieves fence_kdump nodes from Pacemaker cluster configuration get_pcs_fence_kdump_nodes() { local nodes @@ -703,7 +718,7 @@ get_pcs_fence_kdump_nodes() { eval $node nodename=$uname # Skip its own node name
if [ "$nodename" = `hostname` -o "$nodename" = `hostname -s` ]; then
if is_localhost $nodename; then continue fi nodes="$nodes $nodename"
-- 2.20.1
Rest of the patch looks good.