[Pkg-xen-devel] Bug#961511: Bug#961511: [PATCH] d/xen-utils-common.xen.init: disable oom killer for xenstored
Hans van Kranenburg
hans at knorrie.org
Tue Sep 22 13:39:09 BST 2020
notfixed 961511 xen/4.14.0-1~exp1
thanks
Right... so in the end I made an off-by-one error while rebasing and
totally lost that commit. It's not actually in 4.14.0-1~exp1 now. That's
bad.
On 9/21/20 3:50 AM, Elliott Mitchell wrote:
> This is fun. Actually isn't too difficult to trigger, simply slowly
> reduce the memory Xen allocates to Dom0 and eventually the oom-killer is
> likely to trigger (having tried to shrink Dom0 as far as possible,
> believe me, I know). I had been wondering which of the Xen daemons could
> be safely restarted since it is handy to restart daemons instead of whole
> machine for security updates...
>
> Interestingly running `xenstored --help` mentions:
> -I, --internal-db store database in memory, not on disk
>
> There is a run/xenstored/tdb file so I end up wondering if newer versions
> are in fact storing everything in a file and restarting isn't so bad.
Not by default, and I don't know if it's actually considered best
practice. I could not find any info about this yet. I suspect it's not
recommended.
oxenstored has the following option in /etc/xen/oxenstored.conf:
# Activate filed base backend
persistent = false
When enabling this, the file /run/xenstored/db gets rewritten a lot and
I also see it's out of sync with what's in xenstore-ls after doing some
things. So, it might me inconsistent when the process is oom-killed.
> The patch switches the arguments from:
> --exec "$try_xenstored" -- ...
> to:
> --exec /usr/bin/choom -- -n -1000 "$try_xenstored" -- ...
>
> I'm pretty sure start-stop-daemon is consuming the "--" and the second
> "--" shouldn't be there.
Well, I tested it and found out that it's needed...
-# start-stop-daemon --start \
--pidfile "/run/xenstore.pid" \
--exec /usr/bin/choom -- -n -1000 \
/usr/lib/xen-4.14/bin/oxenstored --pid-file "/run/xenstore.pid"
/usr/bin/choom: unrecognized option '--pid-file'
Try 'choom --help' for more information.
-# start-stop-daemon --start \
--pidfile "/run/xenstore.pid" \
--exec /usr/lib/xen-4.14/bin/oxenstored --test
Would start /usr/lib/xen-4.14/bin/oxenstored .
and with the extra separator:
-# start-stop-daemon --start \
--pidfile "/run/xenstore.pid" \
--exec /usr/bin/choom -- -n -1000 \
/usr/lib/xen-4.14/bin/oxenstored -- --pid-file "/run/xenstore.pid"
-# grep . /proc/$(pidof /usr/lib/xen-4.14/bin/oxenstored)/oom_*
/proc/363043/oom_adj:-17
/proc/363043/oom_score:0
/proc/363043/oom_score_adj:-1000
-# cat /proc/$(pidof /usr/lib/xen-4.14/bin/oxenstored)/cmdline
/usr/lib/xen-4.14/bin/oxenstored--pid-file/run/xenstore.pid
How did you test it and how did you get a working process without the --?
Hans
More information about the Pkg-xen-devel
mailing list