Bug 602885

Summary: [abrt] crash in mercurial-1.5.3-1.fc13: revlog.py:112:decompress:error: Error -3 while decompressing data: incorrect data check
Product: [Fedora] Fedora Reporter: Jeremiah Savage <jeremiahsavage>
Component: mercurialAssignee: Neal Becker <ndbecker2>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 13CC: dennis, jzeleny, mads, mmcgrath, ndbecker2
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: abrt_hash:937f3dd1
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-06-18 00:07:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
File: backtrace none

Description Jeremiah Savage 2010-06-10 22:57:45 UTC
abrt 1.1.1 detected a crash.

architecture: x86_64
Attached file: backtrace
cmdline: /usr/bin/python /usr/bin/hg clone https://bmi-thesis.googlecode.com/hg bmi-thesis
component: mercurial
executable: /usr/bin/hg
kernel: 2.6.33.5-112.fc13.x86_64
package: mercurial-1.5.3-1.fc13
reason: revlog.py:112:decompress:error: Error -3 while decompressing data: incorrect data check
release: Fedora release 13 (Goddard)

comment
-----
This was the first 'hg' command run on a f13 system installed today.
I was cloning a repository from googlecode

How to reproduce
-----
1. hg clone https://bmi-thesis.googlecode.com/hg bmi-thesis

Comment 1 Jeremiah Savage 2010-06-10 22:57:47 UTC
Created attachment 423085 [details]
File: backtrace

Comment 2 Mads Kiilerich 2010-06-11 08:56:33 UTC
I got almost the same crash with tortoisehg, tracked in bug 601310. This report indicates that the problem is in Mercurial.

Jeremiah, can you reproduce the problem? I can't.

Comment 3 Neal Becker 2010-06-11 11:30:14 UTC
Could you try 1.5.4 in updates-testing?

Comment 4 Jeremiah Savage 2010-06-12 01:54:07 UTC
I can still repeat the problem every time I execute with 1.5.4:
$ hg --version
Mercurial Distributed SCM (version 1.5.4)


$ hg clone https://bmi-thesis.googlecode.com/hg bmi-thesis
requesting all changes
adding changesets
adding manifests
adding file changes
transaction abort!
rollback completed
abort: consistency error adding group!

I tried this three times and received the above error on the 1st and 3rd, but on the second try, I got a different error:

$ hg clone https://bmi-thesis.googlecode.com/hg bmi-thesis
requesting all changes
adding changesets
adding manifests
adding file changes
added 182 changesets with 461 changes to 202 files
updating to branch default
** unknown exception encountered, details follow
** report bug details to http://mercurial.selenic.com/bts/
** or mercurial
** Python 2.6.4 (r264:75706, Apr  1 2010, 02:55:51) [GCC 4.4.3 20100226 (Red Hat 4.4.3-8)]
** Mercurial Distributed SCM (version 1.5.4)
** Extensions loaded: 
Traceback (most recent call last):
  File "/usr/bin/hg", line 27, in <module>
    mercurial.dispatch.run()
  File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 16, in run
    sys.exit(dispatch(sys.argv[1:]))
  File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 30, in dispatch
    return _runcatch(u, args)
  File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 50, in _runcatch
    return _dispatch(ui, args)
  File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 471, in _dispatch
    return runcommand(lui, repo, cmd, fullargs, ui, options, d)
  File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 341, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 522, in _runcommand
    return checkargs()
  File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 476, in checkargs
    return cmdfunc()
  File "/usr/lib64/python2.6/site-packages/mercurial/dispatch.py", line 470, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib64/python2.6/site-packages/mercurial/util.py", line 401, in check
    return func(*args, **kwargs)
  File "/usr/lib64/python2.6/site-packages/mercurial/commands.py", line 681, in clone
    branch=opts.get('branch'))
  File "/usr/lib64/python2.6/site-packages/mercurial/hg.py", line 349, in clone
    _update(dest_repo, uprev)
  File "/usr/lib64/python2.6/site-packages/mercurial/hg.py", line 363, in update
    stats = _merge.update(repo, node, False, False, None)
  File "/usr/lib64/python2.6/site-packages/mercurial/merge.py", line 507, in update
    stats = applyupdates(repo, action, wc, p2)
  File "/usr/lib64/python2.6/site-packages/mercurial/merge.py", line 319, in applyupdates
    t = mctx.filectx(f).data()
  File "/usr/lib64/python2.6/site-packages/mercurial/context.py", line 339, in data
    return self._filelog.read(self._filenode)
  File "/usr/lib64/python2.6/site-packages/mercurial/filelog.py", line 16, in read
    t = self.revision(node)
  File "/usr/lib64/python2.6/site-packages/mercurial/revlog.py", line 1003, in revision
    text = self._chunk(base)
  File "/usr/lib64/python2.6/site-packages/mercurial/revlog.py", line 965, in _chunk
    return decompress(self._chunkraw(rev, rev))
  File "/usr/lib64/python2.6/site-packages/mercurial/revlog.py", line 112, in decompress
    return _decompress(bin)
zlib.error: Error -3 while decompressing data: incorrect data check

Comment 5 Jeremiah Savage 2010-06-12 02:01:08 UTC
I just ran it again, changing the command slightly, so as to not rename the directry, and received a new error. I just added 4GB of extra memory to the machine before installing F13 yesterday, so now I'm suspecting the RAM might be bad. I'll run memcheck to find out.

$ hg clone https://bmi-thesis.googlecode.com/hg 
destination directory: hg
requesting all changes
adding changesets
adding manifests
adding file changes
added 182 changesets with 461 changes to 202 files
updating to branch default
156 files updated, 0 files merged, 0 files removed, 0 files unresolved
Segmentation fault (core dumped)

warning: core file may not match specified executable file.
[New Thread 8386]
Core was generated by `/usr/bin/python /usr/bin/hg clone https://bmi-thesis.googlecode.com/hg'.
Program terminated with signal 11, Segmentation fault.
#0  0x000000372cc59808 in code_dealloc (co=0x7fa75be088a0)
    at Objects/codeobject.c:266
266	Objects/codeobject.c: No such file or directory.
	in Objects/codeobject.c

Comment 6 Mads Kiilerich 2010-06-12 10:29:47 UTC
It sounds a lot like random memory corruption, either due to bad hardware or some very strange things happening in the kernel ... or in Python or Mercurial.

Did it work before you upgraded to F13?
Can you try with some older versions of Mercurial to find out if and when a regression was introduced? For example like this:

hg clone http://selenic.com/hg#stable hg-clone
cd hg-clone
hg up 1.5
make local && ./hg clone https://bmi-thesis.googlecode.com/hg /tmp/bim-thesis
hg up 1.5.2
...

You might have to run "yum-builddep mercurial" as root first.

Comment 7 Jeremiah Savage 2010-06-18 00:07:11 UTC
The problem was bad memory, as revealed by Memtest86+

I took out the offending RAM, and now can not replicate the problem, so I'm closing this bug report.

Excuse the false alarm; I've learned to always check new memory.