Mercurial problem with large binary changesets

Francois-Denis Gonthier fdgonthier at kryptiva.com
Wed May 30 07:01:01 CDT 2007


----- KRYPTIVA PACKAGED MESSAGE -----
PACKAGING TYPE: SIGNED

 > It's possible that if your template contains a huge number of LF
 > characters, memory usage could be especially ugly. The delta
 > algorithm is "line-based", even for "binary" files. Can you count
 > them?

wc -l reports 173312 lines.

 > Alternately, you can hack mercurial/bdiff.c to report how big its
 > various mallocs are. Line 78 is the most likely culprit.

Allocations in bdiff.c:78 does not correlate well with the behavior I
observe.  There are a few medium-sized allocation there:

2007-05-30 11:41:58.195043 - bdiff: 107560
2007-05-30 11:42:00.009550 - bdiff: 141280
2007-05-30 11:42:02.212016 - bdiff: 3026560

I can't interpret if this is excessive or not.

I see the problem might be related to decompression.  From the stack trace:

File "/var/lib/python-support/python2.4/mercurial/revlog.py", line 66,
in decompress
      if t == 'x': return zlib.decompress(bin)

Is there a way to debug that?


----- KRYPTIVA SIGNED MESSAGE -----
This email claims to have been packaged by Kryptiva.
To process this email and authenticate its origin, get
the free plugin from:
http://www.kryptiva.com/downloads

----- KRYPTIVA SIGNATURE START -----
AvWVqAAAAAIAAAABAAAAAAAATiACAQAAAAC3AQAIAAAAAwAAAAECABS3FuvxegTt63v7UWCF
iSdtKgVqvAMAFNtYnPf/czq1EyEfvnKRBT4kXaMpBAAUPeBFYOVSOO06L2Fx5nv/SqsjQBQF
ABTaOaPuXmtLDTJVv++VYBiQr9gHCQYAFNcZh+doKHiXksUamShm9lxTMLNaBwAUcxAfshzW
betQOUw1fQ1DzvIPMroRABgAAAAAAABOIEZdZ3wADapvAAAAAAAAEJ0TAAQAAAAAAAAAggP/
Rpo8phGxn8PazLuEp9hsMRbhaD+FIeSSOTKhSBcqGD8xucYwbum/Gj3zH+cKeLBTzpKNUpGd
0XNd8+oKGt7VOXxqaE1dh+FbikaPZDlg+3hZ98YaKT6h1d6Q7auhpYC924DuhNb4kb/hvVwp
EgfpzvUSxMw18QjanmtPHwM7pSs=
----- KRYPTIVA SIGNATURE END -----


More information about the Mercurial mailing list