You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Greg Stein <gs...@gmail.com> on 2011/05/02 13:32:18 UTC

Re: svn commit: r1095914 - in /subversion/trunk/subversion: include/svn_wc.h libsvn_client/merge.c libsvn_wc/deprecated.c libsvn_wc/props.c libsvn_wc/props.h libsvn_wc/update_editor.c

I have local failures on checkout_test 4 5 6 8, with this revision.
I've narrowed it down to this particular revision, but am done for the
night. Something about this revision is breaking on my (Mac OS)
laptop. Given that the buildbots are all green, I would suppose it is
some artifact of this particular OS, and that probably means some kind
of memory lifetime issue.

An extra review of this revision would be good; maybe somebody will
spot something.

Cheers,
-g

On Fri, Apr 22, 2011 at 06:17,  <rh...@apache.org> wrote:
> Author: rhuijben
> Date: Fri Apr 22 10:17:41 2011
> New Revision: 1095914
>
> URL: http://svn.apache.org/viewvc?rev=1095914&view=rev
> Log:
> Remove the direct workingqueue install from the property merge code, to allow
> installing all the changes of an update at once.
>
> * subversion/include/svn_wc.h
>  (svn_wc_merge_props3): Update documentation to reflect reality.
>  (svn_wc_merge_props2): Document the old error codes.
>
> * subversion/libsvn_client/merge.c
>  (merge_props_changed): Update caller.
>
> * subversion/libsvn_wc/deprecated.c
>  (svn_wc_merge_props2): Update error codes to their old documented values.
>
> * subversion/libsvn_wc/props.c
>  (immediate_install_props): Remove unused function.
>  (svn_wc__perform_props_merge): Use one svn_wc__db_read_info() instead of a
>    few separate db calls. Install workqueue items and run queue only
>    if necessary.
>  (svn_wc__merge_props): Return work items instead of installing them. Create
>    skel in the result pool.
>  (svn_wc__internal_propset): Update caller.
>
> * subversion/libsvn_wc/props.h
>  (svn_wc__merge_props): Rewrite comment.
>
> * subversion/libsvn_wc/update_editor.c
>  (close_directory): Collect working items and store them when updating. Use
>    scratch_pool in more places.
>  (close_file): Collect working items from property merge and store them.
>    Don't overwrite the all_working_items list.
>...

Re: svn commit: r1095914 - in /subversion/trunk/subversion: include/svn_wc.h libsvn_client/merge.c libsvn_wc/deprecated.c libsvn_wc/props.c libsvn_wc/props.h libsvn_wc/update_editor.c

Posted by Philip Martin <ph...@wandisco.com>.
Greg Stein <gs...@gmail.com> writes:

> How about after r1099145?

Yes, that fixes the valgrind warnings.

-- 
Philip

Re: svn commit: r1095914 - in /subversion/trunk/subversion: include/svn_wc.h libsvn_client/merge.c libsvn_wc/deprecated.c libsvn_wc/props.c libsvn_wc/props.h libsvn_wc/update_editor.c

