On Sat, Dec 28, 2019 at 12:13 PM Daniel Shahaf <d...@daniel.shahaf.name> wrote: > Nathan Hartman wrote on Fri, Dec 27, 2019 at 15:39:10 -0500: > > On Fri, Dec 27, 2019 at 12:41 AM Daniel Shahaf <d...@daniel.shahaf.name> > > wrote: > > > Forgot to say this earlier, but you might try running a threaded > > > svnserve. In > > > plain trunk that's «make svnserveautocheck THREADED=1»; I don't know how > > > to do > > > that in stsp's distro. > > > > I'll give it a try. I have to study how the makefile invokes the > > regression tests. > > > > There is a variable THREADING in the makefile; it defaults to yes and > > activates threading and thread-safety stuff in apr, gettext, ruby, and > > sqlite. It has no effect on the Subversion build or tests. > > To be clear, I was referring to the variable THREADED in Subversion's > Makefile, > not to anything in stsp's distro. Perhaps this? — > > Index: tools/dev/unix-build/Makefile.svn > =================================================================== > --- tools/dev/unix-build/Makefile.svn (revision 1871981) > +++ tools/dev/unix-build/Makefile.svn (working copy) > @@ -2165,6 +2165,7 @@ > env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(LIB_PTHREAD_HACK) \ > env MAKEFLAGS= make check PARALLEL=$(PARALLEL) CLEANUP=$(CLEANUP) \ > EXCLUSIVE_WC_LOCKS=$(EXCLUSIVE_WC_LOCKS) \ > + THREADED=$(THREADED) \ > SVN_BIN_DIR=$(SVN_PREFIX)/bin \ > MEMCACHED_SERVER=$(MEMCACHED_SERVER) $1 FS_TYPE=$$fs; \ > for log in tests.log fails.log; do \ > > (If it works for you, feel free to commit it, but note the comment at the top > of the file.)
Daniel, as you suggested previously (w/patch above), I added "THREADED=$(THREADED)" to pass-through THREADED from stsp's Makefile.svn to Subversion's Makefile (which in turn passes it to svnserveautocheck.sh, which then invokes svnserve with -T). I think that's the correct behavior and it should be committed. Hopefully it will help us get better test coverage with and without threading. (I'll commit it a little later today.) Regarding the one test failure I had (autoprop_tests.py 7 with [svn x bdb]), I've had two more since, both with bdb. These are intermittent database errors and occur in varying places. (All fsfs tests have passed every time.) Before investigating too much further, I see that Makefile.svn is downloading an antique bdb 4.7.25. From the Subversion 1.13.0-rc1 signing emails [1], I see that Brane runs his tests with the newest, 18.1.32. So I'll try that and see if the failures go away (assuming I succeed to actually build it -- that's a big major version jump). [1] https://s.apache.org/q75t8 Just for completeness (because I know I'll lose the logs later), this is a list of the bdb test failures I've had thus far: * autoprop_tests.py 7 with [svn x bdb] (mentioned previously) * prop_tests.py 3 with [local x bdb] * merge_tree_conflict_tests.py 3 with [svn x bdb] Details of the latter two are below: ********************************************************************** [[[ Begin test: local x bdb ... [098/123] prop_tests.py..................................................FAILURE ... At least one test FAILED, checking /home/nate/ramdrive/svndev/svn-trunk/tests.log FAIL: prop_tests.py 3: receive properties via update Summary of test results: 2496 tests PASSED 157 tests SKIPPED 94 tests XFAILED (17 WORK-IN-PROGRESS) 1 test FAILED Python version: 3.7.5. SUMMARY: Some tests failed ]]] >From fails.log.svn-check-local-bdb: [[[ W: * Dumped revision 0. subversion/svnadmin/svnadmin.c:1475, subversion/libsvn_repos/dump.c:2175, subversion/libsvn_delta/path_driver.c:190, subversion/libsvn_delta/path_driver.c:328, subversion/libsvn_repos/replay.c:597, subversion/libsvn_repos/dump.c:1714, subversion/libsvn_repos/dump.c:1538, subversion/libsvn_subr/stream.c:194, subversion/libsvn_fs_base/reps-strings.c:981, subversion/libsvn_fs_base/reps-strings.c:873, subversion/libsvn_fs_base/reps-strings.c:477, subversion/libsvn_fs_base/bdb/strings-table.c:208, subversion/libsvn_fs_base/bdb/strings-table.c:96, subversion/libsvn_fs_base/bdb/bdb-err.c:85, subversion/libsvn_fs_base/bdb/bdb-err.c:79: (apr_err=SVN_ERR_FS_BERKELEY_DB) svnadmin: E160029: Berkeley DB error for filesystem 'svn-test-work/local_tmp/repos/db' while creating cursor for reading a string: DB_RUNRECOVERY: Fatal error, run database recovery subversion/libsvn_fs_base/bdb/env.c:230: (apr_err=SVN_ERR_FS_BERKELEY_DB) svnadmin: E160029: bdb: PANIC: fatal region error detected; run recovery W: CMD: /home/nate/ramdrive/svndev/prefix/svn-trunk/bin/svnadmin dump svn-test-work/local_tmp/repos terminated by signal 6 W: CWD: /home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline W: EXCEPTION: SVNProcessTerminatedBySignal Traceback (most recent call last): File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 1931, in run rc = self.pred.run(sandbox) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/testcase.py", line 178, in run result = self.func(sandbox) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/prop_tests.py", line 147, in update_props sbox.build() File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/sandbox.py", line 164, in build minor_version, tree) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/actions.py", line 1994, in make_repo_and_wc guarantee_greek_repository(sbox.repo_dir, minor_version) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/actions.py", line 193, in guarantee_greek_repository _guarantee_repos(path, main.pristine_greek_repos_dir, minor_version) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/actions.py", line 178, in _guarantee_repos failed = main.copy_repos(repos_dir, path, 1, 1, minor_version) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 1246, in copy_repos dump_stdout, dump_stderr, dump_exit_code = wait_on_pipe(dump_kid, True) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 557, in wait_on_pipe raise SVNProcessTerminatedBySignal svntest.main.SVNProcessTerminatedBySignal FAIL: prop_tests.py 3: receive properties via update ]]] ********************************************************************** [[[ Begin test: svn x bdb ... [091/123] merge_tree_conflict_tests.py...................................FAILURE ... At least one test FAILED, checking /home/nate/ramdrive/svndev/svn-trunk/tests.log FAIL: merge_tree_conflict_tests.py 3: merge on deleted directory in target Summary of test results: 2531 tests PASSED 119 tests SKIPPED 97 tests XFAILED (17 WORK-IN-PROGRESS) 1 test FAILED Python version: 3.7.5. SUMMARY: Some tests failed ]]] >From fails.log.svn-check-svn-bdb: [[[ W: * Dumped revision 0. subversion/svnadmin/svnadmin.c:1475, subversion/libsvn_repos/dump.c:2175, subversion/libsvn_delta/path_driver.c:190, subversion/libsvn_delta/path_driver.c:328, subversion/libsvn_repos/replay.c:534, subversion/libsvn_fs/fs-loader.c:1223, subversion/libsvn_fs_base/tree.c:1193, subversion/libsvn_fs_base/tree.c:1165, subversion/libsvn_fs_base/tree.c:1026, subversion/libsvn_fs_base/trail.c:218, subversion/libsvn_fs_base/bdb/bdb-err.c:85, subversion/libsvn_fs_base/bdb/bdb-err.c:79: (apr_err=SVN_ERR_FS_BERKELEY_DB) svnadmin: E160029: Berkeley DB error for filesystem 'svn-test-work/local_tmp/repos/db' while checkpointing after Berkeley DB transaction: DB_RUNRECOVERY: Fatal error, run database recovery subversion/libsvn_fs_base/bdb/env.c:230: (apr_err=SVN_ERR_FS_BERKELEY_DB) svnadmin: E160029: bdb: PANIC: fatal region error detected; run recovery W: CMD: /home/nate/ramdrive/svndev/prefix/svn-trunk/bin/svnadmin dump svn-test-work/local_tmp/repos terminated by signal 6 W: CWD: /home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline W: EXCEPTION: SVNProcessTerminatedBySignal Traceback (most recent call last): File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 1931, in run rc = self.pred.run(sandbox) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/testcase.py", line 258, in run return self._delegate.run(sandbox) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/testcase.py", line 178, in run result = self.func(sandbox) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py", line 266, in merge_tree_deleted_in_target sbox.build() File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/sandbox.py", line 164, in build minor_version, tree) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/actions.py", line 1994, in make_repo_and_wc guarantee_greek_repository(sbox.repo_dir, minor_version) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/actions.py", line 193, in guarantee_greek_repository _guarantee_repos(path, main.pristine_greek_repos_dir, minor_version) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/actions.py", line 178, in _guarantee_repos failed = main.copy_repos(repos_dir, path, 1, 1, minor_version) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 1246, in copy_repos dump_stdout, dump_stderr, dump_exit_code = wait_on_pipe(dump_kid, True) File "/home/nate/ramdrive/svndev/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 557, in wait_on_pipe raise SVNProcessTerminatedBySignal svntest.main.SVNProcessTerminatedBySignal FAIL: merge_tree_conflict_tests.py 3: merge on deleted directory in target ]]] ********************************************************************** Happy New Year, Nathan