[PATCH] smbtorture: Close unused pipe fds in kernel_oplocks8

Jeremy Allison jra at samba.org
Thu Nov 15 21:11:31 UTC 2018


On Thu, Nov 15, 2018 at 11:18:08AM -0700, Christof Schmitt via samba-technical wrote:
> Found this while doing some manual testing. A wrong path for localdir in
> the smb2.kernel_oplocks8 test leads to a smbtorture hang.

LGTM. RB+ and pushed !

> From 5dfddc51fd8ae073d2bff68ed26dce590333e7ce Mon Sep 17 00:00:00 2001
> From: Christof Schmitt <cs at samba.org>
> Date: Wed, 14 Nov 2018 15:13:03 -0700
> Subject: [PATCH] smbtorture: Close unused pipe fds in kernel_oplocks8
> 
> This fixes a hang of the testcase when hitting an error in the child (e.g.
> localdir does not exist)
> 
> Signed-off-by: Christof Schmitt <cs at samba.org>
> ---
>  source4/torture/smb2/oplock.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/source4/torture/smb2/oplock.c b/source4/torture/smb2/oplock.c
> index 800a4cf299f..8bbb641ea72 100644
> --- a/source4/torture/smb2/oplock.c
> +++ b/source4/torture/smb2/oplock.c
> @@ -4956,12 +4956,14 @@ static bool wait_for_child_oplock(struct torture_context *tctx,
>  		char c;
>  		/* Parent. */
>  		TALLOC_FREE(name);
> +		close(fds[1]);
>  		ret = sys_read(fds[0], &c, 1);
>  		torture_assert(tctx, ret == 1, "read failed");
>  		return true;
>  	}
>  
>  	/* Child process. */
> +	close(fds[0]);
>  	ret = do_child_process(fds[1], name);
>  	_exit(ret);
>  	/* Notreached. */
> -- 
> 2.17.0
> 




More information about the samba-technical mailing list