You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Hyrum K. Wright" <hy...@mail.utexas.edu> on 2009/04/21 20:56:47 UTC

r37413 and basic test 14

Bert,
I think that r37413 will solve the wc-ng windows problems with basic  
test 14, and possibly others.  Can you check and let me know how it  
goes?

-Hyrum

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1848668

Re: r37413 and basic test 14

Posted by "Hyrum K. Wright" <hy...@hyrumwright.org>.
On Apr 22, 2009, at 3:14 PM, Bert Huijben wrote:

>> -----Original Message-----
>> From: Hyrum K. Wright [mailto:hyrum_wright@mail.utexas.edu]
>> Sent: woensdag 22 april 2009 21:52
>> To: Bert Huijben
>> Cc: dev@subversion.tigris.org
>> Subject: Re: r37413 and basic test 14
>>
>>
>> On Apr 22, 2009, at 6:14 AM, Bert Huijben wrote:
>>
>>>> -----Original Message-----
>>>> From: Hyrum K. Wright [mailto:hyrum_wright@mail.utexas.edu]
>>>> Sent: dinsdag 21 april 2009 22:57
>>>> To: Bert Huijben
>>>> Cc: dev@subversion.tigris.org
>>>> Subject: r37413 and basic test 14
>>>>
>>>> Bert,
>>>> I think that r37413 will solve the wc-ng windows problems with  
>>>> basic
>>>> test 14, and possibly others.  Can you check and let me know how it
>>>> goes?
>>>
>>> My last status on Windows is:
>>>
>>> At least one test FAILED, checking F:\svn-2008\dev\Debug\tests.log
>>> FAIL:  update_tests.py 8: update after add/rm of deleted state
>>> FAIL:  update_tests.py 34: update handles obstructing paths
>>> scheduled for
>>> add
>>> FAIL:  switch_tests.py 1: test some basic switching operations
>>> FAIL:  switch_tests.py 2: commits after some basic switching
>>> operations
>>> FAIL:  switch_tests.py 3: update wc that contains switched things
>>> FAIL:  switch_tests.py 4: reverse update wc that contains switched
>>> things
>>> FAIL:  switch_tests.py 5: update switched wc things to HEAD
>>> FAIL:  switch_tests.py 6: reverse update switched wc things to an
>>> older rev
>>> FAIL:  switch_tests.py 7: show logs for a switched file
>>> FAIL:  switch_tests.py 25: basic tests to verify switch along with
>>> depth
>>> FAIL:  switch_tests.py 30: tolerate deletion of a directory with
>>> local mods
>>> FAIL:  merge_tests.py 4: some simple property merges
>>> FAIL:  tree_conflict_tests.py 7: up/sw dir: del/rpl/mv onto
>> del/rpl/mv
>>> FAIL:  upgrade_tests.py 1: basic upgrade behavior
>>> FAIL:  upgrade_tests.py 2: test upgrading from a 1.5-era working  
>>> copy
>>> Summary of test results:
>>> 798 tests PASSED
>>> 40 tests SKIPPED
>>> 28 tests XFAILED
>>> 15 tests FAILED
>>>
>>> update_tests.py 8 is now a new wc.db deletion error (file in use:
>>> can't
>>> delete); I haven't investigated this one further.
>>>
>>> Update_tests.py 34 is the tree conflict discussed in the "bug in  
>>> add/
>>> add
>>> tree conflict?" thread on dev@s.t.o.
>>>
>>> All the switch tests, the merge test and the tree conflict test go
>>> through
>>> the same shortcut in update_editor.c (around line 2141).
>>>
>>> Described in:
>>> if (eb->switch_url)
>>>   {
>>>     /* The SVN_WC__LOG_DELETE_ENTRY log item will cause
>>>      * svn_wc_remove_from_revision_control() to be run.  But that
>>>      * function checks whether the deletion target's URL is child of
>>>      * its parent directory's URL, and if it's not, then the entry
>>>      * in parent won't be deleted (because presumably the child
>>>      * represents a disjoint working copy, i.e., it is a wc_root).
>>>      *
>>>      * However, during a switch this works against us, because by
>>>      * the time we get here, the parent's URL has already been
>>>      * changed.  So we manually remove the child from revision
>>>      * control after the delete-entry item has been written in the
>>>      * parent's log, but before it is run, so the only work left for
>>>      * the log item is to remove the entry in the parent directory.
>>>      */
>>>
>>> And it then continues with unversioning the directory without
>>> closing the
>>> handles first.
>>
>> Do you have a stack trace for the error for this?  In tracing the
>> calls, it appears that this eventually gets into
>> svn_wc__adm_destroy(), which does close the baton before removing
>> the .svn directory.  Somewhere we are still holding on to that baton
>> when we blow it away.
>
> CMD: svn.exe switch
> "file:///F%3A/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/loca
> l_tmp/repos/A/D/G" "svn-test-work\working_copies\switch_tests-1\A\B"
> --config-dir
> "F:\svn-2008\dev\Debug\subversion\tests\cmdline\svn-test-work 
> \local_tmp\conf
> ig" --password rayjandom --no-auth-cache --username jrandom <TIME =
> 0.149000>
> D    svn-test-work\working_copies\switch_tests-1\A\B\lambda
> ..\..\..\subversion\libsvn_client\switch.c:237: (apr_err=720032)
> ..\..\..\subversion\libsvn_repos\reporter.c:1192: (apr_err=720032)
> ..\..\..\subversion\libsvn_repos\reporter.c:846: (apr_err=720032)
> ..\..\..\subversion\libsvn_repos\reporter.c:1077: (apr_err=720032)
> ..\..\..\subversion\libsvn_wc\update_editor.c:2159: (apr_err=720032)
> ..\..\..\subversion\libsvn_wc\adm_ops.c:2625: (apr_err=720032)
> ..\..\..\subversion\libsvn_wc\adm_files.c:723: (apr_err=720032)
> ..\..\..\subversion\libsvn_subr\io.c:1939: (apr_err=720032)
> svn: Can't remove
> 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db'
> ..\..\..\subversion\libsvn_subr\io.c:1807: (apr_err=720032)
> svn: Can't remove file
> 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db': The  
> process
> cannot access the file because it is being used by another process.

This is odd.  The error is coming from svn_wc__adm_destory(), in which  
we explicitly close the access baton for the directory before removing  
it.  This additional information should help me dig a little bit deeper.

>
>
> This is the error trace.. when you enable the DBG lines in sqlite.c  
> you
> should see what battons are open in which pool. (Maybe a bit skewed  
> by the
> unbuffered stderr output between the buffered stdout output)
>
>
> I'll add the more complete dump here as well:
>
>
> CMD: svn.exe switch
> "file:///F%3A/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/loca
> l_tmp/repos/A/D/G" "svn-test-work\working_copies\switch_tests-1\A\B"
> --config-dir
> "F:\svn-2008\dev\Debug\subversion\tests\cmdline\svn-test-work 
> \local_tmp\conf
> ig" --password rayjandom --no-auth-cache --username jrandom <TIME =
> 0.159000>
>
> DBG: sqlite.c: 851: Open  00E5EA88@003E0148  1/1/1
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E6BED8@003E0148  2/2/2
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E6BED8@003E0148  1/2/2
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E5EA88@003E0148  0/2/2
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E81880@003F7188  1/2/3
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E845A8@003F7188  2/2/4
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E845A8@003F7188  1/2/4
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E81880@003F7188  0/2/4
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E81880@003E0148  1/2/5
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7CEA0@003E0148  2/2/6
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  3/3/7
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA3FF0@003E0148  4/4/8
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EC0640@003E0148  5/5/9
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  4/5/9
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  5/5/10
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA3C48@003E0148  6/6/11
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA3C48@003E0148  5/6/11
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  4/6/11
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003F7188  5/6/12
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA7AD0@003F7188  6/6/13
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA7AD0@003F7188  5/6/13
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003F7188  4/6/13
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  5/6/14
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA7AD0@003E0148  6/6/15
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@003F7188  7/7/16
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EEABE8@003E0148  8/8/17
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A0B828@003E0148  9/9/18
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@003F7188  8/9/18
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/9/19
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A0DBD0@004041A8  10/10/20
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A0DBD0@004041A8  9/10/20
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/20
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/21
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/21
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/22
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A0DBD0@004041A8  10/10/23
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A0DBD0@004041A8  9/10/23
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/23
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/24
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/24
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  7/10/24
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  8/10/25
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A0DBD0@003E0148  9/10/26
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/D/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA1648@003E0148  10/10/27
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/C/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A48B28@003E0148  11/11/28
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  10/11/28
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  11/11/29
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> local_tmp/repos
> /db/rep-cache.db
>
> DBG: sqlite.c: 851: Open  00EEA990@003E0148  12/12/30
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/31
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/31
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/32
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/32
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/33
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/33
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/34
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/34
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@004542D8  13/13/35
> svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@004542D8  12/13/35
> svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@02D48098  13/13/36
> svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@02D48098  12/13/36
> svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
>
> D    svn-test-work\working_copies\switch_tests-1\A\B\lambda
>
> DBG: sqlite.c: 851: Open  02A34FE8@02D40078  13/13/37
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@02D40078  12/13/37
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@0045C2F8  13/13/38
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@0045C2F8  12/13/38
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@0045C2F8  13/13/39
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@0045C2F8  12/13/39
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A0B828@003E0148  11/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: main.c:2099: Done processing; rest is pool@003E0148 cleanup
>
> DBG: sqlite.c: 770: Close 00EEA990@003E0148  10/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  9/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> local_tmp/repos
> /db/rep-cache.db
>
> DBG: sqlite.c: 770: Close 02A48B28@003E0148  8/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA1648@003E0148  7/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/C/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A0DBD0@003E0148  6/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/D/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EEABE8@003E0148  5/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA7AD0@003E0148  4/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EC0640@003E0148  3/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA3FF0@003E0148  2/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7CEA0@003E0148  1/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E81880@003E0148  0/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> ..\..\..\subversion\libsvn_client\switch.c:237: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_repos\reporter.c:1192: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_repos\reporter.c:846: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_repos\reporter.c:1077: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_wc\update_editor.c:2159: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_wc\adm_ops.c:2625: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_wc\adm_files.c:723: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_subr\io.c:1939: (apr_err=720032)
>
> svn: Can't remove
> 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db'
>
> ..\..\..\subversion\libsvn_subr\io.c:1807: (apr_err=720032)
>
> svn: Can't remove file
> 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db': The  
> process
> cannot access the file because it is being used by another process.
>
>
> 	Bert
>>
>> -Hyrum
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1865414

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1865579

RE: r37413 and basic test 14

Posted by Bert Huijben <rh...@sharpsvn.net>.
> -----Original Message-----
> From: Hyrum K. Wright [mailto:hyrum@hyrumwright.org]
> Sent: woensdag 22 april 2009 23:17
> To: Bert Huijben
> Cc: dev@subversion.tigris.org
> Subject: Re: r37413 and basic test 14
> 
> On Apr 22, 2009, at 3:14 PM, Bert Huijben wrote:
> 
> >> -----Original Message-----
> >> From: Hyrum K. Wright [mailto:hyrum_wright@mail.utexas.edu]
> >> Sent: woensdag 22 april 2009 21:52
> >> To: Bert Huijben
> >> Cc: dev@subversion.tigris.org
> >> Subject: Re: r37413 and basic test 14
> >>
> >>
> >> On Apr 22, 2009, at 6:14 AM, Bert Huijben wrote:
> >>
> >>>> -----Original Message-----
> >>>> From: Hyrum K. Wright [mailto:hyrum_wright@mail.utexas.edu]
> >>>> Sent: dinsdag 21 april 2009 22:57
> >>>> To: Bert Huijben
> >>>> Cc: dev@subversion.tigris.org
> >>>> Subject: r37413 and basic test 14
> >>>>
> >>>> Bert,
> >>>> I think that r37413 will solve the wc-ng windows problems with
> >>>> basic
> >>>> test 14, and possibly others.  Can you check and let me know how it
> >>>> goes?
> >>>
> >>> My last status on Windows is:
> >>>
> >>> At least one test FAILED, checking F:\svn-2008\dev\Debug\tests.log
> >>> FAIL:  update_tests.py 8: update after add/rm of deleted state
> >>> FAIL:  update_tests.py 34: update handles obstructing paths
> >>> scheduled for
> >>> add
> >>> FAIL:  switch_tests.py 1: test some basic switching operations
> >>> FAIL:  switch_tests.py 2: commits after some basic switching
> >>> operations
> >>> FAIL:  switch_tests.py 3: update wc that contains switched things
> >>> FAIL:  switch_tests.py 4: reverse update wc that contains switched
> >>> things
> >>> FAIL:  switch_tests.py 5: update switched wc things to HEAD
> >>> FAIL:  switch_tests.py 6: reverse update switched wc things to an
> >>> older rev
> >>> FAIL:  switch_tests.py 7: show logs for a switched file
> >>> FAIL:  switch_tests.py 25: basic tests to verify switch along with
> >>> depth
> >>> FAIL:  switch_tests.py 30: tolerate deletion of a directory with
> >>> local mods
> >>> FAIL:  merge_tests.py 4: some simple property merges
> >>> FAIL:  tree_conflict_tests.py 7: up/sw dir: del/rpl/mv onto
> >> del/rpl/mv
> >>> FAIL:  upgrade_tests.py 1: basic upgrade behavior
> >>> FAIL:  upgrade_tests.py 2: test upgrading from a 1.5-era working
> >>> copy
> >>> Summary of test results:
> >>> 798 tests PASSED
> >>> 40 tests SKIPPED
> >>> 28 tests XFAILED
> >>> 15 tests FAILED
> >>>
> >>> update_tests.py 8 is now a new wc.db deletion error (file in use:
> >>> can't
> >>> delete); I haven't investigated this one further.
> >>>
> >>> Update_tests.py 34 is the tree conflict discussed in the "bug in
> >>> add/
> >>> add
> >>> tree conflict?" thread on dev@s.t.o.
> >>>
> >>> All the switch tests, the merge test and the tree conflict test go
> >>> through
> >>> the same shortcut in update_editor.c (around line 2141).
> >>>
> >>> Described in:
> >>> if (eb->switch_url)
> >>>   {
> >>>     /* The SVN_WC__LOG_DELETE_ENTRY log item will cause
> >>>      * svn_wc_remove_from_revision_control() to be run.  But that
> >>>      * function checks whether the deletion target's URL is child of
> >>>      * its parent directory's URL, and if it's not, then the entry
> >>>      * in parent won't be deleted (because presumably the child
> >>>      * represents a disjoint working copy, i.e., it is a wc_root).
> >>>      *
> >>>      * However, during a switch this works against us, because by
> >>>      * the time we get here, the parent's URL has already been
> >>>      * changed.  So we manually remove the child from revision
> >>>      * control after the delete-entry item has been written in the
> >>>      * parent's log, but before it is run, so the only work left for
> >>>      * the log item is to remove the entry in the parent directory.
> >>>      */
> >>>
> >>> And it then continues with unversioning the directory without
> >>> closing the
> >>> handles first.
> >>
> >> Do you have a stack trace for the error for this?  In tracing the
> >> calls, it appears that this eventually gets into
> >> svn_wc__adm_destroy(), which does close the baton before removing
> >> the .svn directory.  Somewhere we are still holding on to that baton
> >> when we blow it away.

I annotated the trace at the bottom to add some details. But you would get
much more details if you use the traces while debugging from a (visual)
debugger. Just put a breakpoint on the delete code with a check on the
specific filename. (I'm not sure how you would do this in gdb, but in Visual
Studio it's just a few mouseclicks).

> >
> > CMD: svn.exe switch
> >
"file:///F%3A/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/loca
> > l_tmp/repos/A/D/G" "svn-test-work\working_copies\switch_tests-1\A\B"
> > --config-dir
> > "F:\svn-2008\dev\Debug\subversion\tests\cmdline\svn-test-work
> > \local_tmp\conf
> > ig" --password rayjandom --no-auth-cache --username jrandom <TIME =
> > 0.149000>
> > D    svn-test-work\working_copies\switch_tests-1\A\B\lambda
> > ..\..\..\subversion\libsvn_client\switch.c:237: (apr_err=720032)
> > ..\..\..\subversion\libsvn_repos\reporter.c:1192: (apr_err=720032)
> > ..\..\..\subversion\libsvn_repos\reporter.c:846: (apr_err=720032)
> > ..\..\..\subversion\libsvn_repos\reporter.c:1077: (apr_err=720032)
> > ..\..\..\subversion\libsvn_wc\update_editor.c:2159: (apr_err=720032)
> > ..\..\..\subversion\libsvn_wc\adm_ops.c:2625: (apr_err=720032)
> > ..\..\..\subversion\libsvn_wc\adm_files.c:723: (apr_err=720032)
> > ..\..\..\subversion\libsvn_subr\io.c:1939: (apr_err=720032)
> > svn: Can't remove
> > 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db'
> > ..\..\..\subversion\libsvn_subr\io.c:1807: (apr_err=720032)
> > svn: Can't remove file
> > 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db': The
> > process
> > cannot access the file because it is being used by another process.
> >
> > This is the error trace.. when you enable the DBG lines in sqlite.c
> > you
> > should see what battons are open in which pool. (Maybe a bit skewed
> > by the
> > unbuffered stderr output between the buffered stdout output)
> >
> >
> > I'll add the more complete dump here as well:
> >
> >
> > CMD: svn.exe switch
> >
"file:///F%3A/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/loca
> > l_tmp/repos/A/D/G" "svn-test-work\working_copies\switch_tests-1\A\B"
> > --config-dir
> > "F:\svn-2008\dev\Debug\subversion\tests\cmdline\svn-test-work
> > \local_tmp\conf
> > ig" --password rayjandom --no-auth-cache --username jrandom <TIME =
> > 0.159000>
> >
> > DBG: sqlite.c: 851: Open  00E5EA88@003E0148  1/1/1
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E6BED8@003E0148  2/2/2
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E6BED8@003E0148  1/2/2
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E5EA88@003E0148  0/2/2
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E81880@003F7188  1/2/3
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E845A8@003F7188  2/2/4
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E845A8@003F7188  1/2/4
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E81880@003F7188  0/2/4
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E81880@003E0148  1/2/5
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E7CEA0@003E0148  2/2/6
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  3/3/7
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA3FF0@003E0148  4/4/8
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/F/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EC0640@003E0148  5/5/9
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  4/5/9
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  5/5/10
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA3C48@003E0148  6/6/11
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EA3C48@003E0148  5/6/11
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  4/6/11
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E7D5D0@003F7188  5/6/12
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA7AD0@003F7188  6/6/13
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EA7AD0@003F7188  5/6/13
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E7D5D0@003F7188  4/6/13
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  5/6/14
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA7AD0@003E0148  6/6/15
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA2900@003F7188  7/7/16
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EEABE8@003E0148  8/8/17
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/F/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A0B828@003E0148  9/9/18
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EA2900@003F7188  8/9/18
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/9/19
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A0DBD0@004041A8  10/10/20
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A0DBD0@004041A8  9/10/20
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/20
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/21
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/21
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/22
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/F/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A0DBD0@004041A8  10/10/23
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A0DBD0@004041A8  9/10/23
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/23
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/F/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/24
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/F/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/24
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/F/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  7/10/24
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  8/10/25
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A0DBD0@003E0148  9/10/26
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/D/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00EA1648@003E0148  10/10/27
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/C/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A48B28@003E0148  11/11/28
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  10/11/28
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  11/11/29
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > local_tmp/repos
> > /db/rep-cache.db
> >
> > DBG: sqlite.c: 851: Open  00EEA990@003E0148  12/12/30
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/31
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/31
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/32
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/32
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/33
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/33
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/34
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/34
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A34FE8@004542D8  13/13/35
> > svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A34FE8@004542D8  12/13/35
> > svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A34FE8@02D48098  13/13/36
> > svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A34FE8@02D48098  12/13/36
> > svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
> >
> > D    svn-test-work\working_copies\switch_tests-1\A\B\lambda
> >
> > DBG: sqlite.c: 851: Open  02A34FE8@02D40078  13/13/37
> > svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A34FE8@02D40078  12/13/37
> > svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A34FE8@0045C2F8  13/13/38
> > svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A34FE8@0045C2F8  12/13/38
> > svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 851: Open  02A34FE8@0045C2F8  13/13/39
> > svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A34FE8@0045C2F8  12/13/39
> > svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A0B828@003E0148  11/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/E/.svn/wc.db
> >
> > DBG: main.c:2099: Done processing; rest is pool@003E0148 cleanup

At this point we are back in subversion/svn/main.c, but we didn't print the
output yet (we only have a reference to it in the err variable). All the
rest is pool cleanup from main().

> >
> > DBG: sqlite.c: 770: Close 00EEA990@003E0148  10/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  9/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > local_tmp/repos
> > /db/rep-cache.db
> >
> > DBG: sqlite.c: 770: Close 02A48B28@003E0148  8/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EA1648@003E0148  7/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/C/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 02A0DBD0@003E0148  6/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/D/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EEABE8@003E0148  5/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/F/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EA7AD0@003E0148  4/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00EC0640@003E0148  3/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/E/.svn/wc.db

This open handle is the problem

> >
> > DBG: sqlite.c: 770: Close 00EA3FF0@003E0148  2/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/F/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E7CEA0@003E0148  1/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/.svn/wc.db
> >
> > DBG: sqlite.c: 770: Close 00E81880@003E0148  0/13/39
> > F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/
> > working_copies/
> > switch_tests-1/A/B/.svn/wc.db
> >
> > ..\..\..\subversion\libsvn_client\switch.c:237: (apr_err=720032)
> >
> > ..\..\..\subversion\libsvn_repos\reporter.c:1192: (apr_err=720032)
> >
> > ..\..\..\subversion\libsvn_repos\reporter.c:846: (apr_err=720032)
> >
> > ..\..\..\subversion\libsvn_repos\reporter.c:1077: (apr_err=720032)
> >
> > ..\..\..\subversion\libsvn_wc\update_editor.c:2159: (apr_err=720032)
> >
> > ..\..\..\subversion\libsvn_wc\adm_ops.c:2625: (apr_err=720032)
> >
> > ..\..\..\subversion\libsvn_wc\adm_files.c:723: (apr_err=720032)
> >
> > ..\..\..\subversion\libsvn_subr\io.c:1939: (apr_err=720032)
> >
> > svn: Can't remove
> > 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db'
> >
> > ..\..\..\subversion\libsvn_subr\io.c:1807: (apr_err=720032)
> >
> > svn: Can't remove file
> > 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db': The
> > process
> > cannot access the file because it is being used by another process.
> 
> So, judging by the database trace, all the databases are closed by the
> time we go to destroy the admin area.  Is there any other way that we
> can be holding handles to that database?

No... see the annotation.. We just delay printing the error.

	Bert
> 
> -Hyrum
> 
> ------------------------------------------------------
>
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=186
62
> 25

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1874550

Re: r37413 and basic test 14

Posted by "Hyrum K. Wright" <hy...@hyrumwright.org>.
On Apr 22, 2009, at 3:14 PM, Bert Huijben wrote:

>> -----Original Message-----
>> From: Hyrum K. Wright [mailto:hyrum_wright@mail.utexas.edu]
>> Sent: woensdag 22 april 2009 21:52
>> To: Bert Huijben
>> Cc: dev@subversion.tigris.org
>> Subject: Re: r37413 and basic test 14
>>
>>
>> On Apr 22, 2009, at 6:14 AM, Bert Huijben wrote:
>>
>>>> -----Original Message-----
>>>> From: Hyrum K. Wright [mailto:hyrum_wright@mail.utexas.edu]
>>>> Sent: dinsdag 21 april 2009 22:57
>>>> To: Bert Huijben
>>>> Cc: dev@subversion.tigris.org
>>>> Subject: r37413 and basic test 14
>>>>
>>>> Bert,
>>>> I think that r37413 will solve the wc-ng windows problems with  
>>>> basic
>>>> test 14, and possibly others.  Can you check and let me know how it
>>>> goes?
>>>
>>> My last status on Windows is:
>>>
>>> At least one test FAILED, checking F:\svn-2008\dev\Debug\tests.log
>>> FAIL:  update_tests.py 8: update after add/rm of deleted state
>>> FAIL:  update_tests.py 34: update handles obstructing paths
>>> scheduled for
>>> add
>>> FAIL:  switch_tests.py 1: test some basic switching operations
>>> FAIL:  switch_tests.py 2: commits after some basic switching
>>> operations
>>> FAIL:  switch_tests.py 3: update wc that contains switched things
>>> FAIL:  switch_tests.py 4: reverse update wc that contains switched
>>> things
>>> FAIL:  switch_tests.py 5: update switched wc things to HEAD
>>> FAIL:  switch_tests.py 6: reverse update switched wc things to an
>>> older rev
>>> FAIL:  switch_tests.py 7: show logs for a switched file
>>> FAIL:  switch_tests.py 25: basic tests to verify switch along with
>>> depth
>>> FAIL:  switch_tests.py 30: tolerate deletion of a directory with
>>> local mods
>>> FAIL:  merge_tests.py 4: some simple property merges
>>> FAIL:  tree_conflict_tests.py 7: up/sw dir: del/rpl/mv onto
>> del/rpl/mv
>>> FAIL:  upgrade_tests.py 1: basic upgrade behavior
>>> FAIL:  upgrade_tests.py 2: test upgrading from a 1.5-era working  
>>> copy
>>> Summary of test results:
>>> 798 tests PASSED
>>> 40 tests SKIPPED
>>> 28 tests XFAILED
>>> 15 tests FAILED
>>>
>>> update_tests.py 8 is now a new wc.db deletion error (file in use:
>>> can't
>>> delete); I haven't investigated this one further.
>>>
>>> Update_tests.py 34 is the tree conflict discussed in the "bug in  
>>> add/
>>> add
>>> tree conflict?" thread on dev@s.t.o.
>>>
>>> All the switch tests, the merge test and the tree conflict test go
>>> through
>>> the same shortcut in update_editor.c (around line 2141).
>>>
>>> Described in:
>>> if (eb->switch_url)
>>>   {
>>>     /* The SVN_WC__LOG_DELETE_ENTRY log item will cause
>>>      * svn_wc_remove_from_revision_control() to be run.  But that
>>>      * function checks whether the deletion target's URL is child of
>>>      * its parent directory's URL, and if it's not, then the entry
>>>      * in parent won't be deleted (because presumably the child
>>>      * represents a disjoint working copy, i.e., it is a wc_root).
>>>      *
>>>      * However, during a switch this works against us, because by
>>>      * the time we get here, the parent's URL has already been
>>>      * changed.  So we manually remove the child from revision
>>>      * control after the delete-entry item has been written in the
>>>      * parent's log, but before it is run, so the only work left for
>>>      * the log item is to remove the entry in the parent directory.
>>>      */
>>>
>>> And it then continues with unversioning the directory without
>>> closing the
>>> handles first.
>>
>> Do you have a stack trace for the error for this?  In tracing the
>> calls, it appears that this eventually gets into
>> svn_wc__adm_destroy(), which does close the baton before removing
>> the .svn directory.  Somewhere we are still holding on to that baton
>> when we blow it away.
>
> CMD: svn.exe switch
> "file:///F%3A/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/loca
> l_tmp/repos/A/D/G" "svn-test-work\working_copies\switch_tests-1\A\B"
> --config-dir
> "F:\svn-2008\dev\Debug\subversion\tests\cmdline\svn-test-work 
> \local_tmp\conf
> ig" --password rayjandom --no-auth-cache --username jrandom <TIME =
> 0.149000>
> D    svn-test-work\working_copies\switch_tests-1\A\B\lambda
> ..\..\..\subversion\libsvn_client\switch.c:237: (apr_err=720032)
> ..\..\..\subversion\libsvn_repos\reporter.c:1192: (apr_err=720032)
> ..\..\..\subversion\libsvn_repos\reporter.c:846: (apr_err=720032)
> ..\..\..\subversion\libsvn_repos\reporter.c:1077: (apr_err=720032)
> ..\..\..\subversion\libsvn_wc\update_editor.c:2159: (apr_err=720032)
> ..\..\..\subversion\libsvn_wc\adm_ops.c:2625: (apr_err=720032)
> ..\..\..\subversion\libsvn_wc\adm_files.c:723: (apr_err=720032)
> ..\..\..\subversion\libsvn_subr\io.c:1939: (apr_err=720032)
> svn: Can't remove
> 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db'
> ..\..\..\subversion\libsvn_subr\io.c:1807: (apr_err=720032)
> svn: Can't remove file
> 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db': The  
> process
> cannot access the file because it is being used by another process.
>
> This is the error trace.. when you enable the DBG lines in sqlite.c  
> you
> should see what battons are open in which pool. (Maybe a bit skewed  
> by the
> unbuffered stderr output between the buffered stdout output)
>
>
> I'll add the more complete dump here as well:
>
>
> CMD: svn.exe switch
> "file:///F%3A/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/loca
> l_tmp/repos/A/D/G" "svn-test-work\working_copies\switch_tests-1\A\B"
> --config-dir
> "F:\svn-2008\dev\Debug\subversion\tests\cmdline\svn-test-work 
> \local_tmp\conf
> ig" --password rayjandom --no-auth-cache --username jrandom <TIME =
> 0.159000>
>
> DBG: sqlite.c: 851: Open  00E5EA88@003E0148  1/1/1
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E6BED8@003E0148  2/2/2
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E6BED8@003E0148  1/2/2
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E5EA88@003E0148  0/2/2
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E81880@003F7188  1/2/3
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E845A8@003F7188  2/2/4
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E845A8@003F7188  1/2/4
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E81880@003F7188  0/2/4
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E81880@003E0148  1/2/5
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7CEA0@003E0148  2/2/6
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  3/3/7
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA3FF0@003E0148  4/4/8
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EC0640@003E0148  5/5/9
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  4/5/9
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  5/5/10
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA3C48@003E0148  6/6/11
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA3C48@003E0148  5/6/11
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  4/6/11
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003F7188  5/6/12
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA7AD0@003F7188  6/6/13
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA7AD0@003F7188  5/6/13
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003F7188  4/6/13
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  5/6/14
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA7AD0@003E0148  6/6/15
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@003F7188  7/7/16
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EEABE8@003E0148  8/8/17
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A0B828@003E0148  9/9/18
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@003F7188  8/9/18
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/9/19
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A0DBD0@004041A8  10/10/20
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A0DBD0@004041A8  9/10/20
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/20
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/21
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/21
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/22
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A0DBD0@004041A8  10/10/23
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A0DBD0@004041A8  9/10/23
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/23
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/24
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/24
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  7/10/24
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  8/10/25
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A0DBD0@003E0148  9/10/26
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/D/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00EA1648@003E0148  10/10/27
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/C/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A48B28@003E0148  11/11/28
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  10/11/28
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  11/11/29
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> local_tmp/repos
> /db/rep-cache.db
>
> DBG: sqlite.c: 851: Open  00EEA990@003E0148  12/12/30
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/31
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/31
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/32
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/32
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/33
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/33
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/34
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/34
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@004542D8  13/13/35
> svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@004542D8  12/13/35
> svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@02D48098  13/13/36
> svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@02D48098  12/13/36
> svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db
>
> D    svn-test-work\working_copies\switch_tests-1\A\B\lambda
>
> DBG: sqlite.c: 851: Open  02A34FE8@02D40078  13/13/37
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@02D40078  12/13/37
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@0045C2F8  13/13/38
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@0045C2F8  12/13/38
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 851: Open  02A34FE8@0045C2F8  13/13/39
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A34FE8@0045C2F8  12/13/39
> svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A0B828@003E0148  11/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: main.c:2099: Done processing; rest is pool@003E0148 cleanup
>
> DBG: sqlite.c: 770: Close 00EEA990@003E0148  10/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  9/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> local_tmp/repos
> /db/rep-cache.db
>
> DBG: sqlite.c: 770: Close 02A48B28@003E0148  8/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA1648@003E0148  7/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/C/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 02A0DBD0@003E0148  6/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/D/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EEABE8@003E0148  5/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA7AD0@003E0148  4/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EC0640@003E0148  3/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/E/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00EA3FF0@003E0148  2/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/F/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E7CEA0@003E0148  1/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/.svn/wc.db
>
> DBG: sqlite.c: 770: Close 00E81880@003E0148  0/13/39
> F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/ 
> working_copies/
> switch_tests-1/A/B/.svn/wc.db
>
> ..\..\..\subversion\libsvn_client\switch.c:237: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_repos\reporter.c:1192: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_repos\reporter.c:846: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_repos\reporter.c:1077: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_wc\update_editor.c:2159: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_wc\adm_ops.c:2625: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_wc\adm_files.c:723: (apr_err=720032)
>
> ..\..\..\subversion\libsvn_subr\io.c:1939: (apr_err=720032)
>
> svn: Can't remove
> 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db'
>
> ..\..\..\subversion\libsvn_subr\io.c:1807: (apr_err=720032)
>
> svn: Can't remove file
> 'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db': The  
> process
> cannot access the file because it is being used by another process.

So, judging by the database trace, all the databases are closed by the  
time we go to destroy the admin area.  Is there any other way that we  
can be holding handles to that database?

-Hyrum

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1866225

RE: r37413 and basic test 14

Posted by Bert Huijben <rh...@sharpsvn.net>.
> -----Original Message-----
> From: Hyrum K. Wright [mailto:hyrum_wright@mail.utexas.edu]
> Sent: woensdag 22 april 2009 21:52
> To: Bert Huijben
> Cc: dev@subversion.tigris.org
> Subject: Re: r37413 and basic test 14
> 
> 
> On Apr 22, 2009, at 6:14 AM, Bert Huijben wrote:
> 
> >> -----Original Message-----
> >> From: Hyrum K. Wright [mailto:hyrum_wright@mail.utexas.edu]
> >> Sent: dinsdag 21 april 2009 22:57
> >> To: Bert Huijben
> >> Cc: dev@subversion.tigris.org
> >> Subject: r37413 and basic test 14
> >>
> >> Bert,
> >> I think that r37413 will solve the wc-ng windows problems with basic
> >> test 14, and possibly others.  Can you check and let me know how it
> >> goes?
> >
> > My last status on Windows is:
> >
> > At least one test FAILED, checking F:\svn-2008\dev\Debug\tests.log
> > FAIL:  update_tests.py 8: update after add/rm of deleted state
> > FAIL:  update_tests.py 34: update handles obstructing paths
> > scheduled for
> > add
> > FAIL:  switch_tests.py 1: test some basic switching operations
> > FAIL:  switch_tests.py 2: commits after some basic switching
> > operations
> > FAIL:  switch_tests.py 3: update wc that contains switched things
> > FAIL:  switch_tests.py 4: reverse update wc that contains switched
> > things
> > FAIL:  switch_tests.py 5: update switched wc things to HEAD
> > FAIL:  switch_tests.py 6: reverse update switched wc things to an
> > older rev
> > FAIL:  switch_tests.py 7: show logs for a switched file
> > FAIL:  switch_tests.py 25: basic tests to verify switch along with
> > depth
> > FAIL:  switch_tests.py 30: tolerate deletion of a directory with
> > local mods
> > FAIL:  merge_tests.py 4: some simple property merges
> > FAIL:  tree_conflict_tests.py 7: up/sw dir: del/rpl/mv onto
> del/rpl/mv
> > FAIL:  upgrade_tests.py 1: basic upgrade behavior
> > FAIL:  upgrade_tests.py 2: test upgrading from a 1.5-era working copy
> > Summary of test results:
> >  798 tests PASSED
> >  40 tests SKIPPED
> >  28 tests XFAILED
> >  15 tests FAILED
> >
> > update_tests.py 8 is now a new wc.db deletion error (file in use:
> > can't
> > delete); I haven't investigated this one further.
> >
> > Update_tests.py 34 is the tree conflict discussed in the "bug in add/
> > add
> > tree conflict?" thread on dev@s.t.o.
> >
> > All the switch tests, the merge test and the tree conflict test go
> > through
> > the same shortcut in update_editor.c (around line 2141).
> >
> > Described in:
> > if (eb->switch_url)
> >    {
> >      /* The SVN_WC__LOG_DELETE_ENTRY log item will cause
> >       * svn_wc_remove_from_revision_control() to be run.  But that
> >       * function checks whether the deletion target's URL is child of
> >       * its parent directory's URL, and if it's not, then the entry
> >       * in parent won't be deleted (because presumably the child
> >       * represents a disjoint working copy, i.e., it is a wc_root).
> >       *
> >       * However, during a switch this works against us, because by
> >       * the time we get here, the parent's URL has already been
> >       * changed.  So we manually remove the child from revision
> >       * control after the delete-entry item has been written in the
> >       * parent's log, but before it is run, so the only work left for
> >       * the log item is to remove the entry in the parent directory.
> >       */
> >
> > And it then continues with unversioning the directory without
> > closing the
> > handles first.
> 
> Do you have a stack trace for the error for this?  In tracing the
> calls, it appears that this eventually gets into
> svn_wc__adm_destroy(), which does close the baton before removing
> the .svn directory.  Somewhere we are still holding on to that baton
> when we blow it away.

CMD: svn.exe switch
"file:///F%3A/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/loca
l_tmp/repos/A/D/G" "svn-test-work\working_copies\switch_tests-1\A\B"
--config-dir
"F:\svn-2008\dev\Debug\subversion\tests\cmdline\svn-test-work\local_tmp\conf
ig" --password rayjandom --no-auth-cache --username jrandom <TIME =
0.149000>
D    svn-test-work\working_copies\switch_tests-1\A\B\lambda
..\..\..\subversion\libsvn_client\switch.c:237: (apr_err=720032)
..\..\..\subversion\libsvn_repos\reporter.c:1192: (apr_err=720032)
..\..\..\subversion\libsvn_repos\reporter.c:846: (apr_err=720032)
..\..\..\subversion\libsvn_repos\reporter.c:1077: (apr_err=720032)
..\..\..\subversion\libsvn_wc\update_editor.c:2159: (apr_err=720032)
..\..\..\subversion\libsvn_wc\adm_ops.c:2625: (apr_err=720032)
..\..\..\subversion\libsvn_wc\adm_files.c:723: (apr_err=720032)
..\..\..\subversion\libsvn_subr\io.c:1939: (apr_err=720032)
svn: Can't remove
'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db'
..\..\..\subversion\libsvn_subr\io.c:1807: (apr_err=720032)
svn: Can't remove file
'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db': The process
cannot access the file because it is being used by another process.  

This is the error trace.. when you enable the DBG lines in sqlite.c you
should see what battons are open in which pool. (Maybe a bit skewed by the
unbuffered stderr output between the buffered stdout output)


I'll add the more complete dump here as well:


CMD: svn.exe switch
"file:///F%3A/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/loca
l_tmp/repos/A/D/G" "svn-test-work\working_copies\switch_tests-1\A\B"
--config-dir
"F:\svn-2008\dev\Debug\subversion\tests\cmdline\svn-test-work\local_tmp\conf
ig" --password rayjandom --no-auth-cache --username jrandom <TIME =
0.159000>

DBG: sqlite.c: 851: Open  00E5EA88@003E0148  1/1/1
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00E6BED8@003E0148  2/2/2
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 770: Close 00E6BED8@003E0148  1/2/2
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 770: Close 00E5EA88@003E0148  0/2/2
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00E81880@003F7188  1/2/3
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00E845A8@003F7188  2/2/4
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 770: Close 00E845A8@003F7188  1/2/4
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 770: Close 00E81880@003F7188  0/2/4
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00E81880@003E0148  1/2/5
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00E7CEA0@003E0148  2/2/6
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  3/3/7
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA3FF0@003E0148  4/4/8
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/F/.svn/wc.db

DBG: sqlite.c: 851: Open  00EC0640@003E0148  5/5/9
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  4/5/9
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  5/5/10
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA3C48@003E0148  6/6/11
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA3C48@003E0148  5/6/11
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  4/6/11
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 851: Open  00E7D5D0@003F7188  5/6/12
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA7AD0@003F7188  6/6/13
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA7AD0@003F7188  5/6/13
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 770: Close 00E7D5D0@003F7188  4/6/13
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  5/6/14
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA7AD0@003E0148  6/6/15
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA2900@003F7188  7/7/16
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00EEABE8@003E0148  8/8/17
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/F/.svn/wc.db

DBG: sqlite.c: 851: Open  02A0B828@003E0148  9/9/18
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA2900@003F7188  8/9/18
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/9/19
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 851: Open  02A0DBD0@004041A8  10/10/20
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 770: Close 02A0DBD0@004041A8  9/10/20
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/20
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/21
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/21
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/22
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/F/.svn/wc.db

DBG: sqlite.c: 851: Open  02A0DBD0@004041A8  10/10/23
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 770: Close 02A0DBD0@004041A8  9/10/23
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/23
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/F/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA2900@004041A8  9/10/24
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/F/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA2900@004041A8  8/10/24
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/F/.svn/wc.db

DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  7/10/24
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  8/10/25
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 851: Open  02A0DBD0@003E0148  9/10/26
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/D/.svn/wc.db

DBG: sqlite.c: 851: Open  00EA1648@003E0148  10/10/27
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/C/.svn/wc.db

DBG: sqlite.c: 851: Open  02A48B28@003E0148  11/11/28
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  10/11/28
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 851: Open  00E7D5D0@003E0148  11/11/29
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/local_tmp/repos
/db/rep-cache.db

DBG: sqlite.c: 851: Open  00EEA990@003E0148  12/12/30
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/31
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/31
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/32
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/32
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/33
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/33
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 851: Open  02A34FE8@003E0148  13/13/34
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 770: Close 02A34FE8@003E0148  12/13/34
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 851: Open  02A34FE8@004542D8  13/13/35
svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 770: Close 02A34FE8@004542D8  12/13/35
svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 851: Open  02A34FE8@02D48098  13/13/36
svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 770: Close 02A34FE8@02D48098  12/13/36
svn-test-work/working_copies/switch_tests-1/A/B/.svn/wc.db

D    svn-test-work\working_copies\switch_tests-1\A\B\lambda

DBG: sqlite.c: 851: Open  02A34FE8@02D40078  13/13/37
svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 770: Close 02A34FE8@02D40078  12/13/37
svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 851: Open  02A34FE8@0045C2F8  13/13/38
svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 770: Close 02A34FE8@0045C2F8  12/13/38
svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 851: Open  02A34FE8@0045C2F8  13/13/39
svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 770: Close 02A34FE8@0045C2F8  12/13/39
svn-test-work/working_copies/switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 770: Close 02A0B828@003E0148  11/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/E/.svn/wc.db

DBG: main.c:2099: Done processing; rest is pool@003E0148 cleanup 

DBG: sqlite.c: 770: Close 00EEA990@003E0148  10/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/.svn/wc.db

DBG: sqlite.c: 770: Close 00E7D5D0@003E0148  9/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/local_tmp/repos
/db/rep-cache.db

DBG: sqlite.c: 770: Close 02A48B28@003E0148  8/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA1648@003E0148  7/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/C/.svn/wc.db

DBG: sqlite.c: 770: Close 02A0DBD0@003E0148  6/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/D/.svn/wc.db

DBG: sqlite.c: 770: Close 00EEABE8@003E0148  5/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/F/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA7AD0@003E0148  4/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 770: Close 00EC0640@003E0148  3/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/E/.svn/wc.db

DBG: sqlite.c: 770: Close 00EA3FF0@003E0148  2/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/F/.svn/wc.db

DBG: sqlite.c: 770: Close 00E7CEA0@003E0148  1/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/.svn/wc.db

DBG: sqlite.c: 770: Close 00E81880@003E0148  0/13/39
F:/svn-2008/dev/Debug/subversion/tests/cmdline/svn-test-work/working_copies/
switch_tests-1/A/B/.svn/wc.db

..\..\..\subversion\libsvn_client\switch.c:237: (apr_err=720032)

..\..\..\subversion\libsvn_repos\reporter.c:1192: (apr_err=720032)

..\..\..\subversion\libsvn_repos\reporter.c:846: (apr_err=720032)

..\..\..\subversion\libsvn_repos\reporter.c:1077: (apr_err=720032)

..\..\..\subversion\libsvn_wc\update_editor.c:2159: (apr_err=720032)

..\..\..\subversion\libsvn_wc\adm_ops.c:2625: (apr_err=720032)

..\..\..\subversion\libsvn_wc\adm_files.c:723: (apr_err=720032)

..\..\..\subversion\libsvn_subr\io.c:1939: (apr_err=720032)

svn: Can't remove
'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db'

..\..\..\subversion\libsvn_subr\io.c:1807: (apr_err=720032)

svn: Can't remove file
'svn-test-work\working_copies\switch_tests-1\A\B\E\.svn\wc.db': The process
cannot access the file because it is being used by another process.  


	Bert
> 
> -Hyrum

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1865414

RE: r37413 and basic test 14

Posted by Bert Huijben <rh...@sharpsvn.net>.
> -----Original Message-----
> From: Hyrum K. Wright [mailto:hyrum_wright@mail.utexas.edu]
> Sent: dinsdag 21 april 2009 22:57
> To: Bert Huijben
> Cc: dev@subversion.tigris.org
> Subject: r37413 and basic test 14
> 
> Bert,
> I think that r37413 will solve the wc-ng windows problems with basic
> test 14, and possibly others.  Can you check and let me know how it
> goes?

My last status on Windows is:

At least one test FAILED, checking F:\svn-2008\dev\Debug\tests.log
FAIL:  update_tests.py 8: update after add/rm of deleted state
FAIL:  update_tests.py 34: update handles obstructing paths scheduled for
add
FAIL:  switch_tests.py 1: test some basic switching operations
FAIL:  switch_tests.py 2: commits after some basic switching operations
FAIL:  switch_tests.py 3: update wc that contains switched things
FAIL:  switch_tests.py 4: reverse update wc that contains switched things
FAIL:  switch_tests.py 5: update switched wc things to HEAD
FAIL:  switch_tests.py 6: reverse update switched wc things to an older rev
FAIL:  switch_tests.py 7: show logs for a switched file
FAIL:  switch_tests.py 25: basic tests to verify switch along with depth
FAIL:  switch_tests.py 30: tolerate deletion of a directory with local mods
FAIL:  merge_tests.py 4: some simple property merges
FAIL:  tree_conflict_tests.py 7: up/sw dir: del/rpl/mv onto del/rpl/mv
FAIL:  upgrade_tests.py 1: basic upgrade behavior
FAIL:  upgrade_tests.py 2: test upgrading from a 1.5-era working copy
Summary of test results:
  798 tests PASSED
  40 tests SKIPPED
  28 tests XFAILED
  15 tests FAILED

update_tests.py 8 is now a new wc.db deletion error (file in use: can't
delete); I haven't investigated this one further.

Update_tests.py 34 is the tree conflict discussed in the "bug in add/add
tree conflict?" thread on dev@s.t.o.

All the switch tests, the merge test and the tree conflict test go through
the same shortcut in update_editor.c (around line 2141).

Described in:
if (eb->switch_url)
    {
      /* The SVN_WC__LOG_DELETE_ENTRY log item will cause
       * svn_wc_remove_from_revision_control() to be run.  But that
       * function checks whether the deletion target's URL is child of
       * its parent directory's URL, and if it's not, then the entry
       * in parent won't be deleted (because presumably the child
       * represents a disjoint working copy, i.e., it is a wc_root).
       *
       * However, during a switch this works against us, because by
       * the time we get here, the parent's URL has already been
       * changed.  So we manually remove the child from revision
       * control after the delete-entry item has been written in the
       * parent's log, but before it is run, so the only work left for
       * the log item is to remove the entry in the parent directory.
       */

And it then continues with unversioning the directory without closing the
handles first.

	Bert

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1858851