Adding set -x and calling this directly: Cosmic: . /lib/apparmor/functions is_container_with_internal_policy + local ns_stacked_path=/sys/kernel/security/apparmor/.ns_stacked + local ns_name_path=/sys/kernel/security/apparmor/.ns_name + local ns_stacked + local ns_name + '[' -f /sys/kernel/security/apparmor/.ns_stacked ']' + '[' -f /sys/kernel/security/apparmor/.ns_name ']' + read -r ns_stacked + '[' yes '!=' yes ']' + read -r ns_name + '[' 'c-testapparmor_<var-snap-lxd-common-lxd>' = 'lxd-c-testapparmor_<var-snap-lxd-common-lxd>' ']' + return 0
Disco: . /lib/apparmor/rc.apparmor.functions is_container_with_internal_policy + local ns_stacked_path=/.ns_stacked + local ns_name_path=/.ns_name + local ns_stacked + local ns_name + '[' -f /.ns_stacked ']' + return 1 Ok, in my case the ENV var that is now used is not set. $ export SFS_MOUNTPOINT=/sys/kernel/security/apparmor/ $ is_container_with_internal_policy + is_container_with_internal_policy + set -x + local ns_stacked_path=/sys/kernel/security/apparmor//.ns_stacked + local ns_name_path=/sys/kernel/security/apparmor//.ns_name + local ns_stacked + local ns_name + '[' -f /sys/kernel/security/apparmor//.ns_stacked ']' + '[' -f /sys/kernel/security/apparmor//.ns_name ']' + read -r ns_stacked + '[' yes '!=' yes ']' + read -r ns_name + '[' 'd-testapparmor_<var-snap-lxd-common-lxd>' = 'lxd-d-testapparmor_<var-snap-lxd-common-lxd>' ']' + return 0 Now it works, could it be that in the init script context this isn't set either? Yep that is it: If I patch in the path it works again # patch /lib/apparmor/rc.apparmor.functions to have SFS_MOUNTPOINT=/sys/kernel/security/apparmor/ $ systemctl restart apparmor $ aa-status # lists all profiles again -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to apparmor in Ubuntu. https://bugs.launchpad.net/bugs/1824812 Title: apparmor no more starting in Disco LXD containers Status in apparmor package in Ubuntu: New Status in libvirt package in Ubuntu: New Bug description: In LXD apparmor now skips starting. Steps to reproduce: 1. start LXD container $ lxc launch ubuntu-daily:d d-testapparmor (disco to trigger the issue, cosmic as reference) 2. check the default profiles loaded $ aa-status => This will in cosmic and up to recently disco list plenty of profiles active even in the default install. Cosmic: 25 profiles are loaded. 25 profiles are in enforce mode. Disco: 15 profiles are loaded. 15 profiles are in enforce mode. All those 15 remaining are from snaps. The service of apparmor.service actually states that it refuses to start. $ systemctl status apparmor ... Apr 15 13:56:12 testkvm-disco-to apparmor.systemd[101]: Not starting AppArmor in container I can get those profiles (the default installed ones) loaded, for example: $ sudo apparmor_parser -r /etc/apparmor.d/sbin.dhclient makes it appear 22 profiles are in enforce mode. /sbin/dhclient I was wondering as in my case I found my guest with no (=0) profiles loaded. But as shown above after "apparmor_parser -r" and package install profiles seemed fine. Then the puzzle was solved, on package install they will call apparmor_parser via the dh_apparmor snippet and it is fine. To fully disable all of them: $ lxc stop <container> $ lxc start <container> $ lxc exec d-testapparmor aa-status apparmor module is loaded. 0 profiles are loaded. 0 profiles are in enforce mode. 0 profiles are in complain mode. 0 processes have profiles defined. 0 processes are in enforce mode. 0 processes are in complain mode. 0 processes are unconfined but have a profile defined. That would match the service doing an early exit as shown in systemctl status output above. The package install or manual load works, but none are loaded by the service automatically e.g. on container restart. --- --- --- This bug started as: Migrations to Disco trigger "Unable to find security driver for model apparmor" This most likely is related to my KVM-in-LXD setup but it worked fine for years and I'd like to sort out what broke. I have migrated to Disco's qemu 3.1 already which makes me doubts generic issues in qemu 3.1 in general. The virt tests that run cross release work fine starting from X/B/C but all those chains fail at mirgating to Disco now with: $ lxc exec testkvm-cosmic-from -- virsh migrate --unsafe --live kvmguest-bionic-normal qemu+ssh://10.21.151.207/system error: unsupported configuration: Unable to find security driver for model apparmor I need to analyze what changed To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/1824812/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp

