You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Paul Burba <pt...@gmail.com> on 2012/10/11 20:02:02 UTC

[RFC] auto-props-sdc Branch : Ready for Review

With the inheritable properties work complete and merged back to
trunk[1] I started work on a second branch to use inheritable
properties as an alternative solution for server dictated
configuration[2].  My initial goal was a subversion reserved property
that would supplement the traditional config file auto-props.  The
brief wiki at http://wiki.apache.org/subversion/InheritableAutoProps
describes the design.

While I hope to implement a similar reserved property the supplements
the global-ignores configuration, the existing work on auto-props is
self-contained and ready for review.  The branch can be found at
^/subversion/branches/auto-props-sdc

As always, any feedback, review, questions, etc. are appreciated.

[1] See http://svn.haxx.se/dev/archive-2012-09/0177.shtml

[2] See http://wiki.apache.org/subversion/ServerDictatedConfiguration
and http://svn.haxx.se/dev/archive-2012-02/0207.shtml

-- 
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Philip Martin <ph...@wandisco.com>.
Paul Burba <pt...@gmail.com> writes:

> Is import_tests.py 5: 'import should honor the eol-style property'
> also failing for you as it does on the buildbot?

Yes.

-- 
Join us this October at Subversion Live 2012
http://www.wandisco.com/svn-live-2012

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Paul Burba <pt...@gmail.com>.
On Fri, Oct 26, 2012 at 10:33 AM, Philip Martin
<ph...@wandisco.com> wrote:
> Paul Burba <pt...@gmail.com> writes:
>
>>> It's been almost two weeks with no objections, so I will be merging
>>> this branch back to trunk today.
>>
>> Done, r1401908.
>
> This causes autoprop_tests.py to fail on my Linux box and the centos
> buildbot:

Hi Philip,

Is import_tests.py 5: 'import should honor the eol-style property'
also failing for you as it does on the buildbot?

-- 
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba

> http://ci.apache.org/builders/svn-x64-centos-gcc/builds/7466
>
> I see "svn add" getting a SEGV.
>
> W: CMD: /home/pm/sw/subversion/obj/subversion/svn/svn add --config-dir /home/pm/
> sw/subversion/obj/subversion/tests/cmdline/svn-test-work/local_tmp/autoprops_con
> fig_autoprop_tests-2 svn-test-work/working_copies/autoprop_tests-2/escapetest --
> password rayjandom --no-auth-cache --username jrandom terminated by signal 11
> W: CWD: /home/pm/sw/subversion/obj/subversion/tests/cmdline
> W: EXCEPTION: SVNProcessTerminatedBySignal
> Traceback (most recent call last):
>   File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
> ne 1408, in run
>     rc = self.pred.run(sandbox)
>   File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/testcase.py"
> , line 176, in run
>     return self.func(sandbox)
>   File "/home/pm/sw/subversion/src/subversion/tests/cmdline/autoprop_tests.py",
> line 210, in autoprops_add_yes_none
>     autoprops_test(sbox, 'add', 1, 0, '')
>   File "/home/pm/sw/subversion/src/subversion/tests/cmdline/autoprop_tests.py",
> line 160, in autoprops_test
>     svntest.main.run_svn(None, *tmp_params)
>   File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
> ne 663, in run_svn
>     *(_with_auth(_with_config_dir(varargs))))
>   File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
> ne 353, in run_command
>     None, *varargs)
>   File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
> ne 507, in run_command_stdin
>     *varargs)
>   File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
> ne 478, in spawn_process
>     stdout_lines, stderr_lines, exit_code = wait_on_pipe(kid, binary_mode)
>   File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
> ne 447, in wait_on_pipe
>     raise SVNProcessTerminatedBySignal
> SVNProcessTerminatedBySignal
> FAIL:  autoprop_tests.py 2: add: config=yes, commandline=none
>
>
> --
> Join us this October at Subversion Live 2012
> http://www.wandisco.com/svn-live-2012

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Paul Burba <pt...@gmail.com>.
On Fri, Oct 26, 2012 at 11:21 AM, Philip Martin
<ph...@wandisco.com> wrote:
> Philip Martin <ph...@wandisco.com> writes:
>
>> ==15116== Conditional jump or move depends on uninitialised value(s)
>> ==15116==    at 0x4E3A6DF: svn_client__get_paths_auto_props (add.c:244)
>> ==15116==    by 0x4E3A914: add_file (add.c:300)
>> ==15116==    by 0x4E3C464: add (add.c:1031)
>> ==15116==    by 0x4E3C9C4: svn_client_add4 (add.c:1156)
>> ==15116==    by 0x40787B: svn_cl__add (add-cmd.c:77)
>> ==15116==    by 0x41A166: sub_main (main.c:2735)
>> ==15116==    by 0x41A372: main (main.c:2790)
>
> That one is fixed by
>
> Index: ../src/subversion/libsvn_client/add.c
> ===================================================================
> --- ../src/subversion/libsvn_client/add.c       (revision 1401908)
> +++ ../src/subversion/libsvn_client/add.c       (working copy)
> @@ -187,7 +187,7 @@
>                                   apr_pool_t *scratch_pool)
>  {
>    apr_hash_index_t *hi;
> -  svn_boolean_t have_executable;
> +  svn_boolean_t have_executable = FALSE;

Note that Mike already fixed that yesterday in r1402313.

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by "C. Michael Pilato" <cm...@collab.net>.
On 10/26/2012 11:34 AM, Philip Martin wrote:
> Philip Martin <ph...@wandisco.com> writes:
> 
>>> ==15116== Source and destination overlap in memcpy(0x9e3f078, 0x98aca80, 160094512)
>>> ==15116==    at 0x4C25F6A: memcpy (mc_replace_strmem.c:497)
>>> ==15116==    by 0x5A25229: svn_string_ncreate (string.c:165)
>>> ==15116==    by 0x5A2541B: svn_string_dup (string.c:224)
>>> ==15116==    by 0x5A1650C: svn_prop_diffs (properties.c:225)
>>> ==15116==    by 0x513DE67: set_props_txn (wc_db.c:5139)
>>> ==15116==    by 0x515F337: run_txn (wc_db_util.c:188)
>>> ==15116==    by 0x5A1F9FA: svn_sqlite__with_lock (sqlite.c:1073)
>>> ==15116==    by 0x515F3AD: svn_wc__db_with_txn (wc_db_util.c:210)
>>> ==15116==    by 0x513E17A: svn_wc__db_op_set_props (wc_db.c:5189)
>>> ==15116==    by 0x510DB3C: do_propset (props.c:1941)
>>> ==15116==    by 0x510E15D: svn_wc_prop_set4 (props.c:2073)
>>> ==15116==    by 0x4E3AAB2: add_file (add.c:327)
>>> ==15116== 
>>
>> I assume this is the problem and that copying overlapping memory is
>> causing corruption to the pools and/or the malloc structures:
> 
> This makes the test PASS:
> 
> Index: ../src/subversion/libsvn_client/add.c
> ===================================================================
> --- ../src/subversion/libsvn_client/add.c       (revision 1401908)
> +++ ../src/subversion/libsvn_client/add.c       (working copy)
> @@ -146,8 +146,8 @@
>                             const char *filename,
>                             const char *pattern,
>                             apr_hash_t *propvals,
> -                           apr_pool_t *scratch_pool,
> -                           apr_pool_t *result_pool)
> +                           apr_pool_t *result_pool,
> +                           apr_pool_t *scratch_pool)
>  {
>    apr_hash_index_t *hi;
>  
> @@ -163,7 +163,7 @@
>        const char *propname = svn__apr_hash_index_key(hi);
>        const char *propval = svn__apr_hash_index_val(hi);
>        svn_string_t *propval_str = apr_palloc(result_pool,
> -                                             sizeof(*propval));
> +                                             sizeof(*propval_str));
>        propval_str->data = propval;
>        propval_str->len = strlen(propval);
>  

Nice.  I don't wonder, though, why we pass "result_pool" at all.  Unless we
are specifically allowing for a scenario where the lifetime of the items
*in* the hash differs from that of the hash itself, I would drop the
"result_pool" parameter and use "apr_hash_pool_get(properties)" (or
whatever) instead within this helper function's body.

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development


Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Paul Burba <pt...@gmail.com>.
On Fri, Oct 26, 2012 at 11:34 AM, Philip Martin
<ph...@wandisco.com> wrote:
> Philip Martin <ph...@wandisco.com> writes:
>
>>> ==15116== Source and destination overlap in memcpy(0x9e3f078, 0x98aca80, 160094512)
>>> ==15116==    at 0x4C25F6A: memcpy (mc_replace_strmem.c:497)
>>> ==15116==    by 0x5A25229: svn_string_ncreate (string.c:165)
>>> ==15116==    by 0x5A2541B: svn_string_dup (string.c:224)
>>> ==15116==    by 0x5A1650C: svn_prop_diffs (properties.c:225)
>>> ==15116==    by 0x513DE67: set_props_txn (wc_db.c:5139)
>>> ==15116==    by 0x515F337: run_txn (wc_db_util.c:188)
>>> ==15116==    by 0x5A1F9FA: svn_sqlite__with_lock (sqlite.c:1073)
>>> ==15116==    by 0x515F3AD: svn_wc__db_with_txn (wc_db_util.c:210)
>>> ==15116==    by 0x513E17A: svn_wc__db_op_set_props (wc_db.c:5189)
>>> ==15116==    by 0x510DB3C: do_propset (props.c:1941)
>>> ==15116==    by 0x510E15D: svn_wc_prop_set4 (props.c:2073)
>>> ==15116==    by 0x4E3AAB2: add_file (add.c:327)
>>> ==15116==
>>
>> I assume this is the problem and that copying overlapping memory is
>> causing corruption to the pools and/or the malloc structures:
>
> This makes the test PASS:
>
> Index: ../src/subversion/libsvn_client/add.c
> ===================================================================
> --- ../src/subversion/libsvn_client/add.c       (revision 1401908)
> +++ ../src/subversion/libsvn_client/add.c       (working copy)
> @@ -146,8 +146,8 @@
>                             const char *filename,
>                             const char *pattern,
>                             apr_hash_t *propvals,
> -                           apr_pool_t *scratch_pool,
> -                           apr_pool_t *result_pool)
> +                           apr_pool_t *result_pool,
> +                           apr_pool_t *scratch_pool)