Posted by Greg Stein <gs...@gmail.com>.
How about after r1099145?
On May 3, 2011 12:15 PM, "Philip Martin" <ph...@wandisco.com> wrote:
> Philip Martin <ph...@wandisco.com> writes:
>
>> Greg Stein <gs...@gmail.com> writes:
>>
>>> Update: this is caused by CONTENT_STATE in close_file() not getting a
>>> proper value when fb->obstruction_found==1. It affects the
>>> notification later in the function.
>>>
>>> I'll tease out the logic tomorrow...
>>
>> I get a valgrind errors:
>
> Bert's r1099012 fixed some of the errors, but I'm still getting a SEGV
> after this:
>
> $ ./checkout_tests.py 4 -v
> [...]
> CMD: svn co
file:///home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/repositories/checkout_tests-4
svn-test-work/working_copies/checkout_tests-4 --force --config-dir
/home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/local_tmp/config
--password rayjandom --no-auth-cache --username jrandom
> E svn-test-work/working_copies/checkout_tests-4/A
> A svn-test-work/working_copies/checkout_tests-4/A/B
> A svn-test-work/working_copies/checkout_tests-4/A/B/lambda
> ==15050== Invalid read of size 8
> ==15050== at 0x51102EA: close_file (update_editor.c:3988)
> ==15050== by 0x557A503: close_file (cancel.c:234)
> ==15050== by 0x557A503: close_file (cancel.c:234)
> ==15050== by 0x6A40172: update_entry (reporter.c:943)
> ==15050== by 0x6A40B4B: delta_dirs (reporter.c:1187)
> ==15050== by 0x6A3FDCD: update_entry (reporter.c:908)
> ==15050== by 0x6A40B4B: delta_dirs (reporter.c:1187)
> ==15050== by 0x6A3FDCD: update_entry (reporter.c:908)
> ==15050== by 0x6A40B4B: delta_dirs (reporter.c:1187)
> ==15050== by 0x6A4107D: drive (reporter.c:1251)
> ==15050== by 0x6A41563: finish_report (reporter.c:1318)
> ==15050== by 0x6A419AB: svn_repos_finish_report (reporter.c:1408)
> ==15050== Address 0xafc93e8 is 120 bytes inside a block of size 128 free'd
> ==15050== at 0x4C240FD: free (vg_replace_malloc.c:366)
> ==15050== by 0x5E565A8: pool_clear_debug (apr_pools.c:1532)
> ==15050== by 0x5E566ED: pool_destroy_debug (apr_pools.c:1594)
> ==15050== by 0x51102E2: close_file (update_editor.c:3985)
> ==15050== by 0x557A503: close_file (cancel.c:234)
> ==15050== by 0x557A503: close_file (cancel.c:234)
> ==15050== by 0x6A40172: update_entry (reporter.c:943)
> ==15050== by 0x6A40B4B: delta_dirs (reporter.c:1187)
> ==15050== by 0x6A3FDCD: update_entry (reporter.c:908)
> ==15050== by 0x6A40B4B: delta_dirs (reporter.c:1187)
> ==15050== by 0x6A3FDCD: update_entry (reporter.c:908)
> ==15050== by 0x6A40B4B: delta_dirs (reporter.c:1187)
> ==15050==
> ==15050== Invalid read of size 4
> ==15050== at 0x51072D7: maybe_release_dir_info (update_editor.c:635)
> ==15050== by 0x51102F5: close_file (update_editor.c:3988)
> ==15050== by 0x557A503: close_file (cancel.c:234)
> ==15050== by 0x557A503: close_file (cancel.c:234)
> ==15050== by 0x6A40172: update_entry (reporter.c:943)
> ==15050== by 0x6A40B4B: delta_dirs (reporter.c:1187)
> ==15050== by 0x6A3FDCD: update_entry (reporter.c:908)
> ==15050== by 0x6A40B4B: delta_dirs (reporter.c:1187)
> ==15050== by 0x6A3FDCD: update_entry (reporter.c:908)
> ==15050== by 0x6A40B4B: delta_dirs (reporter.c:1187)
> ==15050== by 0x6A4107D: drive (reporter.c:1251)
> ==15050== by 0x6A41563: finish_report (reporter.c:1318)
> ==15050== Address 0x4141414141414149 is not stack'd, malloc'd or
(recently) free'd
> ==15050==
>
>
>
> --
> Philip

Re: svn commit: r1095914 - in /subversion/trunk/subversion: include/svn_wc.h libsvn_client/merge.c libsvn_wc/deprecated.c libsvn_wc/props.c libsvn_wc/props.h libsvn_wc/update_editor.c

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

> Greg Stein <gs...@gmail.com> writes:
>
>> Update: this is caused by CONTENT_STATE in close_file() not getting a
>> proper value when fb->obstruction_found==1. It affects the
>> notification later in the function.
>>
>> I'll tease out the logic tomorrow...
>
> I get a valgrind errors:

Bert's r1099012 fixed some of the errors, but I'm still getting a SEGV
after this:

