[Bug 3753] New: Sometimes wrong ADLER32 in revlog in same file gives "Incorrect data check" on hg verify
mercurial-bugs at selenic.com
mercurial-bugs at selenic.com
Mon Jan 7 02:50:55 CST 2013
http://bz.selenic.com/show_bug.cgi?id=3753
Priority: normal
Bug ID: 3753
CC: mercurial-devel at selenic.com
Assignee: bugzilla at selenic.com
Summary: Sometimes wrong ADLER32 in revlog in same file gives
"Incorrect data check" on hg verify
Severity: bug
Classification: Unclassified
OS: Windows
Reporter: bzclff78 at live.com
Hardware: PC
Status: UNCONFIRMED
Version: 2.4.1
Component: Mercurial
Product: Mercurial
Created attachment 1702
--> http://bz.selenic.com/attachment.cgi?id=1702&action=edit
Good revlog, bad revlog, source file
Hello Mercurial team,
I'm facing a very annoying issue, when working on my repository I would start
get exceptions about "Incorrect data check".
My environment is:
Windows 8 32-bit
Mercurial 2.4.1, installed using the website supplied 32-bit of TortoiseHg
2.6.1 (the MSI installer).
Note: I also have a locally installed copy of Python 2.7.2.5 (ActiveState
distribution) in C:\Python27 and C:\Python27 is prepended to my PATH
environment variable.
The errors are consistently in a small subset of files (that happen to be
packed minified javascript files), but it seems to happen at random on
manipulation of the repository.
I have CHKDSK /F the drive, done a full surface scan and checked my RAM and I
am quite sure it is not a hardware problem.
At one instant of this corruption, I examined the revlog (.i) file of both the
"correct" (passes hg verify) and "corrupt" ("incorrect data check") revlog.
The files are byte-for-byte identical except for the last 4 bytes. On further
digging in Hg source code, I see zlib.compress and think that this might be the
ADLER32 checksum.
hg debugindex on the good file gives a meaningful output, on the bad file gives
nothing:
rev offset length base linkrev nodeid p1 p2
0 0 852 0 3 fb2223388488 000000000000 000000000000
I saw a bug report on some zlib implementations that some types of files,
depending on the buffer size and the file contents may cause some integer in
the ADLER32 checksum calculator to overflow, could this be the problem ?
For reference I have attached the bad revlog, the good revlog and the source
file (the corruption is in the 3rd changeset).
The file itself has never been changed since first imported to the history, the
first revision is the file itself, the second revision is its path being
renamed.
(ezpsadm/ajaxfilemanager/jscripts/ajaxtexteditor_c.js (renamed from
storeadmin/ajaxfilemanager/jscripts/ajaxtexteditor_c.js))
Unfortunately, I can't provide the whole repository since it is part of a
commercial project, but I'll try to co-operate as much as I can.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list