pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/40229: NetBSD pkgsrc/devel/subversion-base - NFS-mounted repository failures



>Number:         40229
>Category:       pkg
>Synopsis:       NetBSD pkgsrc/devel/subversion-base - NFS-mounted repository 
>failures
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Dec 19 17:55:00 +0000 2008
>Originator:     J.A. Neitzel
>Release:        NetBSD 4.0.1_PATCH
>Organization:
not applicable
>Environment:
NetBSD haven.local 4.0.1_PATCH NetBSD 4.0.1_PATCH (GENERIC) #0: Mon Dec  8 
01:39:56 UTC 2008  
jneitzel%serenity.local@localhost:/usr/obj/sys/arch/amd64/compile/GENERIC amd64
>Description:
Operations on NFS-mounted subversion repositories fail.  This causes
subversion to be unreliable (and unusable) in such a context.  This
problematic behavior is new since subversion-1.5.x; subversion-1.4.x
worked as expected w/ NFS-mounted subversion repositories.

NOTE:
1) subversion repositories on locally-mounted FFS filesystems seem to
work as expected.

2) The only workaround is to not serve subversion repositories via NFS,
but this may not be a valid workaround for all users.

3) This behavior has also been observed on NetBSD 2.1.0_STABLE alpha,
but it has apparently never been reported.
>How-To-Repeat:
In the following description...  Even though subversion allowed me
to import an unversioned tree, it did it incorrectly.  Upon checking
out a working copy of the imported tree, only 3 of the 10 files
(all of which were non-empty) contained the pre-imported content. 
The other 7 were now empty files.

In addition, many of the files in the .svn directory were empty 
files.  This in turn made the working copy unusable.

On an NFS client, do the following (replace /home/jneitzel w/ an
appropriate value as needed):

% mkdir ~/rep ; chmod 2775 ~/rep ; svnadmin create ~/rep

% svn mkdir file:///home/jneitzel/rep/stuff ; rm -f svn-commit.tmp
svn: Can't read directory '/home/jneitzel/rep/db/transactions/0-1.txn':\
        Partial results are valid but processing is incomplete
svn: Your commit message was left in a temporary file:
svn:    'svn-commit.tmp'

% svn ls -v file:///home/jneitzel/rep
      1 jneitzel              Dec 19 01:32 ./
      1 jneitzel              Dec 19 01:32 stuff/

% svn log file:///home/jneitzel/rep/stuff
------------------------------------------------------------------------
r1 | jneitzel | 2008-12-19 01:32:08 +0000 (Fri, 19 Dec 2008) | 2 lines

Add a root directory for the stuff project.
                                      
------------------------------------------------------------------------

% svn import stuff file:///home/jneitzel/rep/stuff/trunk               
Adding         stuff/0                
Adding         stuff/1                
Adding         stuff/2                
Adding         stuff/3                
svn: Can't get entries of non-directory
svn: Your commit message was left in a temporary file:                 
svn:    'svn-commit.tmp'              
                                      
% svn import --force stuff file:///home/jneitzel/rep/stuff/trunk       
Adding         stuff/0                
Adding         stuff/1                
Adding         stuff/2                
Adding         stuff/3                
Adding         stuff/4                
Adding         stuff/5                
Adding         stuff/6                
Adding         stuff/7                
Adding         stuff/8                
Adding         stuff/9                
svn: Can't read directory '/home/jneitzel/rep/db/transactions/1-3.txn':\
        Partial results are valid but processing is incomplete         
svn: Your commit message was left in a temporary file:                 
svn:    'svn-commit.2.tmp'            
                                      
% svn ls -v file:///home/jneitzel/rep/stuff/trunk                      
      2 jneitzel              Dec 19 05:40 ./                          
      2 jneitzel            0 Dec 19 05:40 0                           
      2 jneitzel            4 Dec 19 05:40 1                           
      2 jneitzel            4 Dec 19 05:40 2                           
      2 jneitzel            6 Dec 19 05:40 3                           
      2 jneitzel            5 Dec 19 05:40 4                           
      2 jneitzel            5 Dec 19 05:40 5                           
      2 jneitzel            4 Dec 19 05:40 6                           
      2 jneitzel            6 Dec 19 05:40 7                           
      2 jneitzel            6 Dec 19 05:40 8                           
      2 jneitzel            5 Dec 19 05:40 9                           
                                      
% svn log file:///home/jneitzel/rep/stuff/trunk                        
------------------------------------------------------------------------
r2 | jneitzel | 2008-12-19 05:40:10 +0000 (Fri, 19 Dec 2008) | 2 lines 
                                      
Initial import of stuff trunk.        
                                      
------------------------------------------------------------------------

...
Otherwise, try to use the repository as usual.
Watch it fail.
>Fix:
Unknown, but changes to the following file between 1.4.x and 1.5.x
may be partly to blame:

work/subversion-1.5.4/subversion/libsvn_subr/io.c

...
The comments and code for svn_io_remove_dir2() may help to determine
what should be done?



Home | Main Index | Thread Index | Old Index