On Tue, Nov 26, 2013 at 12:42 PM, Branko Čibej <[email protected]> wrote:

>  On 25.11.2013 17:32, [email protected] wrote:
>
> Author: stefan2
> Date: Mon Nov 25 16:32:52 2013
> New Revision: 1545338
>
> URL: http://svn.apache.org/r1545338
> Log:
> * subversion/tests/libsvn_client/client-test.c
>   subversion/tests/libsvn_fs/fs-test.c
>   subversion/tests/libsvn_fs/locks-test.c
>   (test_funcs): Move particularly expensive tests to the top of the
>                 list to maximize parallism.  None of these test lists
>                 imply a specific "simply-to-complex" ordering.
>
>
> You have a pool cleanup bug in the --parallel C tests mode. After these
> last two commits:
>

Hm. I don't see these problems here nor on our Windows
buildbot (at least svn-windows-local runs in parallel mode).
Valgrind did not show any problem either.

$ make check PARALLEL=1
> ...
> At least one test FAILED, checking /Volumes/build-trunk-amalgamated/tests.log
> FAIL:  client-test: Unknown test failure; see tests.log.
> FAIL:  crypto-test: Unknown test failure; see tests.log.
> FAIL:  db-test: Unknown test failure; see tests.log.
> FAIL:  diff-diff3-test: Unknown test failure; see tests.log.
> FAIL:  entries-compat-test: Unknown test failure; see tests.log.
> FAIL:  fs-fs-pack-test: Unknown test failure; see tests.log.
> FAIL:  fs-test: Unknown test failure; see tests.log.
> FAIL:  fs-x-pack-test: Unknown test failure; see tests.log.
> FAIL:  io-test: Unknown test failure; see tests.log.
> FAIL:  locks-test: Unknown test failure; see tests.log.
> FAIL:  op-depth-test: Unknown test failure; see tests.log.
> FAIL:  pristine-store-test: Unknown test failure; see tests.log.
> FAIL:  repos-test: Unknown test failure; see tests.log.
> FAIL:  string-table-test: Unknown test failure; see tests.log.
> FAIL:  translate-test: Unknown test failure; see tests.log.
> FAIL:  wc-test: Unknown test failure; see tests.log.
> FAIL:  changes-test: Unknown test failure; see tests.log.
> FAIL:  fs-base-test: Unknown test failure; see tests.log.
> FAIL:  strings-reps-test: Unknown test failure; see tests.log.
>
> So, all threaded tests fail, i.e. any fix should be reproducible
on your system.

Here's the example of what tests.log has to say about these failures:
>
> changes-test(16390,0x7fff7d921180) malloc: *** error for object 
> 0x7fc251011800: pointer being freed was not allocated
> *** set a breakpoint in malloc_error_break to debug
>
> And this is what the debugger says:
>
> $ glibtool --mode=execute lldb -- subversion/tests/libsvn_clit-test --parallel
> Current executable set to 'subversion/tests/libsvn_client/.libs/client-test' 
> (x86_64).
> (lldb) break set -n malloc_error_break
> Breakpoint 1: where = libsystem_c.dylib`malloc_error_break, address = 
> 0x000000000002c584
> (lldb) r
> Process 16518 launched: 
> '/Users/brane/src/svn/build/trunk-amalgamated/subversion/tests/libsvn_client/.libs/client-test'
>  (x86_64)
> PASS:  client-test 1: test svn_client__elide_mergeinfo_catalog
> PASS:  client-test 2: test svn_client_args_to_target_array
> PASS:  client-test 5: test svn_client_patch
> PASS:  client-test 4: test foreign repository copy
> PASS:  client-test 6: test a crash in svn_client_copy5
> PASS:  client-test 3: test svn_wc_add3 scenarios
> PASS:  client-test 7: test youngest_common_ancestor
> client-test(16518,0x100d04000) malloc: *** error for object 0x101800000: 
> pointer being freed was not allocated
> *** set a breakpoint in malloc_error_break to debug
> Process 16518 stopped
> * thread #2: tid = 0x5aaea9, 0x00000001008c60a0 
> libapr-1.0.dylib`apr_pool_destroy + 143, stop reason = EXC_BAD_ACCESS 
> (code=1, address=0x1010a1a0)
>     frame #0: 0x00000001008c60a0 libapr-1.0.dylib`apr_pool_destroy + 143
> libapr-1.0.dylib`apr_pool_destroy + 143:
> -> 0x1008c60a0:  movq   $0, (%rax)
>    0x1008c60a7:  cmpq   %rbx, 24(%r14)
>    0x1008c60ab:  jne    0x1008c60b5               ; apr_pool_destroy + 164
>    0x1008c60ad:  movq   $0, 16(%r14)
>   thread #4: tid = 0x5aaeab, 0x00000001008c60a0 
> libapr-1.0.dylib`apr_pool_destroy + 143, stop reason = EXC_BAD_ACCESS 
> (code=EXC_I386_GPFLT)
>     frame #0: 0x00000001008c60a0 libapr-1.0.dylib`apr_pool_destroy + 143
> libapr-1.0.dylib`apr_pool_destroy + 143:
> -> 0x1008c60a0:  movq   $0, (%rax)
>    0x1008c60a7:  cmpq   %rbx, 24(%r14)
>    0x1008c60ab:  jne    0x1008c60b5               ; apr_pool_destroy + 164
>    0x1008c60ad:  movq   $0, 16(%r14)
> (lldb) bt
> * thread #2: tid = 0x5aaea9, 0x00000001008c60a0 
> libapr-1.0.dylib`apr_pool_destroy + 143, stop reason = EXC_BAD_ACCESS 
> (code=1, address=0x1010a1a0)
>     frame #0: 0x00000001008c60a0 libapr-1.0.dylib`apr_pool_destroy + 143
>     frame #1: 0x00000001008cf875 libapr-1.0.dylib`apr_thread_exit + 15
>     frame #2: 0x00000001008a5256 
> libaprutil-1.0.dylib`___lldb_unnamed_function66$$libaprutil-1.0.dylib + 842
>     frame #3: 0x00007fff8d932772 libsystem_c.dylib`_pthread_start + 327
>     frame #4: 0x00007fff8d91f1a1 libsystem_c.dylib`thread_start + 13
>
> Hm. So, this happens after all tests completed. I tried some
fix in r1545634 but Philip just told me that it did not help.

-- Stefan^2.

Reply via email to