Package Details: oomd 0.5.0-1

Git Clone URL: https://aur.archlinux.org/oomd.git (read-only, click to copy)
Package Base: oomd
Description: A userspace out-of-memory killer.
Upstream URL: https://github.com/facebookincubator/oomd
Keywords: killer memory oom
Licenses: GPL2
Conflicts: oomd-git
Provides: oomd
Submitter: nicoulaj
Maintainer: syntheit
Last Packager: syntheit
Votes: 8
Popularity: 0.000000
First Submitted: 2019-04-06 12:20 (UTC)
Last Updated: 2022-08-17 23:02 (UTC)

Latest Comments

nicoulaj commented on 2019-10-27 17:36 (UTC)

Indeed, I don't know why I pushed that... I applied your first two points, and I am disowning the package as I don't use it and don't have time to dig into it.

tasn commented on 2019-10-09 10:09 (UTC) (edited on 2019-10-16 13:26 (UTC) by tasn)

No longer runs for a few reasons:

First: The oomd binary is now called oomd and not oomd_bin.

Second: Even after fixing the service file I'm now getting a bunch of errors:

Oct 09 12:53:20 lenovo systemd[1]: Starting userspace out-of-memory killer...
Oct 09 12:53:20 lenovo oomd[1450]: [../src/oomd/Stats.cpp:125] Making socket dir error: Read-only file system: /run/oomd
Oct 09 12:53:20 lenovo oomd[1450]: [../src/oomd/Stats.cpp:90] Initializing singleton failed: Socket thread failed to start
Oct 09 12:53:20 lenovo oomd[1450]: [../src/oomd/Main.cpp:348] Stats module failed to initialize
Oct 09 12:53:20 lenovo systemd[1]: oomd.service: Control process exited, code=exited, status=1/FAILURE
Oct 09 12:53:20 lenovo systemd[1]: oomd.service: Failed with result 'exit-code'.
Oct 09 12:53:20 lenovo systemd[1]: Failed to start userspace out-of-memory killer.
Oct 09 12:53:20 lenovo systemd[1]: oomd.service: Service RestartSec=100ms expired, scheduling restart.
Oct 09 12:53:20 lenovo systemd[1]: oomd.service: Scheduled restart job, restart counter is at 5.
Oct 09 12:53:20 lenovo systemd[1]: Stopped userspace out-of-memory killer.
Oct 09 12:53:20 lenovo systemd[1]: oomd.service: Start request repeated too quickly.
Oct 09 12:53:20 lenovo systemd[1]: oomd.service: Failed with result 'exit-code'.
Oct 09 12:53:20 lenovo systemd[1]: Failed to start userspace out-of-memory killer.
Oct 09 12:54:04 lenovo systemd[1]: Starting userspace out-of-memory killer...
Oct 09 12:54:04 lenovo oomd[1492]: [../src/oomd/Stats.cpp:144] Pre-unlinking of socket path failed. /run/oomd/oomd-stats.socket. Errno: Read-only file system
Oct 09 12:54:04 lenovo oomd[1492]: [../src/oomd/Stats.cpp:90] Initializing singleton failed: Socket thread failed to start
Oct 09 12:54:04 lenovo oomd[1492]: [../src/oomd/Main.cpp:348] Stats module failed to initialize
Oct 09 12:54:04 lenovo systemd[1]: oomd.service: Control process exited, code=exited, status=1/FAILURE
Oct 09 12:54:04 lenovo systemd[1]: oomd.service: Failed with result 'exit-code'.
Oct 09 12:54:04 lenovo systemd[1]: Failed to start userspace out-of-memory killer.

You need to disable:

#PrivateTmp=yes
#ProtectSystem=strict

Third: we need to pass the binary the correct cgroup2 path by again editing the service file like this:

ExecStartPre=/usr/bin/oomd_bin --check-config ${OOMD_CONFIG} --cgroup-fs /sys/fs/cgroup/unified
ExecStart=/usr/bin/oomd_bin --config ${OOMD_CONFIG}  --cgroup-fs /sys/fs/cgroup/unified --interval ${OOMD_INTERVAL}

EDIT: the above is not good enough. Apparently we need to disable cgroup v1 and only use v2 (memory controller can't be mounted to both), though this would break Docker it seems, which relies on cgroups v1.

More information: https://github.com/facebookincubator/oomd/blob/master/docs/production_setup.md

nicoulaj commented on 2019-09-20 18:26 (UTC)

Still failing, I disabled check() on 0.2.0...

rvlander commented on 2019-08-07 16:31 (UTC)

One test fails. See log. Should I raise an issue upstream?

viq commented on 2019-05-08 16:18 (UTC)

Thank you!

nicoulaj commented on 2019-05-07 20:02 (UTC)

@viq dropped linux dependency (I asked the question on aur-general for reference: https://lists.archlinux.org/pipermail/aur-general/2019-May/035106.html)

viq commented on 2019-05-06 16:32 (UTC)

I checked linux, linux-lts and linux-zen and neither of them does do that...

nicoulaj commented on 2019-05-06 15:08 (UTC) (edited on 2019-05-06 15:09 (UTC) by nicoulaj)

I might be wrong but it seems to me the linux-hardened package is missing something like provides=("linux=${pkgver}") ? For instance linux-lts49 does it correctly.

viq commented on 2019-05-06 14:42 (UTC)

This doesn't seem to accept linux-hardened as fulfilling the dependencies.