Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Dec 2011 04:19:39 GMT
From:      Jan Mikkelsen <janm@transactionware.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/163467: Ports using python 2.7 and "waf" intermittently hang on build/installation
Message-ID:  <201112200419.pBK4JdIZ037227@red.freebsd.org>
Resent-Message-ID: <201112200420.pBK4KAl5065064@freefall.freebsd.org>

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

>Number:         163467
>Category:       ports
>Synopsis:       Ports using python 2.7 and "waf" intermittently hang on build/installation
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 20 04:20:10 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Jan Mikkelsen
>Release:        FreeBSD 9.0-RC3
>Organization:
Transactionware
>Environment:
FreeBSD vanaheim.transactionware.com 9.0-RC3 FreeBSD 9.0-RC3 #0: Mon Dec 19 12:43:57 EST 2011     root@vanaheim.transactionware.com:/home/janm/p4/freebsd-image-std-2011.1/work/base-freebsd/home/janm/p4/freebsd-image-std-2011.1/FreeBSD/src/sys/GENERIC  amd64
>Description:
During batch builds of ports, I observe hangs in python for ports that use "waf". The process blocks on "usem"; there seems to be a deadlock between two python processes. Example output from "ps aldxHwww"

   0 91282 33575   0  52  0   6280    824 wait   I      0     0:00.07 | |     |   `-- make package WRKDIRPREFIX=/ports-work PKGFILE=/ports-packages/talloc-2.0.7.tbz BATCH=yes NODEPENDS=yes PACKAGE_BUILDING=yes
    0 91387 91282   0  52  0  14636    580 wait   I      0     0:00.00 | |     |     `-- [sh]
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.33 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91392 91389   0  52  0  93568   8468 usem   I      0     0:00.00 | |     |       | `-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 piperd I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       |-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16
    0 91389 91387   0  52  0 152704   7676 usem   I      0     0:00.00 | |     |       `-- python ./buildtools/bin/waf configure --mandir=/usr/local/man --jobs=16

I have observed this with devel/talloc and databases/tdb. It does not happen consistently.

The child process can be killed and the build fails.

This seems to be the same issue as ports/160717, I'm adding this report because of the "usem" information.
>How-To-Repeat:
Build ports until it fails.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:



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