Gah, thanks for finding that Philip.  I owe you a drink of your choice.

>  {
>    apr_hash_index_t *hi;
>
> @@ -163,7 +163,7 @@
>        const char *propname = svn__apr_hash_index_key(hi);
>        const char *propval = svn__apr_hash_index_val(hi);
>        svn_string_t *propval_str = apr_palloc(result_pool,
> -                                             sizeof(*propval));
> +                                             sizeof(*propval_str));
>        propval_str->data = propval;
>        propval_str->len = strlen(propval);
>
> @@ -187,7 +187,7 @@
>                                   apr_pool_t *scratch_pool)
>  {
>    apr_hash_index_t *hi;
> -  svn_boolean_t have_executable;
> +  svn_boolean_t have_executable = FALSE;
>
>    *properties = apr_hash_make(result_pool);
>    *mimetype = NULL;
>
>
> --
> Join us this October at Subversion Live 2012
> http://www.wandisco.com/svn-live-2012



-- 
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Philip Martin <ph...@wandisco.com>.
Philip Martin <ph...@wandisco.com> writes:

>> ==15116== Source and destination overlap in memcpy(0x9e3f078, 0x98aca80, 160094512)
>> ==15116==    at 0x4C25F6A: memcpy (mc_replace_strmem.c:497)
>> ==15116==    by 0x5A25229: svn_string_ncreate (string.c:165)
>> ==15116==    by 0x5A2541B: svn_string_dup (string.c:224)
>> ==15116==    by 0x5A1650C: svn_prop_diffs (properties.c:225)
>> ==15116==    by 0x513DE67: set_props_txn (wc_db.c:5139)
>> ==15116==    by 0x515F337: run_txn (wc_db_util.c:188)
>> ==15116==    by 0x5A1F9FA: svn_sqlite__with_lock (sqlite.c:1073)
>> ==15116==    by 0x515F3AD: svn_wc__db_with_txn (wc_db_util.c:210)
>> ==15116==    by 0x513E17A: svn_wc__db_op_set_props (wc_db.c:5189)
>> ==15116==    by 0x510DB3C: do_propset (props.c:1941)
>> ==15116==    by 0x510E15D: svn_wc_prop_set4 (props.c:2073)
>> ==15116==    by 0x4E3AAB2: add_file (add.c:327)
>> ==15116== 
>
> I assume this is the problem and that copying overlapping memory is
> causing corruption to the pools and/or the malloc structures:

This makes the test PASS:

Index: ../src/subversion/libsvn_client/add.c
===================================================================
--- ../src/subversion/libsvn_client/add.c       (revision 1401908)
+++ ../src/subversion/libsvn_client/add.c       (working copy)
@@ -146,8 +146,8 @@
                            const char *filename,
                            const char *pattern,
                            apr_hash_t *propvals,
-                           apr_pool_t *scratch_pool,
-                           apr_pool_t *result_pool)
+                           apr_pool_t *result_pool,
+                           apr_pool_t *scratch_pool)
 {
   apr_hash_index_t *hi;
 
@@ -163,7 +163,7 @@
       const char *propname = svn__apr_hash_index_key(hi);
       const char *propval = svn__apr_hash_index_val(hi);
       svn_string_t *propval_str = apr_palloc(result_pool,
-                                             sizeof(*propval));
+                                             sizeof(*propval_str));
       propval_str->data = propval;
       propval_str->len = strlen(propval);
 
