[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Reference to non-existent node

From: Philip Martin <philip_at_codematters.co.uk>
Date: Tue, 20 Feb 2018 12:09:32 +0000

Johan Corveleyn <jcorvel_at_gmail.com> writes:

>> [Sat Feb 10 03:25:30.640591 2018] [dav:error] [pid 2966] [client
>> X.X.X.X:61712] Could not MERGE resource "/svn/repo/!svn/txn/463-e8" into
>> "/svn/repo/repofolder". [500, #0]
>> [Sat Feb 10 03:25:30.642889 2018] [dav:error] [pid 2966] [client
>> X.X.X.X:61712] An error occurred while committing the transaction. [500,
>> #160014]
>> [Sat Feb 10 03:25:30.643003 2018] [dav:error] [pid 2966] [client
>> X.X.X.X:61712] Reference to non-existent node '_1bqk.0.t463-e8' in
>> filesystem '/mnt/vc/svn/repo/db' [500, #160014]
>>
>> The client side gives:
>>
>> done
>> Committing transaction...
>> svn: E175012: Commit failed (details follow):
>> svn: E175012: Connection timed out
>> svn: E200042: Additional errors:
>> svn: E175002: Unexpected server error 500 'Internal Server Error' on
>> '/svn/repo/!svn/txn/463-e8'
>>
>> First I thought this was a permission issue. So I did this on the server:
>>
>> su - www-data -s /bin/bash -c "svnadmin rmtxns /mnt/vc/svn/repo/ 463-e8"
>> Transaction '463-e8' removed.
>>
>> No error whatsoever. Apache runs as `www-data`. Following permissions are
>> set:
>>
>> chown www-data:www-data /mnt/vc -R
>> chmod 0774 /mnt/vc -R

The server error suggests that at least one of the files that make up
the transaction is missing from disk when the MERGE is attempted.
That's odd, it is not a commonly seen error.

Even more odd is that you show "svnadmin rmtxns" succeeding. This is
odd, very odd, because when a MERGE fails the server code in mod_dav_svn
reacts by removing the transaction from disk. In addition, when the
client gets the failed MERGE repsonse it also reacts and sends a DELETE
to remove the transaction from disk; this DELETE usually fails with 404:

 [dav:error] [pid 13161:tid 140441001391872] [client ::1:44218] Could not fetch resource information. [404, #0]
 [dav:error] [pid 13161:tid 140441001391872] [client ::1:44218] Named transaction doesn't exist. [404, #175002]

Do you see the DELETE in the log after the failed MERGE? Was there an
error?

After a failed MERGE an attempt to run "svnadmin rmtxns" manually would
normally fail with:

 E160007: No such transaction '463-e8'

but your attempt succeeded so at least some of the transaction was
present on disk.

So it looks like several strange things have happened:

 - one of the files on disk that make up the transaction is missing
   causing the MERGE to fail

 - both automatic attempts to delete the transaction on disk have failed
   causing the transaction to persist on disk

 - whatever caused the transaction to persist on disk doesn't prevent
   "svnadmin rmtxns" from working

The "_1bqk" implies that this transaction affects over 60,000 nodes,
this is large but Subversion should handle it.

What sort of filesystem hosts the repository?

-- 
Philip
Received on 2018-02-20 13:09:47 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.