ports/185026: devel/meta-cvs: dangerous "while" loop can recall make forever (runaway)
John Marino
freebsd at marino.st
Fri Dec 20 13:20:01 UTC 2013
>Number: 185026
>Category: ports
>Synopsis: devel/meta-cvs: dangerous "while" loop can recall make forever (runaway)
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Dec 20 13:20:01 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: John Marino
>Release:
>Organization:
>Environment:
>Description:
I have not confirmed that this port is failing on FreeBSD, but there is a good change that it is. Partial log excerpt:
=================================================================
===> Checking if devel/meta-cvs already installed
gmake[1]: Entering directory `/wrkdirs/devel/meta-cvs/work/meta-cvs-1.1.98'
install -d /usr/local/bin /usr/local/share/meta-cvs
install mcvs mcvs-debug /usr/local/bin
install mcvs.mem mcvs-debug.mem /usr/local/share/meta-cvs
gmake[1]: Leaving directory `/wrkdirs/devel/meta-cvs/work/meta-cvs-1.1.98'
/bin/mkdir -p /usr/local/share/doc/meta-cvs
(cd /wrkdirs/devel/meta-cvs/work/meta-cvs-1.1.98/docs/tex-manual && gmake && /bin/cp /wrkdirs/devel/meta-cvs/work/meta-cvs-1.1.98/docs/tex-manual/meta-cvs.pdf /wrkdirs/devel/meta-cvs/work/meta-cvs-1.1.98/docs/misc-text-files)
gmake[1]: Entering directory `/wrkdirs/devel/meta-cvs/work/meta-cvs-1.1.98/docs/tex-manual'
while true ; do cp meta-cvs.toc meta-cvs.toc.old ; pdflatex meta-cvs.latex ; if ! cmp -s meta-cvs.idx meta-cvs.idx.old ; then cp meta-cvs.idx meta-cvs.idx.old ; makeindex -s meta-cvs.ist meta-cvs.idx ; fi ; if cmp -s meta-cvs.toc meta-cvs.toc.old ; then break ; fi ; done
cp: meta-cvs.toc: No such file or directory
pdflatex: not found
cp: meta-cvs.idx: No such file or directory
makeindex: not found
cp: meta-cvs.toc: No such file or directory
pdflatex: not found
cp: meta-cvs.idx: No such file or directory
makeindex: not found
(repeats forever)
====================================================
The "while true" doesn't detect failures, and it re-attempts failed commands ad infinitum. The actual problem (apparently) is that pdflatex didn't get loaded by USE_TEX which used to happen. The real problem is the internal makefile.
>How-To-Repeat:
>Fix:
Suggest adding a check for a failed command to bounce out of the "while true" loop. This is a very dangerous port that will crash any system (eventually) if a broken port is left unattended for a long enough time.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list