I've just started to experience this a week ago and I've tried a number of things, but it keeps happening. It starts with a failed commit error message:
Can't set position pointer in file '(revision path)': An attempt was made to move the file pointer before the beginning of the file.
Upon getting it the first time, I found some resources that indicated some kind of corruption in the latest revision. I looked into how to delete a revision, and I followed this process to create a new repo and dump the non-corrupt revisions into it. That was successful but quite a burdensome process to have to repeat over and over.
The second time it happened, I found this resource which explained how to delete the corrupt revision directly in the repo folder structure and set the current revision back to the prior one. That worked and was quicker than the aforementioned method, but still not something I wish to keep repeating.
Then it happened again today.
Each of these times I've used svnadmin verify
and gotten this (with different revision numbers each time obviously):
svnadmin verify (repo path) * Verifying metadata at revision 0 ... * Error verifying repository metadata. svnadmin: E160058: l2p index entry PHYS -1does not match p2l index value LOG r391:i10 for PHYS 1407
I googled that error but literally nothing exists, no results whatsoever for that error code or the other junk in that cryptic message.
Please help me figure out how to stop this from happening.
EDIT: After successfully committing something like 8 more revisions, I got a new error this time:
Item index 69 too large in revision 398
svnadmin verify reports:
Unexpected end of index file (repo path)/db/revs/0/396 at offset 0x43c8.
Here is what is at that offset. It doesn't seem like the end of anything:
Research also indicates corruption. What in the world is happening?