Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Dec 2013 13:18:46 GMT
From:      John Marino <freebsd@marino.st>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/185026: devel/meta-cvs: dangerous "while" loop can recall make forever (runaway)
Message-ID:  <201312201318.rBKDIkZU053843@oldred.freebsd.org>
Resent-Message-ID: <201312201320.rBKDK1U7038720@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312201318.rBKDIkZU053843>