[PATCH] Fix flakey smbclient tests

Jeremy Allison jra at samba.org
Tue Jul 18 20:28:44 UTC 2017


On Tue, Jul 18, 2017 at 12:56:06PM +0200, Andreas Schneider via samba-technical wrote:
> Hi,
> 
> 
> the attached pachset should fix:
> 
> 
> UNEXPECTED(failure): samba3.blackbox.smbclient_s3.sign (nt4_member) member 
> creds.follow symlinks = no(nt4_member)
> REASON: Exception: Exception: CLI_FORCE_INTERACTIVE=yes /memdisk/autobuild/fl/
> b22467/samba/bin/smbclient -ULOCALNT4MEMBER3/autobuild%localnt4member3pass //
> LOCALNT4MEMBER3/nosymlinks -I 127.0.0.4 --configfile=/memdisk/autobuild/fl/
> b22467/samba/bin/ab/client/client.conf --signing=required
> NT_STATUS_ACCESS_DENIED opening remote file 	est\source
> CLI_FORCE_INTERACTIVE=yes /memdisk/autobuild/fl/b22467/samba/bin/smbclient -
> ULOCALNT4MEMBER3/autobuild%localnt4member3pass //LOCALNT4MEMBER3/nosymlinks -I 
> 127.0.0.4 --configfile=/memdisk/autobuild/fl/b22467/samba/bin/ab/client/
> client.conf --signing=required
> CLI_FORCE_INTERACTIVE=yes /memdisk/autobuild/fl/b22467/samba/bin/smbclient -
> ULOCALNT4MEMBER3/autobuild%localnt4member3pass //LOCALNT4MEMBER3/nosymlinks -I 
> 127.0.0.4 --configfile=/memdisk/autobuild/fl/b22467/samba/bin/ab/client/
> client.conf --signing=required
> NT_STATUS_FILE_IS_A_DIRECTORY opening remote file 	est
ooar	estfile
> Domain=[SAMBA-TEST] OS=[] Server=[]
> smb: \> cd test
ooar
> smb: 	est
ooar\> ls
>   .                                   D        0  Tue Apr 11 12:31:04 2017
>   ..                                  D        0  Tue Apr 11 12:31:04 2017
>   testfile                            D        0  Tue Apr 11 12:31:04 2017
> 
> 		39240824 blocks of size 1024. 33619008 blocks available
> smb: 	est
ooar\> get testfile -
> NT_STATUS_FILE_IS_A_DIRECTORY opening remote file 	est
ooar	estfile
> smb: 	est
ooar\> quit
> failed - NT_STATUS_XXXX doing cd fooar; get testfile on 
> osymlinks
> 
> FAILED (1 failures, 0 errors and 0 unexpected successes in 0 testsuites)
> 
> 
> 
> Review and push appreciated.

Andreas, thanks very much for tidying this up ! Much appreciated.

RB+ and pushed.

Jeremy.

> 
> 
> 
> 	Andreas
> 
> -- 
> Andreas Schneider                   GPG-ID: CC014E3D
> Samba Team                             asn at samba.org
> www.samba.org

