[rancid] Re: CVS Problem? Rancid continually gives error "Assertion failed: key != NULL, file hash.c, line 317"

Austin Schutz tex at off.org
Mon Jun 9 05:29:50 UTC 2008

On Sun, Jun 08, 2008 at 11:09:28PM -0500, Max Palatnik wrote:
> cvs diff: Diffing .
> cvs diff: Diffing configs
> cvs diff: configs/cd-wohl-0.nts.wustl.edu is a new entry, no comparison 
> available
> cvs commit: Examining .
> cvs commit: Examining configs
> Assertion failed: key != NULL, file hash.c, line 317
> cvs [commit aborted]: received abort signal
> The process fails and it seems to start from scratch as if the switches 
> had never once been contacted.  It seems like this is a CVS problem and 
> I did a google search around and though the error pops up there doesn't 
> seem to be a clear fix.  I tried deleting and recreating the group but 
> that lead me to this same problem. I am by no means a CVS expert, so 
> please don't hesitate to mention even the silliest suggestions should 
> they apply here.

	Your log output starts at the 'cvs diff' part, which is after
the new routers have been contacted and right before it would be committed.
	The thing I think is interesting about this is the
"configs/cd-wohl-0.nts.wustl.edu is a new entry, no comparison" line. When
there is a new router it gets cvs added and committed _before_ the router
is polled and cvs diff run. Therefore when you reach this point it should
_not_ be a new entry.
	This implies that cvs add and commit failed above where the router
was added. You would have to look at your log to verify this.

	I would try a couple silly things:

	1. Remove any files in $CVSROOT/<group>/configs/Attic, just in case
something about a preexisting file is angering cvs. Also remove
$CVSROOT/<group>/configs/cd-wohl-0.nts.wustl.edu,v and any other failing
	2. Check your perms on $CVSROOT and all applicable subdirectories.
The fact cvs has been able to add but not commit the file is a little weird.
	3. Do a cvs up -dA in <group>. Actually, I would remove (or move)
<group> entirely and do cvs -d $CVSROOT checkout <group> to make sure you
are all fresh and new, in case you have mismatched entries in 
CVS/Entries (if you don't know what that is, don't worry about it).

	That should be good for a few moments of silliness. Also, when in
doubt create a tar file of $CVSROOT and <group> before you begin, in case
you foo something up while trying out these suggestions.


More information about the Rancid-discuss mailing list