ports/163467: Ports using python 2.7 and "waf" intermittently hang on build/installation

Jan Mikkelsen janm at transactionware.com
Tue Dec 20 04:20:10 UTC 2011


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



More information about the freebsd-ports-bugs mailing list