$ ./checkout_tests.py 4 -v
[...]
CMD: svn co file:///home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/repositories/checkout_tests-4 svn-test-work/working_copies/checkout_tests-4 --force --config-dir /home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/local_tmp/config --password rayjandom --no-auth-cache --username jrandom
E    svn-test-work/working_copies/checkout_tests-4/A
A    svn-test-work/working_copies/checkout_tests-4/A/B
A    svn-test-work/working_copies/checkout_tests-4/A/B/lambda
==15050== Invalid read of size 8
==15050==    at 0x51102EA: close_file (update_editor.c:3988)
==15050==    by 0x557A503: close_file (cancel.c:234)
==15050==    by 0x557A503: close_file (cancel.c:234)
==15050==    by 0x6A40172: update_entry (reporter.c:943)
==15050==    by 0x6A40B4B: delta_dirs (reporter.c:1187)
==15050==    by 0x6A3FDCD: update_entry (reporter.c:908)
==15050==    by 0x6A40B4B: delta_dirs (reporter.c:1187)
==15050==    by 0x6A3FDCD: update_entry (reporter.c:908)
==15050==    by 0x6A40B4B: delta_dirs (reporter.c:1187)
==15050==    by 0x6A4107D: drive (reporter.c:1251)
==15050==    by 0x6A41563: finish_report (reporter.c:1318)
==15050==    by 0x6A419AB: svn_repos_finish_report (reporter.c:1408)
==15050==  Address 0xafc93e8 is 120 bytes inside a block of size 128 free'd
==15050==    at 0x4C240FD: free (vg_replace_malloc.c:366)
==15050==    by 0x5E565A8: pool_clear_debug (apr_pools.c:1532)
==15050==    by 0x5E566ED: pool_destroy_debug (apr_pools.c:1594)
==15050==    by 0x51102E2: close_file (update_editor.c:3985)
==15050==    by 0x557A503: close_file (cancel.c:234)
==15050==    by 0x557A503: close_file (cancel.c:234)
==15050==    by 0x6A40172: update_entry (reporter.c:943)
==15050==    by 0x6A40B4B: delta_dirs (reporter.c:1187)
==15050==    by 0x6A3FDCD: update_entry (reporter.c:908)
==15050==    by 0x6A40B4B: delta_dirs (reporter.c:1187)
==15050==    by 0x6A3FDCD: update_entry (reporter.c:908)
==15050==    by 0x6A40B4B: delta_dirs (reporter.c:1187)
==15050== 
==15050== Invalid read of size 4
==15050==    at 0x51072D7: maybe_release_dir_info (update_editor.c:635)
==15050==    by 0x51102F5: close_file (update_editor.c:3988)
==15050==    by 0x557A503: close_file (cancel.c:234)
==15050==    by 0x557A503: close_file (cancel.c:234)
==15050==    by 0x6A40172: update_entry (reporter.c:943)
==15050==    by 0x6A40B4B: delta_dirs (reporter.c:1187)
==15050==    by 0x6A3FDCD: update_entry (reporter.c:908)
==15050==    by 0x6A40B4B: delta_dirs (reporter.c:1187)
==15050==    by 0x6A3FDCD: update_entry (reporter.c:908)
==15050==    by 0x6A40B4B: delta_dirs (reporter.c:1187)
==15050==    by 0x6A4107D: drive (reporter.c:1251)
==15050==    by 0x6A41563: finish_report (reporter.c:1318)
==15050==  Address 0x4141414141414149 is not stack'd, malloc'd or (recently) free'd
==15050== 



-- 
Philip

Re: svn commit: r1095914 - in /subversion/trunk/subversion: include/svn_wc.h libsvn_client/merge.c libsvn_wc/deprecated.c libsvn_wc/props.c libsvn_wc/props.h libsvn_wc/update_editor.c

Posted by Philip Martin <ph...@wandisco.com>.
Greg Stein <gs...@gmail.com> writes:

> Update: this is caused by CONTENT_STATE in close_file() not getting a
> proper value when fb->obstruction_found==1. It affects the
> notification later in the function.
>
> I'll tease out the logic tomorrow...

I get a valgrind errors:

CMD: svn co file:///home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/repositories/checkout_tests-4 svn-test-work/working_copies/checkout_tests-4 --force --config-dir /home/pm/sw/subversion/obj/subversion/tests/cmdline/svn-test-work/local_tmp/config --password rayjandom --no-auth-cache --username jrandom
<TIME = 4.622243>
E    svn-test-work/working_copies/checkout_tests-4/A
A    svn-test-work/working_copies/checkout_tests-4/A/B
A    svn-test-work/working_copies/checkout_tests-4/A/B/lambda
A    svn-test-work/working_copies/checkout_tests-4/A/B/E
A    svn-test-work/working_copies/checkout_tests-4/A/B/E/alpha
A    svn-test-work/working_copies/checkout_tests-4/A/B/E/beta
A    svn-test-work/working_copies/checkout_tests-4/A/B/F
E    svn-test-work/working_copies/checkout_tests-4/A/mu
A    svn-test-work/working_copies/checkout_tests-4/A/C
A    svn-test-work/working_copies/checkout_tests-4/A/D
A    svn-test-work/working_copies/checkout_tests-4/A/D/gamma
A    svn-test-work/working_copies/checkout_tests-4/A/D/G
A    svn-test-work/working_copies/checkout_tests-4/A/D/G/pi
A    svn-test-work/working_copies/checkout_tests-4/A/D/G/rho
A    svn-test-work/working_copies/checkout_tests-4/A/D/G/tau
A    svn-test-work/working_copies/checkout_tests-4/A/D/H
A    svn-test-work/working_copies/checkout_tests-4/A/D/H/chi
A    svn-test-work/working_copies/checkout_tests-4/A/D/H/omega
A    svn-test-work/working_copies/checkout_tests-4/A/D/H/psi
E    svn-test-work/working_copies/checkout_tests-4/iota
Checked out revision 1.
==16774== Conditional jump or move depends on uninitialised value(s)
==16774==    at 0x511031D: close_file (update_editor.c:3947)
==16774==    by 0x557A503: close_file (cancel.c:234)
==16774==    by 0x557A503: close_file (cancel.c:234)
==16774==    by 0x6A4A172: update_entry (reporter.c:943)
==16774==    by 0x6A4AB4B: delta_dirs (reporter.c:1187)
==16774==    by 0x6A49DCD: update_entry (reporter.c:908)
==16774==    by 0x6A4AB4B: delta_dirs (reporter.c:1187)
==16774==    by 0x6A4B07D: drive (reporter.c:1251)
==16774==    by 0x6A4B563: finish_report (reporter.c:1318)
==16774==    by 0x6A4B9AB: svn_repos_finish_report (reporter.c:1408)
==16774==    by 0x681E8DC: reporter_finish_report (ra_plugin.c:214)
==16774==    by 0x50BED27: svn_wc_crawl_revisions5 (adm_crawler.c:1001)
==16774== 
==16774== Conditional jump or move depends on uninitialised value(s)
==16774==    at 0x418925: notify (notify.c:211)
==16774==    by 0x511043D: close_file (update_editor.c:3971)
==16774==    by 0x557A503: close_file (cancel.c:234)
==16774==    by 0x557A503: close_file (cancel.c:234)
==16774==    by 0x6A4A172: update_entry (reporter.c:943)
==16774==    by 0x6A4AB4B: delta_dirs (reporter.c:1187)
==16774==    by 0x6A49DCD: update_entry (reporter.c:908)
==16774==    by 0x6A4AB4B: delta_dirs (reporter.c:1187)
==16774==    by 0x6A4B07D: drive (reporter.c:1251)
==16774==    by 0x6A4B563: finish_report (reporter.c:1318)
==16774==    by 0x6A4B9AB: svn_repos_finish_report (reporter.c:1408)
==16774==    by 0x681E8DC: reporter_finish_report (ra_plugin.c:214)
==16774== 
Traceback (most recent call last):
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", line 1283, 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 "../../../../src/subversion/tests/cmdline/checkout_tests.py", line 391, in forced_checkout_with_faux_obstructions
    None, '--force')



