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

Re: 1.7.1, Build 22161 line 672: assertion failed (checksum != NULL)

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Wed, 16 Nov 2011 02:13:55 +0000

Ethan Bradford <ethan.bradford_at_swype.com> writes:

> I don't know what the server version is. cURL won't accept an svn: URL.

Ah! svnserve. Then "telnet server.com 3690" will get the handshake
which will tell us something.

> Using the repo browser I can see the whole history. There are just two
> versions of this file, none more recent than 3323. I think 3936 is a red
> herring -- that was perhaps the tip revision for the whole repository when
> the update was attempted. (The current tip is 4013.)

Yes. 3936 is the revision to which you were updating.

> I hate to confess to such absent mindedness, but I may have "svn delete"ed
> this file. I see that I don't have a local copy of it, which supports that
> theory. If I did that, I didn't commit the change -- the repository still
> has the file.

I'll have to think about that. The nodes row was presence=normal. I
wonder if the update was creating a tree conflict? Unlikely if there
are no more recent changes than 3323.

sqlite3 .svn/wc.db "select tree_conflict_data from actual_node"

>> Thanks for your help so far!
>>
>
> I'm happy to help, and I appreciate your time. Just to be clear, I
> wouldn't dream of taking so much of your time just to solve my local
> problem. You're digging into this to figure out the bug with change to the
> 1.7.1 version (or maybe "svn update" within the 1.7.1 version), right?

Yes.

> Since I will likely need to do another checkout anyhow, I'm happy to try
> experiments which might be destructive to my local copy.

We may be able to recover it. Please make a copy of the wc.db file
first. The following instructions assume there is no tree conflict.

First we look at the workqueue, to confirm there is just one row.

sqlite3 .svn/wc.db "select * from work_queue"

Next look at the parent dir:

sqlite3 .svn/wc.db "select op_depth, local_relpath, presence from nodes where local_relpath='DBBuild/Wordlists/Belarusian'"

to confirm there is just one row with op-depth=0 and presence=normal or
presence=incomplete. If the presence is something else then stop, the
instuctions below do not apply.

If presence is normal then set the parent dir to presence=incomplete:

sqlite3 .svn/wc.db "update nodes set presence='incomplete' where local_relpath='DBBuild/Wordlists/Belarusian'"

Now remove the corrupt file row:

sqlite3 .svn/wc.db "delete from nodes where local_relpath='DBBuild/Wordlists/Belarusian/BelarusianForceFreq.txt[MOVED]'"
sqlite3 .svn/wc.db "delete from actual_node where local_relpath='DBBuild/Wordlists/Belarusian/BelarusianForceFreq.txt[MOVED]'"

Remove the now unversioned file (except you say it doesn't exist so skip
this step).

rm 'DBBuild/Wordlists/Belarusian/BelarusianForceFreq.txt[MOVED]'

Remove the workqueue:

sqlite3 .svn/wc.db "delete from work_queue"

Run cleanup to remove locks:

svn cleanup

The working copy should be fixed; the next update will pull the missing
file.

-- 
Philip
Received on 2011-11-16 03:14:33 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.