[tlbuild] TeX Live 2010 Regression Test Failure on OpenBSD
Edd Barrett
vext01 at gmail.com
Tue Jun 15 23:31:31 CEST 2010
On Tue, Jun 15, 2010 at 09:19:09PM +0100, Edd Barrett wrote:
> Convininently, when I initially reported it, I was using i386/gcc3.3.4. So it
> crashed then but also on amd64/gcc4.2.
Oh that is truly awful spelling. Sorry..
> I have not tried turning off the
> optimiser, but that will be my next course of action.
I still get this with -O0 with GCC 4.2.1 on amd64. Here is the stack:
---8<---
(gdb) run -ovp2ovf -verbose ../../../../texk/web2c/omegafonts/tests/OCherokee
tests/OCherokee tests/OCherokee
Starting program: /home/texlive/source/Work/texk/web2c/omegafonts/omfonts
-ovp2ovf -verbose ../../../../texk/web2c/omegafonts/tests/OCherokee
tests/OCherokee tests/OCherokee
Program received signal SIGBUS, Bus error.
0x0000000000403396 in set_char_tag (c=5092, tag=1)
at ../../../../texk/web2c/omegafonts/char_routines.c:576
576 planes[c/PLANE][c%PLANE]->tag = tag;
(gdb) bt full
#0 0x0000000000403396 in set_char_tag (c=5092, tag=1)
at ../../../../texk/web2c/omegafonts/char_routines.c:576
No locals.
#1 0x0000000000408f9d in set_label_command (c=5092)
at ../../../../texk/web2c/omegafonts/ligkern_routines.c:72
No locals.
#2 0x000000000040e461 in yyparse () at pl-parser.y:258
yym = 2
yyn = 46
yystate = 99
#3 0x000000000040b44d in main (argc=6, argv=0x7f7ffffe3210)
at ../../../../texk/web2c/omegafonts/omfonts.c:305
getopt_return_val = -1
option_index = 0
---8<---
And here is the info Karl requested:
---8<---
(gdb) p c
$1 = 5092
(gdb) p c/0x10000
$2 = 0
(gdb) p planes[$]
$3 = (char_entry **) 0x20b65b000
(gdb) p c%0x10000
$4 = 5092
(gdb) p planes[c/0x10000][c%0x10000]
$5 = (char_entry *) 0xd0d0d0d0d0d0d0d0
(gdb) p *$
Cannot access memory at address 0xd0d0d0d0d0d0d0d0
---8<---
I can tell you what has happened here, 0xd0 is what freshly allocated buffers
are filled with in OpenBSD if you have the 'J' malloc flag enabled. I refer you
to the malloc(3) man page of OpenBSD:
---8<---
J ``Junk''. Fill some junk into the area allocated. Currently
junk is bytes of 0xd0 when allocating; this is pronounced
``Duh''. :-) Freed chunks are filled with 0xdf.
---8<---
Does this help? Looking at the code it looks like space for a pointer was
allocated, but no struct for it to point to was? Or the pointer was never
assigned if the struct was allocated?
I can't pretend I understand this code :)
--
Best Regards
Edd Barrett
http://www.theunixzoo.co.uk
More information about the tlbuild
mailing list