-- 
Philip

Re: svn commit: r1095914 - in /subversion/trunk/subversion: include/svn_wc.h libsvn_client/merge.c libsvn_wc/deprecated.c libsvn_wc/props.c libsvn_wc/props.h libsvn_wc/update_editor.c

Posted by Greg Stein <gs...@gmail.com>.
Update: this is caused by CONTENT_STATE in close_file() not getting a
proper value when fb->obstruction_found==1. It affects the
notification later in the function.

I'll tease out the logic tomorrow...

On Mon, May 2, 2011 at 07:32, Greg Stein <gs...@gmail.com> wrote:
> I have local failures on checkout_test 4 5 6 8, with this revision.
> I've narrowed it down to this particular revision, but am done for the
> night. Something about this revision is breaking on my (Mac OS)
> laptop. Given that the buildbots are all green, I would suppose it is
> some artifact of this particular OS, and that probably means some kind
> of memory lifetime issue.
>
> An extra review of this revision would be good; maybe somebody will
> spot something.
>
> Cheers,
> -g
>
> On Fri, Apr 22, 2011 at 06:17,  <rh...@apache.org> wrote:
>> Author: rhuijben
>> Date: Fri Apr 22 10:17:41 2011
>> New Revision: 1095914
>>
>> URL: http://svn.apache.org/viewvc?rev=1095914&view=rev
>> Log:
>> Remove the direct workingqueue install from the property merge code, to allow
>> installing all the changes of an update at once.
>>
>> * subversion/include/svn_wc.h
>>  (svn_wc_merge_props3): Update documentation to reflect reality.
>>  (svn_wc_merge_props2): Document the old error codes.
>>
>> * subversion/libsvn_client/merge.c
>>  (merge_props_changed): Update caller.
>>
>> * subversion/libsvn_wc/deprecated.c
>>  (svn_wc_merge_props2): Update error codes to their old documented values.
>>
>> * subversion/libsvn_wc/props.c
>>  (immediate_install_props): Remove unused function.
>>  (svn_wc__perform_props_merge): Use one svn_wc__db_read_info() instead of a
>>    few separate db calls. Install workqueue items and run queue only
>>    if necessary.
>>  (svn_wc__merge_props): Return work items instead of installing them. Create
>>    skel in the result pool.
>>  (svn_wc__internal_propset): Update caller.
>>
>> * subversion/libsvn_wc/props.h
>>  (svn_wc__merge_props): Rewrite comment.
>>
>> * subversion/libsvn_wc/update_editor.c
>>  (close_directory): Collect working items and store them when updating. Use
>>    scratch_pool in more places.
>>  (close_file): Collect working items from property merge and store them.
>>    Don't overwrite the all_working_items list.
>>...
>