> From 5aca42449d3fc5990e29bb08e22bedb200da5b59 Mon Sep 17 00:00:00 2001
> From: Andreas Schneider <asn at samba.org>
> Date: Tue, 18 Jul 2017 12:03:32 +0200
> Subject: [PATCH 1/2] s3:tests: Fix directory creation and deletion of
>  test_local_symlinks()
> 
> This should fix flakey autobuild.
> 
> BUG: https://bugzilla.samba.org/show_bug.cgi?id=12914
> 
> Signed-off-by: Andreas Schneider <asn at samba.org>
> ---
>  source3/script/tests/test_smbclient_s3.sh | 85 ++++++++++++++++++++++++++++---
>  1 file changed, 77 insertions(+), 8 deletions(-)
> 
> diff --git a/source3/script/tests/test_smbclient_s3.sh b/source3/script/tests/test_smbclient_s3.sh
> index 3cbe6f51d4b..b82d89ba7c0 100755
> --- a/source3/script/tests/test_smbclient_s3.sh
> +++ b/source3/script/tests/test_smbclient_s3.sh
> @@ -1148,21 +1148,60 @@ test_local_symlinks()
>      LOCAL_RAWARGS="${CONFIGURATION} -mSMB3"
>      LOCAL_ADDARGS="${LOCAL_RAWARGS} $*"
>  
> -    test_dir="$LOCAL_PATH/local_symlinks/test"
> +    share_test_dir="test"
> +    share_slink_target_dir="$share_test_dir/dir1"
>  
> -    slink_name="$test_dir/sym_name"
> -    slink_target_dir="$test_dir/dir1"
> +    local_test_dir="$LOCAL_PATH/local_symlinks/$share_test_dir"
> +    local_slink_name="$local_test_dir/sym_name"
> +    local_slink_target_dir="$local_test_dir/dir1"
>  
> -    rm -rf $test_dir
> +    rm -rf $local_test_dir
>  
> -    mkdir -p $test_dir
> -    mkdir $slink_target_dir
> -    ln -s $slink_target_dir $slink_name
> +# Create the initial directories
> +    tmpfile=$PREFIX/smbclient_interactive_prompt_commands
> +    cat > $tmpfile <<EOF
> +mkdir $share_test_dir
> +mkdir $share_slink_target_dir
> +quit
> +EOF
> +
> +    cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/local_symlinks -I $SERVER_IP $LOCAL_ADDARGS < $tmpfile 2>&1'
> +    eval echo "$cmd"
> +    out=`eval $cmd`
> +    ret=$?
> +    rm -f $tmpfile
> +
> +    if [ $ret -ne 0 ] ; then
> +       echo "$out"
> +       echo "failed accessing local_symlinks with error $ret"
> +       false
> +       return
> +    fi
> +
> +    echo "$out" | grep 'NT_STATUS_'
> +    ret=$?
> +    if [ $ret -eq 0 ] ; then
> +       echo "$out"
> +       echo "failed - got an NT_STATUS error"
> +       false
> +       return
> +    fi
> +
> +# Create the symlink locally
> +    ln -s $local_slink_target_dir $local_slink_name
> +    ret=$?
> +    if [ $ret -ne 0 ] ; then
> +       echo "$out"
> +       echo "failed - unable to create symlink"
> +       ls -la $local_test_dir
> +       false
> +       return
> +    fi
>  
>  # Can we cd into the symlink name and ls ?
>      tmpfile=$PREFIX/smbclient_interactive_prompt_commands
>      cat > $tmpfile <<EOF
> -cd test\\sym_name
> +cd $share_test_dir\\sym_name
>  ls
>  quit
>  EOF
> @@ -1187,6 +1226,36 @@ EOF
>         false
>         return
>      fi
> +
> +# CLEANUP
> +    rm -f $local_slink_name
> +
> +    tmpfile=$PREFIX/smbclient_interactive_prompt_commands
> +    cat > $tmpfile <<EOF
> +deltree $share_test_dir
> +quit
> +EOF
> +    cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/local_symlinks -I $SERVER_IP $LOCAL_ADDARGS < $tmpfile 2>&1'
> +    eval echo "$cmd"
> +    out=`eval $cmd`
> +    ret=$?
> +    rm -f $tmpfile
> +
> +    if [ $ret -ne 0 ] ; then
> +       echo "$out"
> +       echo "failed accessing local_symlinks with error $ret"
> +       false
> +       return
> +    fi
> +
> +    echo "$out" | grep 'NT_STATUS_'
> +    ret=$?
> +    if [ $ret -eq 0 ] ; then
> +       echo "$out"
> +       echo "failed - got an NT_STATUS error"
> +       false
> +       return
> +    fi
>  }
>  
>  # Test smbclient deltree command
> -- 
> 2.13.2
> 
> 
> From 5ab8e3dbee9a6b1edcc5ced5c2500dc4bc12e1b9 Mon Sep 17 00:00:00 2001
> From: Andreas Schneider <asn at samba.org>
> Date: Tue, 18 Jul 2017 12:29:16 +0200
> Subject: [PATCH 2/2] s3:tests: Fix directory creation and deletion of
>  test_nosymlinks()
> 
> This should fix flakey autobuild.
> 
> BUG: https://bugzilla.samba.org/show_bug.cgi?id=12914
> 
> Signed-off-by: Andreas Schneider <asn at samba.org>
> ---
>  source3/script/tests/test_smbclient_s3.sh | 89 +++++++++++++++++++++++++++----
>  1 file changed, 78 insertions(+), 11 deletions(-)
> 
> diff --git a/source3/script/tests/test_smbclient_s3.sh b/source3/script/tests/test_smbclient_s3.sh
> index b82d89ba7c0..59d742f742e 100755
> --- a/source3/script/tests/test_smbclient_s3.sh
> +++ b/source3/script/tests/test_smbclient_s3.sh
> @@ -1042,21 +1042,61 @@ EOF
>  test_nosymlinks()
>  {
>  # Setup test dirs.
> -    test_dir="$LOCAL_PATH/nosymlinks/test"
> +    local_test_dir="$LOCAL_PATH/nosymlinks/test"
> +    local_slink_name="$local_test_dir/source"
> +    local_slink_target="$local_test_dir/nosymlink_target_file"
>  
> -    slink_name="$test_dir/source"
> -    slink_target="$test_dir/target"
> -    foobar_dir="$test_dir/foo/bar"
> -    get_target="$test_dir/foo/bar/testfile"
> +    share_test_dir="test"
> +    share_foo_dir="$share_test_dir/foo"
> +    share_foobar_dir="$share_test_dir/foo/bar"
> +    share_target_file="$share_test_dir/foo/bar/testfile"
> +
> +    rm -rf $local_test_dir
>  
> -    rm -rf $test_dir
> +    local_nosymlink_target_file="nosymlink_target_file"
> +    echo "$local_slink_target" > $local_nosymlink_target_file
>  
> -    mkdir -p $test_dir
> -    echo "$slink_target" > $slink_target
> -    ln -s $slink_target $slink_name
> +    local_foobar_target_file="testfile"
> +    echo "$share_target_file" > $local_foobar_target_file
> +
> +    tmpfile=$PREFIX/smbclient_interactive_prompt_commands
> +    cat > $tmpfile <<EOF
> +mkdir $share_test_dir
> +mkdir $share_foo_dir
> +mkdir $share_foobar_dir
> +cd /$share_test_dir
> +put $local_nosymlink_target_file
> +cd /$share_foobar_dir
> +put $local_foobar_target_file
> +quit
> +EOF
> +
> +    cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/nosymlinks -I $SERVER_IP $LOCAL_ADDARGS < $tmpfile 2>&1'
> +    eval echo "$cmd"
> +    out=`eval $cmd`
> +    ret=$?
> +    rm -f $tmpfile
> +    rm -f $local_nosymlink_target_file
> +    rm -f $local_foobar_target_file
> +
> +    if [ $ret -ne 0 ] ; then
> +       echo "$out"
> +       echo "failed accessing local_symlinks with error $ret"
> +       false
> +       return
> +    fi
> +
> +    echo "$out" | grep 'NT_STATUS_'
> +    ret=$?
> +    if [ $ret -eq 0 ] ; then
> +       echo "$out"
> +       echo "failed - got an NT_STATUS error"
> +       false
> +       return
> +    fi
>  
> -    mkdir -p $foobar_dir
> -    echo "$get_target" > $get_target
> +# Create the symlink locally
> +    ln -s $local_slink_target $local_slink_name
>  
>  # Getting a file through a symlink name should fail.
>      tmpfile=$PREFIX/smbclient_interactive_prompt_commands
> @@ -1136,6 +1176,33 @@ EOF
>         echo "failed - NT_STATUS_XXXX doing cd foo\\bar; get testfile on \\nosymlinks"
>         return 1
>      fi
> +
> +# CLEANUP
> +    rm -f $local_slink_name
> +
> +    cat > $tmpfile <<EOF
> +deltree test
> +quit
> +EOF
> +    cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/nosymlinks -I $SERVER_IP $ADDARGS < $tmpfile 2>&1'
> +    eval echo "$cmd"
> +    out=`eval $cmd`
> +    ret=$?
> +    rm -f $tmpfile
> +
> +    if [ $ret -ne 0 ] ; then
> +       echo "$out"
> +       echo "failed accessing nosymlinks with error $ret"
> +       return 1
> +    fi
> +
> +    echo "$out" | grep 'NT_STATUS'
> +    ret=$?
> +    if [ $ret -eq 0 ] ; then
> +       echo "$out"
> +       echo "failed - NT_STATUS_XXXX doing cd foo\\bar; get testfile on \\nosymlinks"
> +       return 1
> +    fi
>  }
>  
>  # Test we can follow normal symlinks.
> -- 
> 2.13.2
> 




More information about the samba-technical mailing list