Package: boinc-client Version: 6.2.14-3 Severity: critical Tags: patch Justification: causes serious data loss
Client apps can have crufty code leading to OOM conditions. The attached patch prevents this from taking down the system by configuring oom_adj to favor removal. -- Package-specific info: -- Contents of /etc/default/boinc-client: # This file is /etc/default/boinc-client, it is a configuration file for the # /etc/init.d/boinc-client init script. # Set this to 1 to enable and to 0 to disable the init script. ENABLED="1" # Set this to 1 to enable advanced scheduling of the BOINC core client and # all its sub-processes (reduces the impact of BOINC on the system's # performance). SCHEDULE="1" # The BOINC core client will be started with the permissions of this user. BOINC_USER="boinc" # This is the data directory of the BOINC core client. BOINC_DIR="/var/lib/boinc-client" # This is the location of the BOINC core client, that the init script uses. # If you do not want to use the client program provided by the boinc-client # package, you can specify here an alternative client program. BOINC_CLIENT="/home/michael/src/BOINC/boinc" #BOINC_CLIENT="/usr/bin/boinc" # Here you can specify additional options to pass to the BOINC core client. # Type 'boinc --help' or 'man boinc' for a full summary of allowed options. #BOINC_OPTS="--allow_remote_gui_rpc" BOINC_OPTS="" -- System Information: Debian Release: 5.0.1 APT prefers stable APT policy: (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.18.8-linode16 (SMP w/4 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/bash Versions of packages boinc-client depends on: ii adduser 3.110 add and remove users and groups ii ca-certificates 20080809 Common CA certificates ii debconf [debconf-2.0] 1.5.24 Debian configuration management sy ii libc6 2.7-18 GNU C Library: Shared libraries ii libcurl3 7.18.2-8lenny2 Multi-protocol file transfer libra ii libssl0.9.8 0.9.8g-15+lenny1 SSL shared libraries ii libstdc++6 4.3.2-1.1 The GNU Standard C++ Library v3 ii lsb-base 3.2-20 Linux Standard Base 3.2 init scrip ii python 2.5.2-3 An interactive high-level object-o ii zlib1g 1:1.2.3.3.dfsg-12 compression library - runtime boinc-client recommends no packages. Versions of packages boinc-client suggests: pn boinc-app-seti <none> (no description available) pn boinc-manager | kboincspy <none> (no description available) ii schedtool 1.2.10-1 Queries/alters process' scheduling -- debconf information excluded *** /home/michael/boinc-client.patch --- /etc/init.d/boinc-client 2009-01-18 20:08:16.000000000 -0700 +++ boinc-client 2009-06-24 00:47:04.000000000 -0700 @@ -27,6 +27,7 @@ BOINC_USER=boinc BOINC_DIR=/var/lib/boinc-client BOINC_CLIENT=/usr/bin/boinc +BOINC_OOM_ADJ=15 # Source defaults file. Edit that file to configure this script. if [ -e /etc/default/boinc-client ]; then @@ -121,10 +122,11 @@ fi fi + children=`ps --ppid $pid -o pid= | tr '\n' ' '` + if [ ! -x "`which schedtool 2>/dev/null`" ]; then log_progress_msg "schedtool not found" else - children=`ps --ppid $pid -o pid= | tr '\n' ' '` (schedtool -n 19 -D $pid $children >/dev/null \ && log_progress_msg "idleprio") || \ (schedtool -n 19 -B $pid $children >/dev/null \ @@ -132,6 +134,8 @@ (schedtool -n 19 -N $pid $children >/dev/null \ && log_progress_msg "normal") fi + + for BPID in ${pid} ${children}; do echo ${BOINC_OOM_ADJ} > /proc/${BPID}/oom_adj; echo; done fi log_end_msg 0 } @@ -141,17 +145,21 @@ STATUS="Status of $DESC:" if is_running; then log_success_msg "$STATUS running." + + children=`ps --ppid $pid -o pid= | tr '\n' ' '` if [ -x "`which schedtool 2>/dev/null`" ]; then log_success_msg "Scheduling of $DESC:" schedtool $pid - children=`ps --ppid $pid -o pid= | tr '\n' ' '` if [ -n "$children" ]; then log_success_msg "Scheduling of $DESC's children:" schedtool $children fi fi + log_success_msg "OOM killer status for $DESC:" + for BPID in ${pid} ${children}; do echo PID ${BPID}: adj `cat /proc/${BPID}/oom_adj`, score `cat /proc/${BPID}/oom_score`; done + # Display $BOINC_USER's cpu_share: uid=`id -u $BOINC_USER` cpu_share_file="/sys/kernel/uids/$uid/cpu_share" -- System Information: Debian Release: 5.0.1 APT prefers stable APT policy: (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.18.8-linode16 (SMP w/4 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/bash Versions of packages boinc-client depends on: ii adduser 3.110 add and remove users and groups ii ca-certificates 20080809 Common CA certificates ii debconf [debconf-2.0] 1.5.24 Debian configuration management sy ii libc6 2.7-18 GNU C Library: Shared libraries ii libcurl3 7.18.2-8lenny2 Multi-protocol file transfer libra ii libssl0.9.8 0.9.8g-15+lenny1 SSL shared libraries ii libstdc++6 4.3.2-1.1 The GNU Standard C++ Library v3 ii lsb-base 3.2-20 Linux Standard Base 3.2 init scrip ii python 2.5.2-3 An interactive high-level object-o ii zlib1g 1:1.2.3.3.dfsg-12 compression library - runtime boinc-client recommends no packages. Versions of packages boinc-client suggests: pn boinc-app-seti <none> (no description available) pn boinc-manager | kboincspy <none> (no description available) ii schedtool 1.2.10-1 Queries/alters process' scheduling -- debconf information excluded -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org