@@ -187,7 +187,7 @@
                                  apr_pool_t *scratch_pool)
 {
   apr_hash_index_t *hi;
-  svn_boolean_t have_executable;
+  svn_boolean_t have_executable = FALSE;
 
   *properties = apr_hash_make(result_pool);
   *mimetype = NULL;


-- 
Join us this October at Subversion Live 2012
http://www.wandisco.com/svn-live-2012

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Philip Martin <ph...@wandisco.com>.
Philip Martin <ph...@wandisco.com> writes:

> ==15116== Conditional jump or move depends on uninitialised value(s)
> ==15116==    at 0x4E3A6DF: svn_client__get_paths_auto_props (add.c:244)
> ==15116==    by 0x4E3A914: add_file (add.c:300)
> ==15116==    by 0x4E3C464: add (add.c:1031)
> ==15116==    by 0x4E3C9C4: svn_client_add4 (add.c:1156)
> ==15116==    by 0x40787B: svn_cl__add (add-cmd.c:77)
> ==15116==    by 0x41A166: sub_main (main.c:2735)
> ==15116==    by 0x41A372: main (main.c:2790)

That one is fixed by

Index: ../src/subversion/libsvn_client/add.c
===================================================================
--- ../src/subversion/libsvn_client/add.c       (revision 1401908)
+++ ../src/subversion/libsvn_client/add.c       (working copy)
@@ -187,7 +187,7 @@
                                  apr_pool_t *scratch_pool)
 {
   apr_hash_index_t *hi;
-  svn_boolean_t have_executable;
+  svn_boolean_t have_executable = FALSE;
 
   *properties = apr_hash_make(result_pool);
   *mimetype = NULL;

but it doesn't solve the problem.

> ==15116== 
> ==15116== Source and destination overlap in memcpy(0x9e3f078, 0x98aca80, 160094512)
> ==15116==    at 0x4C25F6A: memcpy (mc_replace_strmem.c:497)
> ==15116==    by 0x5A25229: svn_string_ncreate (string.c:165)
> ==15116==    by 0x5A2541B: svn_string_dup (string.c:224)
> ==15116==    by 0x5A1650C: svn_prop_diffs (properties.c:225)
> ==15116==    by 0x513DE67: set_props_txn (wc_db.c:5139)
> ==15116==    by 0x515F337: run_txn (wc_db_util.c:188)
> ==15116==    by 0x5A1F9FA: svn_sqlite__with_lock (sqlite.c:1073)
> ==15116==    by 0x515F3AD: svn_wc__db_with_txn (wc_db_util.c:210)
> ==15116==    by 0x513E17A: svn_wc__db_op_set_props (wc_db.c:5189)
> ==15116==    by 0x510DB3C: do_propset (props.c:1941)
> ==15116==    by 0x510E15D: svn_wc_prop_set4 (props.c:2073)
> ==15116==    by 0x4E3AAB2: add_file (add.c:327)
> ==15116== 

I assume this is the problem and that copying overlapping memory is
causing corruption to the pools and/or the malloc structures:

#0  0x0000000004c25f6a in _vgrZU_libcZdsoZa_memcpy (dst=0x9e3f078, 
    src=0x98aca80, len=160094512) at mc_replace_strmem.c:497
#1  0x0000000005a2522a in svn_string_ncreate (bytes=0x98aca80 ";;val", 
    size=160094512, pool=0x98abb98)
    at ../src/subversion/libsvn_subr/string.c:165
#2  0x0000000005a2541c in svn_string_dup (original_string=0x98ad8a8, 
    pool=0x98abb98) at ../src/subversion/libsvn_subr/string.c:224
#3  0x0000000005a1650d in svn_prop_diffs (propdiffs=0x7fefff9e8, 
    target_props=0x98ae828, source_props=0x98ae9e8, pool=0x98abb98)
    at ../src/subversion/libsvn_subr/properties.c:225
#4  0x000000000513de68 in set_props_txn (baton=0x7fefffbb0, wcroot=0x98c79e0, 
    local_relpath=0x98ae9d8 "escapetest", scratch_pool=0x98abb98)
    at ../src/subversion/libsvn_wc/wc_db.c:5139
#5  0x000000000515f338 in run_txn (baton=0x7fefffb40, db=0x98c7258, 
    scratch_pool=0x98abb98) at ../src/subversion/libsvn_wc/wc_db_util.c:188
#6  0x0000000005a1f9fb in svn_sqlite__with_lock (db=0x98c7258, 
    cb_func=0x515f2ef <run_txn>, cb_baton=0x7fefffb40, scratch_pool=0x98abb98)
    at ../src/subversion/libsvn_subr/sqlite.c:1073
#7  0x000000000515f3ae in svn_wc__db_with_txn (wcroot=0x98c79e0, 
    local_relpath=0x98ae9d8 "escapetest", cb_func=0x513ddb5 <set_props_txn>, 
    cb_baton=0x7fefffbb0, scratch_pool=0x98abb98)
    at ../src/subversion/libsvn_wc/wc_db_util.c:210
