----- Original Message -----
From: "Xunlei Pang" <xpang(a)redhat.com>
To: "Pingfan Liu" <piliu(a)redhat.com>, kexec(a)lists.fedoraproject.org
Cc: "Dave Young" <dyoung(a)redhat.com>, "Baoquan He"
<bhe(a)redhat.com>
Sent: Tuesday, May 16, 2017 3:39:55 PM
Subject: Re: [PATCH v2] kdumpctl: for fence_kdump, the ipaddr of this node should be
excluded from list
On 05/16/2017 at 03:08 PM, Pingfan Liu wrote:
> In kdump.conf, the fence_kdump_nodes list can be hostname or ipaddr. We
> have
> already excluded the node's hostname from the list to avoid the deadlock
> issue
What deadlock issue? Can you explain in more details?
The capture kernel sends message to the hosts in the list and wait for response.
Only after the pair responded, the hooks in /lib/dracut/hooks/initqueue/finished/* can
return 0, otherwise, the hooks wait endless. And kdump-capture service can not be started.
So if the failure node itself is in fence_kdump_nodes, the capture-kernel waits for it
self's response, which never come.
> in capture kernel. This patch applies the same rule on ipaddr.
>
> Signed-off-by: Pingfan Liu <piliu(a)redhat.com>
> ---
> v1 -> v2:
> improve commit log
> kdump.conf | 4 ++--
> kdumpctl | 7 +++++++
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/kdump.conf b/kdump.conf
> index 1e24e1b..cfdaec7 100644
> --- a/kdump.conf
> +++ b/kdump.conf
> @@ -137,8 +137,8 @@
> #
> # fence_kdump_nodes <node(s)>
> # - List of cluster node(s), separated by spaces, to send
> -# fence_kdump notifications to (this option is mandatory to
> -# enable fence_kdump).
> +# fence_kdump notifications to. The list should exclude this
> node itself!
> +# (this option is mandatory to enable fence_kdump).
> #
>
> #raw /dev/vg/lv_kdump
> diff --git a/kdumpctl b/kdumpctl
> index d43f46b..638c6b6 100755
> --- a/kdumpctl
> +++ b/kdumpctl
> @@ -1118,6 +1118,7 @@ check_kdump_feasibility()
> check_fence_kdump_config()
> {
> local hostname=`hostname`
> + local ipaddrs=`hostname -i`
From "man hostname" cited below, looks like "hostname -i" is not
safe, can we
use "-I" instead?
Yes, -I option is better.
-i, --ip-address
Display the network address(es) of the host name. Note that
this works only if the host name can be
resolved. Avoid using this option; use hostname
--all-ip-addresses instead.
-I, --all-ip-addresses
Display all network addresses of the host. This option
enumerates all configured addresses on all net‐
work interfaces. The loopback interface and IPv6 link-local
addresses are omitted. Contrary to option
-i, this option does not depend on name resolution. Do not make
any assumptions about the order of the
output.
> local nodes=$(get_option_value "fence_kdump_nodes")
>
> for node in $nodes; do
> @@ -1125,6 +1126,12 @@ check_fence_kdump_config()
> echo "Option fence_kdump_nodes cannot contain $hostname"
> return 1
> fi
> + # node can be ipaddr
> + echo $ipaddrs | grep $node
append " >/dev/null" to avoid needless output
Ok.
Thanks for your kindly review.
Regards,
Pingfan