This started happening for me after I upgraded to 22.12.3.
I tried all of the proposed fixes to no avail.
If I'm reading this pull request correctly,
https://github.com/truenas/middleware/pull/10838
Since 22.12.2, it first checks to see if the following cgroup controllers are available, 'cpu', 'cpuset', 'memory', 'hugetlb', 'pids', before it allows apps to start.
In the commit that's listed on github, I see the following...
@private
def ensure_cgroups_are_setup(self):
supported_controllers = {'cpu', 'cpuset', 'memory', 'hugetlb', 'pids'}
cgroup_root_path = '/sys/fs/cgroup'
system_supported_controllers_path = os.path.join(cgroup_root_path, 'cgroup.controllers')
Which appears to reference the '/sys/fs/cgroup/cgroup.controllers' file, but this file does indeed have those controllers listed.
So I was thinking that perhaps there's another file it's referencing?
The error says "Missing 'cpu, cpuset, hugetlb' cgroup controller(s)", so I did the following to find the cgroup.controllers...
root@TrueNAS[~]# find /sys/fs/cgroup -name cgroup.controllers
I get 48 different instances of 'cgroup.controllers' throughout this parent directory. I gather that the Apps module references one of these files for the necessary controllers so I inspected them and found that following 31 had only the 'memory' and 'pids' listed...
/sys/fs/cgroup/user.slice/user-0.slice/user@0.service/app.slice/dbus.socket/cgroup.controllers
/sys/fs/cgroup/system.slice/syslog-ng.service/cgroup.controllers
/sys/fs/cgroup/system.slice/systemd-udevd.service/cgroup.controllers
/sys/fs/cgroup/system.slice/cron.service/cgroup.controllers
/sys/fs/cgroup/system.slice/wsdd.service/cgroup.controllers
/sys/fs/cgroup/system.slice/nginx.service/cgroup.controllers
/sys/fs/cgroup/system.slice/rpcbind.socket/cgroup.controllers
/sys/fs/cgroup/system.slice/system-modprobe.slice/cgroup.controllers
/sys/fs/cgroup/system.slice/systemd-journald.service/cgroup.controllers
/sys/fs/cgroup/system.slice/winbind.service/cgroup.controllers
/sys/fs/cgroup/system.slice/ssh.service/cgroup.controllers
/sys/fs/cgroup/system.slice/rrdcached.service/cgroup.controllers
/sys/fs/cgroup/system.slice/nfs-blkmap.service/cgroup.controllers
/sys/fs/cgroup/system.slice/boot-grub.mount/cgroup.controllers
/sys/fs/cgroup/system.slice/tmp.mount/cgroup.controllers
/sys/fs/cgroup/system.slice/rpcbind.service/cgroup.controllers
/sys/fs/cgroup/system.slice/middlewared.service/cgroup.controllers
/sys/fs/cgroup/system.slice/nscd.service/cgroup.controllers
/sys/fs/cgroup/system.slice/run-rpc_pipefs.mount/cgroup.controllers
/sys/fs/cgroup/system.slice/collectd.service/cgroup.controllers
/sys/fs/cgroup/system.slice/smartmontools.service/cgroup.controllers
/sys/fs/cgroup/system.slice/nut-driver.service/cgroup.controllers
/sys/fs/cgroup/system.slice/zfs-zed.service/cgroup.controllers
/sys/fs/cgroup/system.slice/ntp.service/cgroup.controllers
/sys/fs/cgroup/system.slice/nut-monitor.service/cgroup.controllers
/sys/fs/cgroup/system.slice/smbd.service/cgroup.controllers
/sys/fs/cgroup/system.slice/dbus.service/cgroup.controllers
/sys/fs/cgroup/system.slice/system-getty.slice/getty@tty1.service/cgroup.controllers
/sys/fs/cgroup/system.slice/system-getty.slice/cgroup.controllers
/sys/fs/cgroup/system.slice/avahi-daemon.service/cgroup.controllers
/sys/fs/cgroup/system.slice/systemd-logind.service/cgroup.controllers
Now the question is, does anyone have any idea which of these 'cgroup.controllers' file is referenced for the Apps to determine the controllers are available? I have a feeling it's
/sys/fs/cgroup/system.slice/middlewared.service/cgroup.controllers
...however, I don't seem to have write access to this.