hi folks,
Recently, we encountered a problem when checking out directories
frequently. But I am not sure whether is an issue or not.
Suppose that there is a svn address
https://10.38.90.34/app/tools/tags/ts/ts_stable_101_PD_BL, it's a tag
for https://10.38.90.34/app/tools/ts.
And there are some subdirectories under ts, let's call them ts_a, ts_b, ts_c...
So we can use command 'svn co
https://10.38.90.34/app/tools/tags/ts/ts_stable_101_PD_BL ./ts' to
checkout ts.
But, some times, one or more subdirectories were not checked out successfully.
What's really amazing is that the 'svn co' operation returned 0 and no
error message prompted, like that the subdirectories missing did not
exist.
I write a script to reproduce this problem, it happened about one or
two times in 1000 times.
*OS information:*
[work_at_cm-perf03 test2]$ lsb_release -a
LSB Version: :core-3.0-amd64:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0-noarch
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 3)
Release: 4
Codename: NahantUpdate3
*Svn information:*
[work_at_cm-perf03 test2]$ svn --version
svn, version 1.6.5 (r38866)
compiled Aug 17 2010, 18:57:09*
Compiler:* (no special options used when compile subversion and
noprivate modifications to subversion)
[work_at_cm-perf03 test2]$ gcc --version
gcc (GCC) 3.4.5 20051201 (Red Hat 3.4.5-2)
Copyright (C) 2004 Free Software Foundation, Inc.
Detail of the test script:
function print()
{
nowtime=`date +%Y-%m%d-%H:%M --date='today'`
echo "$nowtime $1" >> run.log
}
function checkout_and_check()
{
run_fail=0
if [ -d "./ts" ];then print "rm directory failed!";run_fail=1; fi
svn --force co
https://10.38.90.34/app/tools/tags/ts/ts_stable_101_PD_BL ./ts
if [ $? -ne 0 ];then
print "check out fail!"
run_fail=1
fi
if [ ! -d "./ts/ts_c" ];then
print "check subdirectory fail!"
run_fail=1
fi
if [ $run_fail -ne 0 ];then
mv "./ts" "./ts.$1"
else
/bin/rm -fr "./ts"
fi
sleep 3
return $run_fail
}
/bin/rm -f run.log
for((i=0;i<1000;i++))
do
checkout_and_check $i
if [ $? -ne 0 ];then
print "Fail at index:$i"
fi
done
print "well done!"
Thank you,
-Tery
Received on 2011-12-31 20:30:55 CET