Bug#453710: [Pbuilder-maint] Bug#453710: [patch] kill the build if the memory/disk is low

Gonéri Le Bouder goneri at rulezlan.org
Thu Dec 27 14:25:55 UTC 2007


On Thu, Dec 27, 2007 at 12:26:43AM +0900, Junichi Uekawa wrote:

Hi Junichi and Ondrej,

> RLIMIT_DATA / RLIMIT_RSS etc look like a good candidate for
> memory management.
> 
> As for disk space, RLIMIT_FSIZE looks useful.  And 'quota' seems more
> like a best match.
> 
> RLIMIT_NPROC looks like a good idea to avoid DoS, although most
> packages would avoid endless forkbombs in their build process.


I think nor RLIMIT_* nor quota are good solution here because resource
usage may change on the host. The pbuilder process must be kill as soon as
we know the system is out of resource.

About the implementation and to avoid another process maybe the current
TIMEOUT code can be merged in a more generic function designed to check the
build process. 

$kill=0
if [ -n $TIMEOUT_TIME ]; then
    # We lose the second precision with this method but I can't find an alternative
    # that doesn't block the process 
    if [ "`find /proc/$BUILD_PID -cmin +$(($TIMEOUT_TIME/60)) | wc -l`" -gt 0 ]; then
        kill=1
    fi
fi
if [ -n $dir_min_free ]; then
    # disk check here
    # kill=1 if needed
fi
if [ -n $mem_min_free ]; then
    # mem check here
    # kill=1 if needed
fi

if [ $kill -eq 1 ]; then
    # kill the job
fi

With this solution, it's also possible to had a check with the hook system.

      Gonéri
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.alioth.debian.org/pipermail/pbuilder-maint/attachments/20071227/9d4f654a/attachment.pgp 


More information about the Pbuilder-maint mailing list