#8  0x000000000513e17b in svn_wc__db_op_set_props (db=0x98c6028, 
    local_abspath=0x98abe50 "/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/working_copies/autoprop_tests-2/escapetest", props=0x98ae828, 
    clear_recorded_info=0, conflict=0x0, work_items=0x0, 
    scratch_pool=0x98abb98) at ../src/subversion/libsvn_wc/wc_db.c:5189
#9  0x000000000510db3d in do_propset (db=0x98c6028, 
    local_abspath=0x98abe50 "/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/working_copies/autoprop_tests-2/escapetest", 
    kind=svn_node_file, name=0x98acb88 "myval", value=0x98ad8a8, 
    skip_checks=0, notify_func=0, notify_baton=0x0, scratch_pool=0x98abb98)
    at ../src/subversion/libsvn_wc/props.c:1941
#10 0x000000000510e15e in svn_wc_prop_set4 (wc_ctx=0x98c6010, 
    local_abspath=0x98abe50 "/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/working_copies/autoprop_tests-2/escapetest", 
    name=0x98acb88 "myval", value=0x98ad8a8, depth=svn_depth_empty, 
    skip_checks=0, changelist_filter=0x0, cancel_func=0, cancel_baton=0x0, 
    notify_func=0, notify_baton=0x0, scratch_pool=0x98abb98)
    at ../src/subversion/libsvn_wc/props.c:2073
#11 0x0000000004e3aaba in add_file (
    local_abspath=0x98abe50 "/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/working_copies/autoprop_tests-2/escapetest", 
    magic_cookie=0x98ac3f8, autoprops=0x0, ctx=0x98c5f58, pool=0x98abb98)
    at ../src/subversion/libsvn_client/add.c:327

-- 
Join us this October at Subversion Live 2012
http://www.wandisco.com/svn-live-2012

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Philip Martin <ph...@wandisco.com>.
"C. Michael Pilato" <cm...@collab.net> writes:

> On 10/26/2012 10:33 AM, Philip Martin wrote:
>> Paul Burba <pt...@gmail.com> writes:
>> 
>>>> It's been almost two weeks with no objections, so I will be merging
>>>> this branch back to trunk today.
>>>
>>> Done, r1401908.
>> 
>> This causes autoprop_tests.py to fail on my Linux box and the centos
>> buildbot:
>> 
>> http://ci.apache.org/builders/svn-x64-centos-gcc/builds/7466
>> 
>> I see "svn add" getting a SEGV.
>
> Of particular utility would be some indication of where the SEGV occurs, if
> you have time and inclination to determine as much, Philip.  I was unable to
> reproduce the SEGV on my Linux system, and Paul runs Windows.

I'm getting:

$ gdb -arg ../../svn/.libs/lt-svn add --config-dir /home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/local_tmp/autoprops_config_autoprop_tests-2 svn-test-work/working_copies/autoprop_tests-2/escapetest --password rayjandom --no-auth-cache --username jrandom

Program received signal SIGSEGV, Segmentation fault.
memcpy () at ../sysdeps/x86_64/memcpy.S:526
526     ../sysdeps/x86_64/memcpy.S: No such file or directory.
        in ../sysdeps/x86_64/memcpy.S

#0  memcpy () at ../sysdeps/x86_64/memcpy.S:526
#1  0x00007ffff700b22a in svn_string_ncreate (bytes=0x67a1a0 ";;val", 
    size=6795344, pool=0x6792b8) at ../src/subversion/libsvn_subr/string.c:165
#2  0x00007ffff700b41c in svn_string_dup (original_string=0x67afc8, 
    pool=0x6792b8) at ../src/subversion/libsvn_subr/string.c:224
#3  0x00007ffff6ffc50d in svn_prop_diffs (propdiffs=0x7fffffffdac8, 
    target_props=0x67be48, source_props=0x67c008, pool=0x6792b8)
    at ../src/subversion/libsvn_subr/properties.c:225
#4  0x00007ffff7907e68 in set_props_txn (baton=0x7fffffffdc90, 
    wcroot=0x6950d0, local_relpath=0x67bff8 "escapetest", 
    scratch_pool=0x6792b8) at ../src/subversion/libsvn_wc/wc_db.c:5139
#5  0x00007ffff7929338 in run_txn (baton=0x7fffffffdc20, db=0x694948, 
    scratch_pool=0x6792b8) at ../src/subversion/libsvn_wc/wc_db_util.c:188
#6  0x00007ffff70059fb in svn_sqlite__with_lock (db=0x694948, 
    cb_func=0x7ffff79292ef <run_txn>, cb_baton=0x7fffffffdc20, 
    scratch_pool=0x6792b8) at ../src/subversion/libsvn_subr/sqlite.c:1073
#7  0x00007ffff79293ae in svn_wc__db_with_txn (wcroot=0x6950d0, 
    local_relpath=0x67bff8 "escapetest", 
    cb_func=0x7ffff7907db5 <set_props_txn>, cb_baton=0x7fffffffdc90, 
    scratch_pool=0x6792b8) at ../src/subversion/libsvn_wc/wc_db_util.c:210
