You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by William Uther <wi...@cse.unsw.edu.au> on 2002/12/10 04:26:52 UTC
ra_svn deadlock on MacOS X?
Hi,
Is ra_svn supposed to be passing 'make check' yet?
svn seems to deadlock for me in test 5 of diff_tests.py when run over
ra_svn and ssh. Details on my experiments below.
Later,
Will :-}
I have the following setup:
MacOS X 10.2.2
neon 0.23.5 with ssl and zlib (through fink)
BDB 4.0 (through fink)
BDB 4.1 (through fink) (tried with both versions of BDB libs installed,
but only one set of headers at a time - same response with both
versions. I used otool to check it was linking with the correct
libraries.)
svn revision 4062
"./configure" \
"--enable-maintainer-mode" \
"--disable-shared" \
"--with-neon=/sw" \
"--with-berkeley-db=/sw/include/db4:/sw/lib" \
"--with-dbm=db4" \
"--with-iconv=/sw" \
make check passes for ra_local
I'm not building mod_dav_svn
I then set up my system so that ssh can connect locally without a
password (using ssh authorized_hosts), and do the following:
add 'localhost' as a group in ~/.subversion/servers.
add
> [localhost]
> svn-tunnel-agent = ssh
to ~/.subversion/servers
make install (this step is important - you need to check an up to date
svnserve on the other end of the ssh pipe)
env
BASE_URL=svn://localhost/Users/willu/src/subversion/subversion/tests/
clients/cmdline make check
Most of the tests pass until I get to diff_test 5 which never completes
(The machine is ok, but you can leave it running overnight and it gets
no further. The machine load drops from just over 1 to almost 0).
Here is the tail of the output:
stdout:
Running all tests in copy_tests.py...success
Running all tests in diff_tests.py...^CTraceback (most recent call
last):
File "./build/run_tests.py", line 170, in ?
main()
File "./build/run_tests.py", line 163, in main
failed = th.run(sys.argv[base_index+5:])
File "./build/run_tests.py", line 35, in run
failed = self._run_test(prog) or failed
File "./build/run_tests.py", line 97, in _run_test
failed = self._run_prog(progname, cmdline)
File "./build/run_tests.py", line 127, in _run_prog
rv = os.spawnv(os.P_WAIT, progname, cmdline)
File "/usr/lib/python2.2/os.py", line 485, in spawnv
return _spawnvef(mode, file, args, None, execv)
File "/usr/lib/python2.2/os.py", line 468, in _spawnvef
wpid, sts = waitpid(pid, 0)
KeyboardInterrupt
make: *** [check] Error 1
from tests.log:
PASS: diff_tests.py 4: replace a file with a file
CMD: svn "co" "--username" "jrandom" "--password" "rayjandom"
"svn://localhost/Users/willu/src/subversion/subversion/tests/clients/
cmdline/repositories/diff_tests-5" "working_copies/diff_tests-5"
CMD: svn "up" "-rHEAD"
CMD: svn "add" "A/B/E/theta"
CMD: svn "diff"
CMD: svn "diff" "-rHEAD"
CMD: svn "ci" "-m" "log msg"
CMD: svn "up"
CMD: svn "diff" "-r" "1"
CMD: svn "up" "-rHEAD"
CMD: svn "add" "A/B/T"
CMD: svn "add" "A/B/T/phi"
CMD: svn "diff"
CMD: svn "diff" "-rHEAD"
CMD: svn "ci" "-m" "log msg"
CMD: svn "up"
CMD: svn "diff" "-r" "2"
CMD: svn "up" "-rHEAD"
CMD: svn "diff"
CMD: svn "diff" "-rHEAD"
CMD: svn "ci" "-m" "log msg"
CMD: svn "up"
CMD: svn "diff" "-r" "3"
CMD: svn "up" "-r" "4"
CMD: svn "diff" "-r" "1"
CMD: svn "diff" "-r" "1"
CMD: svn "diff" "-r" "1"
CMD: svn "up" "-r" "1"
CMD: svn "diff" "-r" "4"
CMD: svn "diff" "-r" "4"
CMD: svn "diff" "-r" "4"
CMD: svn "diff" "-r" "1:4"
Interrupted
I just tried using 'svnserve -d' and no ssh tunnelling. This time the
load dropped to 0 inside update_tests.py. tests.log reveals:
START: update_tests.py
CMD: svnadmin "create" "local_tmp/repos"
CMD: svn "import" "--username" "jrandom" "--password" "rayjandom" "-m"
"Log mess
age for revision 1."
"svn://localhost/Users/willu/src/subversion/subversion/test
s/clients/cmdline/local_tmp/repos" "local_tmp/greekfiles"
CMD: svn "co" "--username" "jrandom" "--password" "rayjandom"
"svn://localhost/U
sers/willu/src/subversion/subversion/tests/clients/cmdline/
repositories/update_t
ests-1" "working_copies/update_tests-1"
Interrupted
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: ra_svn deadlock on MacOS X?
Posted by Ben Collins-Sussman <su...@collab.net>.
William Uther <wi...@cse.unsw.edu.au> writes:
> P.S. If the problem is with the MacOS server code, I'd be interested
> in trying with a linux server and a MacOS client. Any thoughts on how
> you might run 'make check' in this situation? i.e. I'd be able to run
> 'make check' on the server to verify that the linux client and server
> were both correct, but is there a way to check the MacOS client
> without worrying about the MacOS server?
No dice. The python test suite requires that everything happen on the
same box: svnadmin create, svn import, svn co, etc.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: ra_svn deadlock on MacOS X?
Posted by William Uther <wi...@cse.unsw.edu.au>.
On Tuesday, December 10, 2002, at 04:05 PM, Greg Hudson wrote:
>> Most of the tests pass until I get to diff_test 5 which never
>> completes
>
> diff_tests 5 tests a code path which opens two connections to the
> repository ("svn diff -r 3:4 url"). So it will expose any
> single-threadedness problem on the server side. In daemon mode, right
> now you're single-threaded if APR_HAS_FORK isn't defined; in ssh mode,
> a
> single-threadedness could be the result of an sshd problem (though I've
> never heard of anything like that) or a Berkeley db locking problem.
A BDB locking problem was my take too (especially since I vaguely
remember BDB 4.0 was known to have some locking problems on MacOS X).
Does anyone know how to go about tracking this down?
>> I just tried using 'svnserve -d' and no ssh tunnelling. This time the
>> load dropped to 0 inside update_tests.py. tests.log reveals:
>
> I can't explain that one. I'll try to verify tonight that daemon-mode
> ra_svn passes the test suite, though I'll be trying on Linux, not MacOS
> X.
I was surprised too. I was especially surprised since the same test
passes when using ssh tunnelling.
Be well,
Will :-}
P.S. If the problem is with the MacOS server code, I'd be interested
in trying with a linux server and a MacOS client. Any thoughts on how
you might run 'make check' in this situation? i.e. I'd be able to run
'make check' on the server to verify that the linux client and server
were both correct, but is there a way to check the MacOS client without
worrying about the MacOS server?
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: ra_svn deadlock on MacOS X?
Posted by Greg Hudson <gh...@MIT.EDU>.
On Mon, 2002-12-09 at 23:26, William Uther wrote:
> Hi,
> Is ra_svn supposed to be passing 'make check' yet?
It's possible there's been a regression, but it has certainly done so in
the past.
> Most of the tests pass until I get to diff_test 5 which never completes
diff_tests 5 tests a code path which opens two connections to the
repository ("svn diff -r 3:4 url"). So it will expose any
single-threadedness problem on the server side. In daemon mode, right
now you're single-threaded if APR_HAS_FORK isn't defined; in ssh mode, a
single-threadedness could be the result of an sshd problem (though I've
never heard of anything like that) or a Berkeley db locking problem.
> I just tried using 'svnserve -d' and no ssh tunnelling. This time the
> load dropped to 0 inside update_tests.py. tests.log reveals:
I can't explain that one. I'll try to verify tonight that daemon-mode
ra_svn passes the test suite, though I'll be trying on Linux, not MacOS
X.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org