[tex-live] mpost assertion failure
Karl Berry
karl at freefriends.org
Wed May 22 15:47:55 CEST 2013
[Taco, we need you. Sorry.]
> mpost: ../../../texk/web2c/mplibdir/mp.w:2968:
> mp_free_value_node: Assertion `p->has_number==2' failed.
I can reproduce that, with your environment settings
MALLOC_CHECK_=3
MALLOC_PERTURB_=69
In your tarball (which I put at
http://tug.org/~karl/mpost-failure.tgz), there is the script
call-mpost.sh with these three lines:
mpost -mem=mf2pt1 \
-progname=mpost \
'\mode:=localfont; mag:=100; bpppix 0.02; nonstopmode; input feta-noteheads11.mf'
When I run that in your unpacked directory under i386-linux CentOS 5.9
(on tug.org) and the malloc envvars above, I get the assertion failure.
Without them, I get a double-free error from glibc:
*** glibc detected *** mpost: double free or corruption (!prev): 0x099db3b0 ***
which I suppose is likely some earlier symptom of the same problem.
Then I tried running it on sparc-solaris (compiled with gcc-4.5.0).
Your example worked fine. Of course, there are no malloc debugging
envvars there, so who knows.
So I tried rebuilding a new i386-linux binary without optimization.
Same result. Both of those were with the stock gcc-4.6.3.
Then I tried rebuilding in the same Debian Sarge chroot with gcc-3.3.5
as I used last year, without optimization, and still got the same
failures.
I'm running the 4.6.3 unoptimized binary under gdb, with MPINPUTS=. and
MFINPUTS=. (I copied in plain.mp and mfplain.mp from
texmf-dist/metapost/base/ to the working directory), but it's not
exactly obvious what is going on. I put the i386-linux binary I'm
debugging with at http://tug.org/~karl/mpost.gz.
Taco, can you help?
Thanks,
k
P.S. As you probably know, mpost hasn't supported mem files for a couple
of years, so this is just reading mf2pt1.mp. But that doesn't matter to
the issue at hand.
More information about the tex-live
mailing list