#8  0x00007ffff790817b in svn_wc__db_op_set_props (db=0x693718, 
    local_abspath=0x679570 "/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/working_copies/autoprop_tests-2/escapetest", props=0x67be48, 
    clear_recorded_info=0, conflict=0x0, work_items=0x0, scratch_pool=0x6792b8)
    at ../src/subversion/libsvn_wc/wc_db.c:5189
#9  0x00007ffff78d7b3d in do_propset (db=0x693718, 
    local_abspath=0x679570 "/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/working_copies/autoprop_tests-2/escapetest", kind=svn_node_file, 
    name=0x67a2a8 "myval", value=0x67afc8, skip_checks=0, notify_func=0, 
    notify_baton=0x0, scratch_pool=0x6792b8)
    at ../src/subversion/libsvn_wc/props.c:1941
#10 0x00007ffff78d815e in svn_wc_prop_set4 (wc_ctx=0x693700, 
    local_abspath=0x679570 "/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/working_copies/autoprop_tests-2/escapetest", 
    name=0x67a2a8 "myval", value=0x67afc8, depth=svn_depth_empty, 
    skip_checks=0, changelist_filter=0x0, cancel_func=0, cancel_baton=0x0, 
    notify_func=0, notify_baton=0x0, scratch_pool=0x6792b8)
    at ../src/subversion/libsvn_wc/props.c:2073
#11 0x00007ffff7b66ab3 in add_file (
    local_abspath=0x679570 "/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/working_copies/autoprop_tests-2/escapetest", 
    magic_cookie=0x679b18, autoprops=0x0, ctx=0x693648, pool=0x6792b8)
    at ../src/subversion/libsvn_client/add.c:327
#12 0x00007ffff7b68465 in add (
    local_abspath=0x679570 "/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/working_copies/autoprop_tests-2/escapetest", 
    depth=svn_depth_infinity, force=0, no_ignore=0, 
    existing_parent_abspath=0x0, ctx=0x693648, scratch_pool=0x6792b8)
    at ../src/subversion/libsvn_client/add.c:1031
#13 0x00007ffff7b689c5 in svn_client_add4 (
    path=0x694850 "svn-test-work/working_copies/autoprop_tests-2/escapetest", 
    depth=svn_depth_infinity, force=0, no_ignore=0, add_parents=0, 
    ctx=0x693648, pool=0x6792b8) at ../src/subversion/libsvn_client/add.c:1156

valgrind reports:

==15116== Conditional jump or move depends on uninitialised value(s)
==15116==    at 0x4E3A6DF: svn_client__get_paths_auto_props (add.c:244)
==15116==    by 0x4E3A914: add_file (add.c:300)
==15116==    by 0x4E3C464: add (add.c:1031)
==15116==    by 0x4E3C9C4: svn_client_add4 (add.c:1156)
==15116==    by 0x40787B: svn_cl__add (add-cmd.c:77)
==15116==    by 0x41A166: sub_main (main.c:2735)
==15116==    by 0x41A372: main (main.c:2790)
==15116== 
==15116== Source and destination overlap in memcpy(0x9e3f078, 0x98aca80, 160094512)
==15116==    at 0x4C25F6A: memcpy (mc_replace_strmem.c:497)
==15116==    by 0x5A25229: svn_string_ncreate (string.c:165)
==15116==    by 0x5A2541B: svn_string_dup (string.c:224)
==15116==    by 0x5A1650C: svn_prop_diffs (properties.c:225)
==15116==    by 0x513DE67: set_props_txn (wc_db.c:5139)
==15116==    by 0x515F337: run_txn (wc_db_util.c:188)
==15116==    by 0x5A1F9FA: svn_sqlite__with_lock (sqlite.c:1073)
==15116==    by 0x515F3AD: svn_wc__db_with_txn (wc_db_util.c:210)
==15116==    by 0x513E17A: svn_wc__db_op_set_props (wc_db.c:5189)
==15116==    by 0x510DB3C: do_propset (props.c:1941)
==15116==    by 0x510E15D: svn_wc_prop_set4 (props.c:2073)
==15116==    by 0x4E3AAB2: add_file (add.c:327)
==15116== 
^Z==15116== Invalid read of size 1
==15116==    at 0x4C25F98: memcpy (mc_replace_strmem.c:497)
==15116==    by 0x5A25229: svn_string_ncreate (string.c:165)
==15116==    by 0x5A2541B: svn_string_dup (string.c:224)
==15116==    by 0x5A1650C: svn_prop_diffs (properties.c:225)
==15116==    by 0x513DE67: set_props_txn (wc_db.c:5139)
==15116==    by 0x515F337: run_txn (wc_db_util.c:188)
==15116==    by 0x5A1F9FA: svn_sqlite__with_lock (sqlite.c:1073)
==15116==    by 0x515F3AD: svn_wc__db_with_txn (wc_db_util.c:210)
==15116==    by 0x513E17A: svn_wc__db_op_set_props (wc_db.c:5189)
==15116==    by 0x510DB3C: do_propset (props.c:1941)
==15116==    by 0x510E15D: svn_wc_prop_set4 (props.c:2073)
==15116==    by 0x4E3AAB2: add_file (add.c:327)
=

