Bug#843663: boinc-client fails to set oom_adj owing to typo; use oom_score_adj?

Tom Downes tpdownes at gravity.phys.uwm.edu
Tue Nov 8 15:25:10 UTC 2016


Package: boinc-client
Version: 7.4.23+dfsg-1
Severity: important
Tags: newcomer

Dear Maintainer,

The init.d script for boinc-client includes a typo which prevents it from
setting oom_adj. This has the consequence that systems tasks are more
likely to be killed when an OOM event occurs. Desired behavior is, typically,
to kill BOINC tasks first as they are "background" tasks harvesting otherwise
unused cycles.

echo ${BOINC_OOM_AD} > /proc/${BPID}/oom_adj 2>/dev/null || true

should instead be

echo ${BOINC_OOM_ADJ} > /proc/${BPID}/oom_adj 2>/dev/null || true

You should consider using oom_score_adj as I understand oom_adj to be
deprecated. In this instance, you should also change

BOINC_OOM_ADJ=15

to

BOINC_OOM_SCORE_ADJ=1000

and make the corresponding change to the variable name in the command above.

-- 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="/localscratch/boinc"

# 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="/usr/local/bin/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="--allow_multiple_clients --no_gui_rpc --update_prefs http://einstein.phys.uwm.edu/"

# Scheduling options

# Set SCHEDULE="0" if prefering to run with upstream default priority
# settings.

# Nice levels. When systems are truly busy, e.g. because of too many active
# scientific applications started by the boinc client, there is a chance for
# the boinc client not to be granted sufficient opportunity to check for
# scientific applications to be alive and make the (wrong) decision to
# terminate the scientific app. This is particularly an issue with many
# apps started in parallel on modern multi-core systems and extra overheads
# for the download and uploads of files with the project servers. Another
# concern is the latency for scientific applications to communicate with the
# graphics card, which should be low. All such values should be set and
# controled from within the BOINC client. The Debian init script also sets
# extra constrains via chrt on real time performance and via ionice on 
# I/O performance, which is beyond the regular BOINC client. It then was
# too easy to use that code to also constrain minimal nice levels. We still
# think about how to best distinguish GPU applications from regular apps.
BOINC_NICE_CLIENT=10
BOINC_NICE_APP_DEFAULT=19
#BOINC_NICE_APP_GPU=5        # not yet used

# ionice classes. See manpage of ionice (1) in the util-linux package.
BOINC_IONICE_CLIENT=3        # idle
#BOINC_IONICE_APP_DEFAULT=3  # idle, not yet used
#BOINC_IONICE_APP_GPU=2      # best effort, not yet used


-- System Information:
Debian Release: 8.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/24 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages boinc-client depends on:
ii  adduser                3.113+nmu3
ii  ca-certificates        20141019+deb8u1
ii  debconf [debconf-2.0]  1.5.56
ii  libboinc7              7.4.23+dfsg-1
ii  libc6                  2.19-18+deb8u6
ii  libcurl3               7.38.0-4+deb8u4
ii  libgcc1                1:4.9.2-10
ii  libstdc++6             4.9.2-10
ii  python                 2.7.9-1
ii  zlib1g                 1:1.2.8.dfsg-2+b1

boinc-client recommends no packages.

Versions of packages boinc-client suggests:
pn  boinc-amd-opencl   <none>
pn  boinc-manager      <none>
pn  boinc-nvidia-cuda  <none>
ii  x11-xserver-utils  7.7+3+b1

-- Configuration Files:
/etc/boinc-client/cc_config.xml changed [not included]
/etc/boinc-client/gui_rpc_auth.cfg [Errno 13] Permission denied: u'/etc/boinc-client/gui_rpc_auth.cfg'
/etc/default/boinc-client changed [not included]

-- debconf information excluded



More information about the pkg-boinc-devel mailing list