Date: Sat, 8 Feb 1997 17:53:35 -0500 From: Andrew Herdman <andrew@why.whine.com> To: Poul-Henning Kamp <phk@critter.dk.tfs.com> Cc: Andrew Herdman <andrew@why.whine.com>, current@freebsd.org Subject: Re: Make world of Current dies with weird errors. Message-ID: <Pine.BSF.3.95.970208173817.14716A-100000@why> In-Reply-To: <8301.855419376@critter.dk.tfs.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 8 Feb 1997, Poul-Henning Kamp wrote:
> In message <Pine.BSF.3.95.970207212402.1098A-100000@why>, Andrew Herdman writes
> :
> >When i'm doing a make world, i get the following errors.
> >
> >make cleandir
> >
> ><cleaning stuff going on here>
> >
> >===> lib/libtelnet
> >make in free(): warning: chunk is already free.
> >make in free(): warning: chunk is already free.
> >make in free(): warning: chunk is already free.
>
> Off the top of my head I'd say RAM/cache HW problem, but I have heard
> other reports about the same phenomena enough to find it slightly
> worrisome, and I have not been able to reproduce the problem here.
>
> If you can reliably reproduce this, and have time & courage, here's
> how to proceed:
>
> in your chroot environment:
>
> ln -s A /etc/malloc.conf
> reproduce the problem
> you should now have a make.core file somewhere.
> gdb /usr/src/.../make make.core
> find the problem
> make a patch
> send-pr
Well I had some courage. I can reliably reproduce the bug, and have with
a make re-compiled with -g, and the malloc trick i now have a nice core
file. As for using gdb for debugging... err well I don't now much about
it... i've seen the bt command used extensively and this is what i got:
Core was generated by `make'.
Program terminated with signal 6, Abort trap.
Cannot access memory at address 0x654f0.
#0 0x807de11 in ?? ()
(gdb) bt
#0 0x807de11 in ?? ()
#1 0x807d6e3 in ?? ()
#2 0x807c232 in ?? ()
#3 0x807c270 in ?? ()
#4 0x807d24b in ?? ()
#5 0x807d432 in ?? ()
#6 0x12731 in Lst_Destroy (l=0x588c0, freeProc=0)
at /usr/src/usr.bin/make/lst.lib/lstDestroy.c:99
#7 0xfb2b in TargFreeGN (gnp=0x55d00) at targ.c:219
#8 0x1270b in Lst_Destroy (l=0x182e0, freeProc=0xfae0 <TargFreeGN>)
at /usr/src/usr.bin/make/lst.lib/lstDestroy.c:93
#9 0xf9d7 in Targ_End () at targ.c:139
#10 0xa000 in main (argc=3, argv=0xefbfd798) at main.c:804
I have the core and the program that created, and if you want I can leave
them somewhere for someone who knows what they are doing to take a peek at
them. I will help where I can of course, but this one is bigger than I
am.
>
> The actual complaint from the program means that some piece of memory
> that was allocated with malloc is freed twice. The fact that it's
> called a "chunk" tells that it is <= 2048 bytes long.
>
> If you can get a stacktrace, you will find the pointer to this piece
> of memory in the topmost call to free() or realloc().
>
> Try to see if you can compile a make with "-g" and still reproduce
> the problem.
Andrew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95.970208173817.14716A-100000>
