[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

neon pool problem causing buildbot fail

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Mon, 23 Apr 2012 17:26:24 +0100

The openbsd buildbot failed:

http://ci.apache.org/builders/bb-openbsd/builds/1139

like this:

tree_conflicts_tests-23 is failing when importing a file that

2012-04-22 16:55:49 [WARNING] subversion/svn/import-cmd.c:127: (apr_err=2)
subversion/libsvn_client/commit.c:971: (apr_err=2)
subversion/libsvn_client/commit.c:971: (apr_err=2)
subversion/libsvn_client/commit.c:631: (apr_err=2)
subversion/libsvn_subr/io.c:2425: (apr_err=2)
subversion/libsvn_subr/io.c:3406: (apr_err=2)
svn: E000002: Can't stat '/home/buildslave16/slave16/bb-openbsd/build/subversion/tests/cmdline/svn-test-work/working_copies/tree_conflict_tests-23/A/foo': No such file or directory

2012-04-22 16:55:49 [WARNING] CMD: /home/buildslave16/slave16/bb-openbsd/build/subversion/svn/svn import -m 'File '\''/home/buildslave16/slave16/bb-openbsd/svn-trunk/subversion/tests/cmdline/tree_conflict_tests.py'\'', line 1221, in actual_only_node_behaviour' svn-test-work/working_copies/tree_conflict_tests-23/A/foo http://localhost:8081/svn-test-work/repositories/tree_conflict_tests-23/foo_imported --config-dir /home/buildslave16/slave16/bb-openbsd/build/subversion/tests/cmdline/svn-test-work/local_tmp/config --password rayjandom --no-auth-cache --username jrandom terminated by signal 11
2012-04-22 16:55:49 [WARNING] CWD: /home/buildslave16/slave16/bb-openbsd/build/subversion/tests/cmdline
2012-04-22 16:55:49 [WARNING] EXCEPTION: SVNProcessTerminatedBySignal
Traceback (most recent call last):
  File "/home/buildslave16/slave16/bb-openbsd/svn-trunk/subversion/tests/cmdline/svntest/main.py", line 1332, in run
    rc = self.pred.run(sandbox)
  File "/home/buildslave16/slave16/bb-openbsd/svn-trunk/subversion/tests/cmdline/svntest/testcase.py", line 176, in run
    return self.func(sandbox)
  File "/home/buildslave16/slave16/bb-openbsd/svn-trunk/subversion/tests/cmdline/tree_conflict_tests.py", line 1222, in actual_only_node_behaviour
    foo_path, sbox.repo_url + '/foo_imported')

The import is expected to fail with "Can't stat" but it appears that the
client is crashing when exiting. On my Linux box I'm seeing valgrind
errors introduced by r1327801:

==19213== Invalid read of size 8
==19213== at 0x60B4D86: ??? (in /usr/lib/libneon.so.27.2.3)
==19213== by 0x60BEBBC: ne_decompress_destroy (in /usr/lib/libneon.so.27.2.3)
==19213== by 0x70E7EF0: compressed_body_reader_cleanup (util.c:438)
==19213== by 0x5E8D46A: run_cleanups (in /usr/lib/libapr-1.so.0.4.2)
==19213== by 0x5E8C338: apr_pool_destroy (in /usr/lib/libapr-1.so.0.4.2)
==19213== by 0x5E8C31B: apr_pool_destroy (in /usr/lib/libapr-1.so.0.4.2)
==19213== by 0x5E8C31B: apr_pool_destroy (in /usr/lib/libapr-1.so.0.4.2)
==19213== by 0x5E8D844: apr_pool_destroy_debug (in /usr/lib/libapr-1.so.0.4.2)
==19213== by 0x417095: main (main.c:2728)
==19213== Address 0xb04da58 is 232 bytes inside a block of size 888 free'd
==19213== at 0x4C240FD: free (vg_replace_malloc.c:366)
==19213== by 0x70E3F8B: cleanup_session (session.c:63)
==19213== by 0x5E8D46A: run_cleanups (in /usr/lib/libapr-1.so.0.4.2)
==19213== by 0x5E8C338: apr_pool_destroy (in /usr/lib/libapr-1.so.0.4.2)
==19213== by 0x5E8C31B: apr_pool_destroy (in /usr/lib/libapr-1.so.0.4.2)
==19213== by 0x5E8D844: apr_pool_destroy_debug (in /usr/lib/libapr-1.so.0.4.2)
==19213== by 0x417095: main (main.c:2728)

I can fix the valgrind errors with this patch:

Index: subversion/libsvn_client/commit.c
===================================================================
--- subversion/libsvn_client/commit.c (revision 1327801)
+++ subversion/libsvn_client/commit.c (working copy)
@@ -782,7 +782,7 @@
 
   SVN_ERR(svn_client__open_ra_session_internal(&ra_session, NULL, url, NULL,
                                                NULL, FALSE, TRUE, ctx,
- scratch_pool));
+ iterpool));
 
   /* Figure out all the path components we need to create just to have
      a place to stick our imported tree. */
@@ -790,8 +790,6 @@
                             iterpool));
   while (kind == svn_node_none)
     {
- svn_pool_clear(iterpool);
-
       svn_uri_split(&temp, &dir, url, scratch_pool);
       APR_ARRAY_PUSH(new_entries, const char *) = dir;
       url = temp;

I'm not sure exactly how the pool management is supposed to work here.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com
Received on 2012-04-23 18:27:02 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.