You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Paul Wayper <pa...@anu.edu.au> on 2005/06/06 01:47:58 UTC

Different .svn directory breakage - Malformed XML

Hi there,

I'm working on a set of projects for which I need to keep the source 
code secure should the machine be stolen.  This means using CFS - for 
those unfamiliar with this, it runs a sort of NFS daemon which does the 
de/encryption in memory, and when you supply the correct pass phrase it 
attaches an NFS mount point to the decrypted version of your encrypted 
directory.  There are a whole set of associated risks which we've 
reduced and accepted.  Let's not go into the whys.

Anyway, the problem is that sometimes on a svn commit I get a message 
along the lines of:

Transmitting file data ..svn: Commit succeeded, but other errors follow:
svn: Error bumping revisions post-commit (details follow):
svn: Malformed XML: mismatched tag at line 33

Looking at the XML, it seems to basically get corrupted at that point - 
I'm not familiar with the XML structure in question but it either goes 
into the content of another file or it seems to skip a big chunk of XML 
and doesn't close tags correctly or similar.  I can only assume that 
there's some type of flocking going on that the virtual NFS server 
doesn't like.  The only solution I've found is to delete the entire 
directory and check it out again, since the commit has worked and the 
repository is up to date.  I've scanned through the archives and this 
seems to be different from the various other XML breakage mentioned on 
the list.

My question is: given my constraint that I use CFS, is there a way I can 
avoid this problem?  Or, alternately, is there a better way of 
rebuilding after this error?  I had assumed that the working copy used 
BerkeleyDB (which would have problems on NFS), but it looks like it 
doesn't at all.  Anything else I should check?

When it happens again I'll post a fragment of the XML around the 
offending line, if that would be helpful.

Thanks in advance,

Paul

-- 
-- Paul Wayper at ANU - +61 2 6125 0643


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

Re: Different .svn directory breakage - Malformed XML

Posted by Paul Wayper <pa...@anu.edu.au>.
John Szakmeister wrote:

>>Ah, here we are...
>>
>>[paulway@biojanus seqnamer]$ svn diff
>>svn: XML parser failed in ''
>>svn: Malformed XML: junk after document element at line 33
>>[paulway@biojanus seqnamer]$ lineify.pl --context 3 --line 33
>>.svn/entries 30:    prop-time="2005-06-02T05:46:15.000000Z"
>>31:    revision="6"/>
>>32: </wc-entries>
>>33:  0 if not defined $i;
>>34:     if      (ref $v eq '') {
>>35:         print indent($i), defined $v ? "'$v'\n" : "<undef>\n";
>>36:     } elsif (ref $v eq 'ARRAY') {
>>
>>Note that line 33 actually starts in the middle of a line of Perl,
>>which is what I'm working on in this repository.  This to me implies
>>that CFS, or NFS is not clearing its buffers when doing a write, and
>>the entries file should finish at line 32.  Am I right in these
>>guesses?
>>    
>>
>
>I doubt that's the case... we have no concept of what size NFS or CFS 
>buffers are, and we certainly don't read in chunks based on their size.  
>I'm curious where the offending text came from.  Is it part of your 
>post-commit hook?  Is it part of the commit that you made?
>
It's part of the code I was committing.  I was assuming that svn has 
written the file correctly at the correct size but some weird 
interaction between svn and NFS or CFS has caused the file size to grow 
to the end of the block.  Perhaps.  Next time I'll do an ls on the file 
size before and after any edits and verify whether it's on a block boundary.

>BTW, which 
>backend are you using?
>
The standard subversion client in the package for Fedora Core 3, X86-64 
version.  I just upgraded to 1.2.0 yesterday, prior to that I was 
running 1.1.4.

>  BDB requires the ability to mmap() some of it's 
>files, and that generally doesn't work over any remote FS implementation 
>(NFS, SMB, or otherwise).  FSFS is the only way to go for that sort of 
>setup.
>  
>
The backend is running on a remote machine but the repository storage is 
local to that machine.  I'm aware of the problems with NFS and BDB and 
amn't doing that.

Is the frontend using any kind of BDB?  I thought it was all XML and diffs?

Thanks in advance,

Paul

-- 
-- Paul Wayper at ANU - +61 2 6125 0643


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

Re: Different .svn directory breakage - Malformed XML

Posted by John Szakmeister <jo...@szakmeister.net>.
On Monday 06 June 2005 00:17, Paul Wayper wrote:
> Paul Wayper wrote:
> > Transmitting file data ..svn: Commit succeeded, but other errors
> > follow: svn: Error bumping revisions post-commit (details follow):
> > svn: Malformed XML: mismatched tag at line 33
> >
> > When it happens again I'll post a fragment of the XML around the
> > offending line, if that would be helpful.
>
> Ah, here we are...
>
> [paulway@biojanus seqnamer]$ svn diff
> svn: XML parser failed in ''
> svn: Malformed XML: junk after document element at line 33
> [paulway@biojanus seqnamer]$ lineify.pl --context 3 --line 33
> .svn/entries 30:    prop-time="2005-06-02T05:46:15.000000Z"
> 31:    revision="6"/>
> 32: </wc-entries>
> 33:  0 if not defined $i;
> 34:     if      (ref $v eq '') {
> 35:         print indent($i), defined $v ? "'$v'\n" : "<undef>\n";
> 36:     } elsif (ref $v eq 'ARRAY') {
>
> Note that line 33 actually starts in the middle of a line of Perl,
> which is what I'm working on in this repository.  This to me implies
> that CFS, or NFS is not clearing its buffers when doing a write, and
> the entries file should finish at line 32.  Am I right in these
> guesses?

I doubt that's the case... we have no concept of what size NFS or CFS 
buffers are, and we certainly don't read in chunks based on their size.  
I'm curious where the offending text came from.  Is it part of your 
post-commit hook?  Is it part of the commit that you made?  BTW, which 
backend are you using?  BDB requires the ability to mmap() some of it's 
files, and that generally doesn't work over any remote FS implementation 
(NFS, SMB, or otherwise).  FSFS is the only way to go for that sort of 
setup.

> I've now found that I can delete from after the error line to the end
> of file and it works.  So that's that problem cleaned up...

-John

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

Re: Different .svn directory breakage - Malformed XML

Posted by Paul Wayper <pa...@anu.edu.au>.
Paul Wayper wrote:

> Transmitting file data ..svn: Commit succeeded, but other errors follow:
> svn: Error bumping revisions post-commit (details follow):
> svn: Malformed XML: mismatched tag at line 33
>
> When it happens again I'll post a fragment of the XML around the 
> offending line, if that would be helpful.

Ah, here we are...

[paulway@biojanus seqnamer]$ svn diff
svn: XML parser failed in ''
svn: Malformed XML: junk after document element at line 33
[paulway@biojanus seqnamer]$ lineify.pl --context 3 --line 33 .svn/entries
30:    prop-time="2005-06-02T05:46:15.000000Z"
31:    revision="6"/>
32: </wc-entries>
33:  0 if not defined $i;
34:     if      (ref $v eq '') {
35:         print indent($i), defined $v ? "'$v'\n" : "<undef>\n";
36:     } elsif (ref $v eq 'ARRAY') {

Note that line 33 actually starts in the middle of a line of Perl, which 
is what I'm working on in this repository.  This to me implies that CFS, 
or NFS is not clearing its buffers when doing a write, and the entries 
file should finish at line 32.  Am I right in these guesses?

I've now found that I can delete from after the error line to the end of 
file and it works.  So that's that problem cleaned up...

Thanks anyway,

Paul

-- 
-- Paul Wayper at ANU - +61 2 6125 0643


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