-- 
Join us this October at Subversion Live 2012
http://www.wandisco.com/svn-live-2012

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Paul Burba <pt...@gmail.com>.
On Fri, Oct 26, 2012 at 10:46 AM, C. Michael Pilato <cm...@collab.net> wrote:
> On 10/26/2012 10:33 AM, Philip Martin wrote:
>> Paul Burba <pt...@gmail.com> writes:
>>
>>>> It's been almost two weeks with no objections, so I will be merging
>>>> this branch back to trunk today.
>>>
>>> Done, r1401908.
>>
>> This causes autoprop_tests.py to fail on my Linux box and the centos
>> buildbot:
>>
>> http://ci.apache.org/builders/svn-x64-centos-gcc/builds/7466
>>
>> I see "svn add" getting a SEGV.
>
> Of particular utility would be some indication of where the SEGV occurs, if
> you have time and inclination to determine as much, Philip.  I was unable to
> reproduce the SEGV on my Linux system, and Paul runs Windows.

Stefan provided some info yesterday in IRC: http://pastebin.com/pb1g8EWp

<pburba_> Anyone seeing the auto_props test failures showing up on the
CentOS buildbot on thier own box?
<pburba_> ^^^ http://ci.apache.org/builders/svn-x64-centos-gcc/builds/7462/steps/Test%20fsfs%2Bra_serf/logs/faillog
<stsp> pburba_, I do
<stsp> you want a backtrace?
<stsp> some test failures are due to crashes
<pburba_> stsp: Sure.  I obviously am not seeing it on windows, so any
insight is appreciated
<stsp> pburba_, http://pastebin.com/pb1g8EWp
<stsp> not sure which test this is though
<stsp> looks like its running out of memory
<stsp> #3  0x00000f147f1918ba in apr_palloc (pool=0xf147f5e5028,
<stsp>     in_size=16580824040265)
<stsp>     at /home/stsp/svn/src/apr-1.4.6/memory/unix/apr_pools.c:698
<stsp> 698                     pool->abort_fn(APR_ENOMEM);
<stsp> in this function:
<stsp> #6  0x00000f14771e4dde in svn_fs_fs__get_proplist
(proplist_p=0x7f7fffff58f0,
<stsp>     fs=0xf1477625030, noderev=0xf147c0843c0, pool=0xf1486208028)
<stsp>     at subversion/libsvn_fs_fs/fs_fs.c:5587
<stsp> 5587          SVN_ERR(svn_hash_read2(proplist, stream,
SVN_HASH_TERMINATOR, pool));
<stsp> some pool lifetime problem perhaps?
<stsp> can't give you more info right now, mom coming over i need to
prepare some food :)
<pburba_> Appreciate the brief look regardless
<stsp> yw

-- 
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba

> --
> C. Michael Pilato <cm...@collab.net>
> CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development
>

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by "C. Michael Pilato" <cm...@collab.net>.
On 10/26/2012 10:33 AM, Philip Martin wrote:
> Paul Burba <pt...@gmail.com> writes:
> 
>>> It's been almost two weeks with no objections, so I will be merging
>>> this branch back to trunk today.
>>
>> Done, r1401908.
> 
> This causes autoprop_tests.py to fail on my Linux box and the centos
> buildbot:
> 
> http://ci.apache.org/builders/svn-x64-centos-gcc/builds/7466
> 
> I see "svn add" getting a SEGV.

Of particular utility would be some indication of where the SEGV occurs, if
you have time and inclination to determine as much, Philip.  I was unable to
reproduce the SEGV on my Linux system, and Paul runs Windows.

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development


Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Philip Martin <ph...@wandisco.com>.
Paul Burba <pt...@gmail.com> writes:

>> It's been almost two weeks with no objections, so I will be merging
>> this branch back to trunk today.
>
> Done, r1401908.

This causes autoprop_tests.py to fail on my Linux box and the centos
buildbot:

http://ci.apache.org/builders/svn-x64-centos-gcc/builds/7466

I see "svn add" getting a SEGV.

