Hi Dave,

On Mon, Jul 3, 2017 at 4:52 PM, Dave Young <dyoung@redhat.com> wrote:
Hi Ziyue
On 07/03/17 at 04:08pm, Ziyue Yang wrote:
> The bug (https://bugzilla.redhat.com/show_bug.cgi?id=1465735)

Can you describe the bug in patch log for example copy the errors here?
We do not need to click the link to get what happened although adding
the link as a reference is good.

Sure, I've sent a v2 patch.


> is caused by behavior difference between bash and sh (bash
> in posix).
> In the function single_instance_lock in kdumpctl script,
> there is
>
> exec 9>/var/lock/kdump
>
> which will fail in user mode. However, this fail will cause
> script exit under bash and non-exit under sh, causing infinite

exit under sh, non-exit under bash?

Once exec fail, the sh will exit immediately, while bash will continue
to execute rest commands.
 

> loop because the flock will always fail.
>
> According to the 16th item in
> ftp://ftp.gnu.org/old-gnu/Manuals/bash-2.02/html_node/bashref_66.html
>
> If a POSIX.2 special builtin returns an error status, a non-
> interactive shell exits.
>
> And according to
> https://www.gnu.org/software/bash/manual/html_node/Special-Builtins.html
>
> exec is one of the POSIX.2 special builtin's.
>
> This patch fixes the bug by checking exec return value.
>
> Signed-off-by: Ziyue Yang <ziyang@redhat.com>
> ---
>  kdumpctl | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/kdumpctl b/kdumpctl
> index e440bbb..a517925 100755
> --- a/kdumpctl
> +++ b/kdumpctl
> @@ -37,6 +37,10 @@ single_instance_lock()
>       local rc timeout=5
>
>       exec 9>/var/lock/kdump
> +     if [ $? -ne 0 ]; then
> +             echo "Creating file lock failed"
> +             exit 1
> +     fi
>
>       flock -n 9
>       rc=$?
> --
> 2.9.3
> _______________________________________________
> kexec mailing list -- kexec@lists.fedoraproject.org
> To unsubscribe send an email to kexec-leave@lists.fedoraproject.org