You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by kf...@collab.net on 2003/11/04 15:06:41 UTC

Re: svn rev 7611: FAIL (i686-pc-linux-gnu shared ra_local)

> Running all tests in merge_tests.py...FAILURE
> Running all tests in stat_tests.py...success
> Running all tests in trans_tests.py...success
> Running all tests in autoprop_tests.py...success
> Running all tests in svnadmin_tests.py...success
> Running all tests in svnlook_tests.py...success
> Running all tests in svnversion_tests.py...success
> At least one test FAILED, checking /home/brane/svn/obj-sh/tests.log
> FAIL:  merge_tests.py 2: merge and add new files/dirs with history
> FAIL:  merge_tests.py 8: merging similar trees ancestrally unrelated
> FAIL:  merge_tests.py 10: merge change into unchanged binary file
> FAIL:  merge_tests.py 12: diff after merge that creates a new file
> FAIL:  merge_tests.py 13: merge should skip over unversioned obstructions
> make: *** [check] Error 1
> Complete log saved in /home/brane/svn/LOG_svn_check_shared_ra_local.7611.failed
> FAIL: make check

It looks like all these are failing due to a combination of the new
tmpfile-finding code and lack of support for cross-device renames?
The failures all look the same, here's merge_tests.py 2 for example:

   CMD: svn "merge" "-r" "1:2" blah blah blah
   svn: Invalid cross-device link
   svn: install_file: move failed
   svn: svn_io_file_rename: can't move '/tmp/tmp.2' to 'working_copies/merge_tests-2/A/C/Q/.svn/tmp/text-base/bar.svn-base'
   EXCEPTION: Failure: ['svn: Invalid cross-device link\n', 'svn: install_file: move failed\n', "svn: svn_io_file_rename: can't move '/tmp/tmp.2' to 'working_copies/merge_tests-2/A/C/Q/.svn/tmp/text-base/bar.svn-base'\n"]
   FAIL:  merge_tests.py 2: merge and add new files/dirs with history

I'm guessing the solution is for svn_io_file_rename() to catch this
error and handle it by doing a copy (at the cost of atomicity).
Thoughts?

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn rev 7611: FAIL (i686-pc-linux-gnu shared ra_local)

Posted by "C. Michael Pilato" <cm...@collab.net>.
kfogel@collab.net writes:

> > Running all tests in merge_tests.py...FAILURE
> > Running all tests in stat_tests.py...success
> > Running all tests in trans_tests.py...success
> > Running all tests in autoprop_tests.py...success
> > Running all tests in svnadmin_tests.py...success
> > Running all tests in svnlook_tests.py...success
> > Running all tests in svnversion_tests.py...success
> > At least one test FAILED, checking /home/brane/svn/obj-sh/tests.log
> > FAIL:  merge_tests.py 2: merge and add new files/dirs with history
> > FAIL:  merge_tests.py 8: merging similar trees ancestrally unrelated
> > FAIL:  merge_tests.py 10: merge change into unchanged binary file
> > FAIL:  merge_tests.py 12: diff after merge that creates a new file
> > FAIL:  merge_tests.py 13: merge should skip over unversioned obstructions
> > make: *** [check] Error 1
> > Complete log saved in /home/brane/svn/LOG_svn_check_shared_ra_local.7611.failed
> > FAIL: make check
> 
> It looks like all these are failing due to a combination of the new
> tmpfile-finding code and lack of support for cross-device renames?
> The failures all look the same, here's merge_tests.py 2 for example:
> 
>    CMD: svn "merge" "-r" "1:2" blah blah blah
>    svn: Invalid cross-device link
>    svn: install_file: move failed
>    svn: svn_io_file_rename: can't move '/tmp/tmp.2' to 'working_copies/merge_tests-2/A/C/Q/.svn/tmp/text-base/bar.svn-base'
>    EXCEPTION: Failure: ['svn: Invalid cross-device link\n', 'svn: install_file: move failed\n', "svn: svn_io_file_rename: can't move '/tmp/tmp.2' to 'working_copies/merge_tests-2/A/C/Q/.svn/tmp/text-base/bar.svn-base'\n"]
>    FAIL:  merge_tests.py 2: merge and add new files/dirs with history
> 
> I'm guessing the solution is for svn_io_file_rename() to catch this
> error and handle it by doing a copy (at the cost of atomicity).
> Thoughts?

After thinking more about this problem (and talking to Karl), I
realized something that hadn't occured to me before -- I can't think
of a single place in our code where we need to *both* use
svn_io_temp_dir() and rename those tmpfiles.  

The reason we went down the svn_io_temp_dir() path was to ask the
system for a safe place to write temporary files for Subversion
operations which should be able to run on a read-only working copy.
If an operation requires write access to a working copy, then it can
use the .svn/tmp directory in that working copy for its temporary
directory.

Diff is a read-only operation.  Merge, on the other, is not, and
therefore should not be using the svn_io_temp_dir() code.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

RE: svn rev 7611: FAIL (i686-pc-linux-gnu shared ra_local)

Posted by Sander Striker <st...@apache.org>.
> From: Philip Martin [mailto:philip@codematters.co.uk]
> Sent: Tuesday, November 04, 2003 5:13 PM

> Since merge is modifying the working copy it should be using .svn/tmp,
> and not APR's tempdir.  That would fix the rename problem without
> introducing any atomicity problems.  I guess the only reason merge
> uses APR's tempdir is that it is reusing the diff -rX:Y code which
> doesn't have a working copy to use.  Since merge obviously does have a
> working copy it should use it.

Agreed.  I'll go look into that.

Sander

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn rev 7611: FAIL (i686-pc-linux-gnu shared ra_local)

Posted by Philip Martin <ph...@codematters.co.uk>.
kfogel@collab.net writes:

>    CMD: svn "merge" "-r" "1:2" blah blah blah
>    svn: Invalid cross-device link
>    svn: install_file: move failed
>    svn: svn_io_file_rename: can't move '/tmp/tmp.2' to 'working_copies/merge_tests-2/A/C/Q/.svn/tmp/text-base/bar.svn-base'
>    EXCEPTION: Failure: ['svn: Invalid cross-device link\n', 'svn: install_file: move failed\n', "svn: svn_io_file_rename: can't move '/tmp/tmp.2' to 'working_copies/merge_tests-2/A/C/Q/.svn/tmp/text-base/bar.svn-base'\n"]
>    FAIL:  merge_tests.py 2: merge and add new files/dirs with history
>
> I'm guessing the solution is for svn_io_file_rename() to catch this
> error and handle it by doing a copy (at the cost of atomicity).
> Thoughts?

svn_io_file_rename may well need some changes, but I don't think it's
the best solution in this particular case.

Since merge is modifying the working copy it should be using .svn/tmp,
and not APR's tempdir.  That would fix the rename problem without
introducing any atomicity problems.  I guess the only reason merge
uses APR's tempdir is that it is reusing the diff -rX:Y code which
doesn't have a working copy to use.  Since merge obviously does have a
working copy it should use it.

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org