W: CMD: /home/pm/sw/subversion/obj/subversion/svn/svn add --config-dir /home/pm/
sw/subversion/obj/subversion/tests/cmdline/svn-test-work/local_tmp/autoprops_con
fig_autoprop_tests-2 svn-test-work/working_copies/autoprop_tests-2/escapetest --
password rayjandom --no-auth-cache --username jrandom terminated by signal 11
W: CWD: /home/pm/sw/subversion/obj/subversion/tests/cmdline
W: EXCEPTION: SVNProcessTerminatedBySignal
Traceback (most recent call last):
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
ne 1408, in run
    rc = self.pred.run(sandbox)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/testcase.py"
, line 176, in run
    return self.func(sandbox)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/autoprop_tests.py", 
line 210, in autoprops_add_yes_none
    autoprops_test(sbox, 'add', 1, 0, '')
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/autoprop_tests.py", 
line 160, in autoprops_test
    svntest.main.run_svn(None, *tmp_params)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
ne 663, in run_svn
    *(_with_auth(_with_config_dir(varargs))))
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
ne 353, in run_command
    None, *varargs)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
ne 507, in run_command_stdin
    *varargs)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
ne 478, in spawn_process
    stdout_lines, stderr_lines, exit_code = wait_on_pipe(kid, binary_mode)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", li
ne 447, in wait_on_pipe
    raise SVNProcessTerminatedBySignal
SVNProcessTerminatedBySignal
FAIL:  autoprop_tests.py 2: add: config=yes, commandline=none


-- 
Join us this October at Subversion Live 2012
http://www.wandisco.com/svn-live-2012

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Paul Burba <pt...@gmail.com>.
On Wed, Oct 24, 2012 at 8:10 AM, Paul Burba <pt...@gmail.com> wrote:
> On Thu, Oct 11, 2012 at 2:02 PM, Paul Burba <pt...@gmail.com> wrote:
>> With the inheritable properties work complete and merged back to
>> trunk[1] I started work on a second branch to use inheritable
>> properties as an alternative solution for server dictated
>> configuration[2].  My initial goal was a subversion reserved property
>> that would supplement the traditional config file auto-props.  The
>> brief wiki at http://wiki.apache.org/subversion/InheritableAutoProps
>> describes the design.
>>
>> While I hope to implement a similar reserved property the supplements
>> the global-ignores configuration,
>
> I added svn:inherited-ignores support in
> http://svn.apache.org/viewvc?view=revision&revision=1401524
> I'll update the
> http://wiki.apache.org/subversion/Inheritable-Ignores-AutoProps wiki
> today to reflect these changes.
>
>> the existing work on auto-props is
>> self-contained and ready for review.  The branch can be found at
>> ^/subversion/branches/auto-props-sdc
>
> It's been almost two weeks with no objections, so I will be merging
> this branch back to trunk today.

Done, r1401908.

-- 
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba

> --
> Paul T. Burba
> CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
> Skype: ptburba
>
>> As always, any feedback, review, questions, etc. are appreciated.
>>
>> [1] See http://svn.haxx.se/dev/archive-2012-09/0177.shtml
>>
>> [2] See http://wiki.apache.org/subversion/ServerDictatedConfiguration
>> and http://svn.haxx.se/dev/archive-2012-02/0207.shtml
>>
>> --
>> Paul T. Burba
>> CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
>> Skype: ptburba

Re: [RFC] auto-props-sdc Branch : Ready for Review

Posted by Paul Burba <pt...@gmail.com>.
On Thu, Oct 11, 2012 at 2:02 PM, Paul Burba <pt...@gmail.com> wrote:
> With the inheritable properties work complete and merged back to
> trunk[1] I started work on a second branch to use inheritable
> properties as an alternative solution for server dictated
> configuration[2].  My initial goal was a subversion reserved property
> that would supplement the traditional config file auto-props.  The
> brief wiki at http://wiki.apache.org/subversion/InheritableAutoProps
> describes the design.
>
> While I hope to implement a similar reserved property the supplements
> the global-ignores configuration,

I added svn:inherited-ignores support in
http://svn.apache.org/viewvc?view=revision&revision=1401524
I'll update the
http://wiki.apache.org/subversion/Inheritable-Ignores-AutoProps wiki
today to reflect these changes.

> the existing work on auto-props is
> self-contained and ready for review.  The branch can be found at
> ^/subversion/branches/auto-props-sdc

It's been almost two weeks with no objections, so I will be merging
this branch back to trunk today.

-- 
Paul T. Burba
CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
Skype: ptburba

> As always, any feedback, review, questions, etc. are appreciated.
>
> [1] See http://svn.haxx.se/dev/archive-2012-09/0177.shtml
>
> [2] See http://wiki.apache.org/subversion/ServerDictatedConfiguration
> and http://svn.haxx.se/dev/archive-2012-02/0207.shtml
>
> --
> Paul T. Burba
> CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development
> Skype: ptburba