ports/127491: octave can crash with "malloc(): error: recursive call"
Stephen Montgomery-Smith
stephen at math.missouri.edu
Fri Sep 19 05:30:10 UTC 2008
>Number: 127491
>Category: ports
>Synopsis: octave can crash with "malloc(): error: recursive call"
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Fri Sep 19 05:30:09 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Stephen Montgomery-Smith
>Release: FreeBSD 6.4-PRERELEASE amd64
>Organization:
>Environment:
System: FreeBSD cauchy 6.4-PRERELEASE FreeBSD 6.4-PRERELEASE #0: Mon Jul 14 15:26:47 CDT 2008 stephen at cauchy:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
octave can crash with "malloc(): error: recursive call".
This seems to happen intermittently when installing any of the octave-forge-*
ports, either using ports or packages.
The problem seems to be caused by a signal handler that invokes malloc.
My guess is that it is in octave-3.0.2/src/sighandlers.cc inside
octave_child_list::instance_ok, which is called via octave_child_list::reap
in octave_signal_handler.
>How-To-Repeat:
Run the script
sh -c "while true; do killall -CHLD octave-3.0.2; done"
and at the same time install some of the octave-forge-* ports, either from
ports or packages. It will not happen every time.
I can make this happen with FreeBSD-6.x, but not with FreeBSD-8.x. I have
only tried it with the amd64 architecture, not i386, so I don't know if it is
a problem with i386.
>Fix:
First install PR ports/127490.
Then apply this patch:
diff -ur /usr/ports-old/math/octave/Makefile Makefile
--- /usr/ports-old/math/octave/Makefile 2008-09-07 20:31:50.000000000 -0500
+++ Makefile 2008-09-18 23:20:37.000000000 -0500
@@ -25,7 +25,10 @@
glpk.16:${PORTSDIR}/math/glpk \
hdf5:${PORTSDIR}/science/hdf5 \
umfpack.1:${PORTSDIR}/math/suitesparse \
- qhull:${PORTSDIR}/math/qhull
+ qhull:${PORTSDIR}/math/qhull \
+ ptmalloc:${PORTSDIR}/devel/ptmalloc
+
+CONFIGURE_ENV+= LIBS="-L${LOCALBASE}/lib -lptmalloc"
LATEST_LINK= octave-devel
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list