** Merge proposal linked: https://code.launchpad.net/~rlee287/ubuntu/+source/apparmor/+git/apparmor/+merge/495005
-- 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/2126920 Title: lsblk profile need to allow read access to Azure NVMe ACPI hierarchy Status in apparmor package in Ubuntu: New Status in apparmor source package in Questing: New Bug description: [ Impact ] * On Ubuntu 25.20 (Questing), in Azure VMs using NVMe devices, the AppArmor profile for lsblk does not permit read access to certain ACPI / sysfs nodes needed to enumerate NVMe metadata (e.g. the ACPI NVMe namespace path). * This affects any user or automation relying on NVMe description using lsblk, which is the case of the selftest.py script, used in the autopackages test of the azure-vm-utils package (which as of today we're skipping). * The patch is limited in scope (just relaxing read access to a narrow set of sysfs/ACPI paths) and has low regression risk. [ Test Plan ] * You will need an Azure account for creating the machine. In an Azure VM created with support for NMVe devices, e.g: az vm create --resource-group miriam-azure-vm-utils --name t-m-lsblk --image "Canonical:ubuntu-25_10-daily:server:latest" --ssh-key-values ~/.ssh/id_rsa.pub --size Standard_E2ads_v6 --admin-username ubuntu * run: sudo lsblk sudo journalctl --boot --grep apparmor you will see entries like this: ubuntu@t-m-lsblk:~$ sudo journalctl --boot --grep apparmor | grep "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/" Oct 10 15:33:58 t-m-lsblk kernel: audit: type=1400 audit(1760110438.106:192): apparmor="DENIED" operation="open" class="file" profile="lsblk" name="/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/7ad35d50-c05b-47ab-b3a0-56a9a845852b/pcic05b:00/c05b:00:00.0/nvme/nvme0/nvme0n1/hidden" pid=1726 comm="lsblk" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 * You can manually chek it also trying to query an NMVe device with lsblk: ubuntu@t-m-lsblk:~$ nvme list Node Generic SN Model Namespace Usage Format FW Rev --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- -------- /dev/nvme0n1 /dev/ng0n1 SN: 000001 MSFT NVMe Accelerator v1.0 0x1 32.21 GB / 32.21 GB 512 B + 0 B v1.00000 /dev/nvme1n1 /dev/ng1n1 5c44c9a8790fe8d60001 Microsoft NVMe Direct Disk v2 0x1 118.11 GB / 118.11 GB 512 B + 0 B NVMDV002 ubuntu@t-m-lsblk:~$ sudo lsblk -b -n -o SIZE -d /dev/nvme0n1 lsblk: /dev/nvme0n1: failed to get sysfs name: Permission denied * Once the fix is applied (and apparmor lsblk profile reloaded), we don't see more entries in the syslog and we get an output for the manual checking like this: ubuntu@t-m-lsblk:~$ lsblk -b -n -o SIZE -d '/dev/nvme1n1' 32213303296 [ Where problems could occur ] * The patch might omit a needed sub-path under the ACPI / NVMe sysfs tree, so some device metadata remains inaccessible. * It might unintentionally allow broader sysfs access than intended (though this is unlikely as rules are very specific to the Azure hierarchy). * A future kernel or Azure update might rearrange the sysfs paths (e.g. rename or move NVMe/ACPI directories), making the rules obsolete. * If the profile is not reloaded or incorrectly installed, the old profile might persist, making tests falsely appear to fail or succeed. [ Other Info ] * Merged upstream at https://gitlab.com/apparmor/apparmor/-/merge_requests/1808 [ Original Description ] When running tests of azure-vm-utils package on Questing 25.10 on an Azure VM machines we see: ubuntu@nmvedirect:~$ python3 --version Python 3.13.7 ubuntu@nmvedirect:~$ sudo python3 ./selftest.py azure-nvme-id info: AzureNvmeIdInfo(azure_nvme_id_stdout='/dev/nvme0n1: type=os\n/dev/nvme1n1: type=local,index=1,name=nvme-110G-1\n', azure_nvme_id_stderr='', azure_nvme_id_returncode=0, azure_nvme_id_disks={'nvme0n1': AzureNvmeIdDevice(device='/dev/nvme0n1', model=None, nvme_id='type=os', type='os', index=None, lun=None, name=None, extra={}), 'nvme1n1': AzureNvmeIdDevice(device='/dev/nvme1n1', model=None, nvme_id='type=local,index=1,name=nvme-110G-1', type='local', index=1, lun=None, name='nvme-110G-1', extra={})}, azure_nvme_id_json_stdout='[\n {\n "path": "/dev/nvme0n1",\n "model": "MSFT NVMe Accelerator v1.0",\n "properties": {\n "type": "os"\n },\n "vs": ""\n },\n {\n "path": "/dev/nvme1n1",\n "model": "Microsoft NVMe Direct Disk v2",\n "properties": {\n "type": "local",\n "index": 1,\n "name": "nvme-110G-1"\n },\n "vs": "type=local,index=1,name=nvme-110G-1"\n }\n]\n', azure_nvme_id_json_stderr='', azure_nvme_id_json_returncode=0, azure_nvme_id_json_disks={'nvme0n1': AzureNvmeIdDevice(device='/dev/nvme0n1', model='MSFT NVMe Accelerator v1.0', nvme_id='', type='os', index=None, lun=None, name=None, extra={}), 'nvme1n1': AzureNvmeIdDevice(device='/dev/nvme1n1', model='Microsoft NVMe Direct Disk v2', nvme_id='', type='local', index=1, lun=None, name='nvme-110G-1', extra={})}, azure_nvme_id_help_stdout='Usage: azure-nvme-id [-d|--debug] [-u|--udev|-h|--help|-v|--version]\n -d, --debug Enable debug mode\n -f, --format {plain|json} Output format (default=plain)\n -h, --help Display this help message\n -u, --udev Enable udev mode\n -v, --version Display the version\n', azure_nvme_id_help_stderr='', azure_nvme_id_help_returncode=0, azure_nvme_id_version_stdout='azure-nvme-id 0.6.0-4\n', azure_nvme_id_version_stderr='', azure_nvme_id_version_returncode=0, azure_nvme_id_version='0.6.0-4', azure_nvme_id_zzz_stdout='Usage: azure-nvme-id [-d|--debug] [-u|--udev|-h|--help|-v|--version]\n -d, --debug Enable debug mode\n -f, --format {plain|json} Output format (default=plain)\n -h, --help Display this help message\n -u, --udev Enable udev mode\n -v, --version Display the version\n', azure_nvme_id_zzz_stderr='invalid argument: zzz\n', azure_nvme_id_zzz_returncode=1) error while fetching disk size: CalledProcessError(32, ['lsblk', '-b', '-n', '-o', 'SIZE', '-d', '/dev/nvme1n1']) Traceback (most recent call last): File "/home/ubuntu/./selftest.py", line 1118, in <module> main() ~~~~^^ File "/home/ubuntu/./selftest.py", line 1110, in main validator = AzureVmUtilsValidator( skip_imds_validation=args.skip_imds_validation, skip_symlink_validation=args.skip_symlink_validation, ) File "/home/ubuntu/./selftest.py", line 867, in __init__ self.disk_info = DiskInfo.gather() ~~~~~~~~~~~~~~~^^ File "/home/ubuntu/./selftest.py", line 427, in gather nvme_local_disk_size_gib = min( get_disk_size_gib(f"/dev/{disk}") for disk in nvme_local_disks ) File "/home/ubuntu/./selftest.py", line 428, in <genexpr> get_disk_size_gib(f"/dev/{disk}") for disk in nvme_local_disks ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/home/ubuntu/./selftest.py", line 195, in get_disk_size_gib proc = subprocess.run( ["lsblk", "-b", "-n", "-o", "SIZE", "-d", disk_path], ...<3 lines>... check=True, ) File "/usr/lib/python3.13/subprocess.py", line 577, in run raise CalledProcessError(retcode, process.args, output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['lsblk', '-b', '-n', '-o', 'SIZE', '-d', '/dev/nvme1n1']' returned non-zero exit status 32. This is due to apparmor lsblk profile: sudo dmesg | grep lsblk [ 461.611820] audit: type=1400 audit(1759492274.036:192): apparmor="DENIED" operation="open" class="file" profile="lsblk" name="/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/70b4ac38-05b7-4efe-8862-db2456dfec84/pci05b7:00/05b7:00:00.0/nvme/nvme0/nvme0n1/" pid=1707 comm="lsblk" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 I'm submitting the attached patch to upstream to fix it, which I tested is OK: ubuntu@t-questing-check-package:~$ sudo vim /etc/apparmor.d/lsblk ubuntu@t-questing-check-package:~$ sudo apparmor_parser -r /etc/apparmor.d/lsblk ubuntu@t-questing-check-package:~$ sudo systemctl reload apparmor ubuntu@t-questing-check-package:~$ sudo ./selftest.py [2025-10-03 14:31:00,379] azure-nvme-id info: AzureNvmeIdInfo(azure_nvme_id_stdout='/dev/nvme0n1: type=local,index=1,name=nvme-110G-1\n/dev/nvme1n1: type=os\n', azure_nvme_id_stderr='', azure_nvme_id_returncode=0, azure_nvme_id_disks={'nvme0n1': AzureNvmeIdDevice(device='/dev/nvme0n1', model=None, nvme_id='type=local,index=1,name=nvme-110G-1', type='local', index=1, lun=None, name='nvme-110G-1', extra={}), 'nvme1n1': AzureNvmeIdDevice(device='/dev/nvme1n1', model=None, nvme_id='type=os', type='os', index=None, lun=None, name=None, extra={})}, azure_nvme_id_json_stdout='[\n {\n "path": "/dev/nvme0n1",\n "model": "Microsoft NVMe Direct Disk v2",\n "properties": {\n "type": "local",\n "index": 1,\n "name": "nvme-110G-1"\n },\n "vs": "type=local,index=1,name=nvme-110G-1"\n },\n {\n "path": "/dev/nvme1n1",\n "model": "MSFT NVMe Accelerator v1.0",\n "properties": {\n "type": "os"\n },\n "vs": ""\n }\n]\n', azure_nvme_id_json_stderr='', azure_nvme_id_json_returncode=0, azure_nvme_id_json_disks={'nvme0n1': AzureNvmeIdDevice(device='/dev/nvme0n1', model='Microsoft NVMe Direct Disk v2', nvme_id='', type='local', index=1, lun=None, name='nvme-110G-1', extra={}), 'nvme1n1': AzureNvmeIdDevice(device='/dev/nvme1n1', model='MSFT NVMe Accelerator v1.0', nvme_id='', type='os', index=None, lun=None, name=None, extra={})}, azure_nvme_id_help_stdout='Usage: azure-nvme-id [-d|--debug] [-u|--udev|-h|--help|-v|--version]\n -d, --debug Enable debug mode\n -f, --format {plain|json} Output format (default=plain)\n -h, --help Display this help message\n -u, --udev Enable udev mode\n -v, --version Display the version\n', azure_nvme_id_help_stderr='', azure_nvme_id_help_returncode=0, azure_nvme_id_version_stdout='azure-nvme-id 0.6.0-4\n', azure_nvme_id_version_stderr='', azure_nvme_id_version_returncode=0, azure_nvme_id_version='0.6.0-4', azure_nvme_id_zzz_stdout='Usage: azure-nvme-id [-d|--debug] [-u|--udev|-h|--help|-v|--version]\n -d, --debug Enable debug mode\n -f, --format {plain|json} Output format (default=plain)\n -h, --help Display this help message\n -u, --udev Enable udev mode\n -v, --version Display the version\n', azure_nvme_id_zzz_stderr='invalid argument: zzz\n', azure_nvme_id_zzz_returncode=1) [2025-10-03 14:31:00,385] no SCSI resource disk found [2025-10-03 14:31:00,385] disks info: DiskInfo(root_device='nvme1n1p1', dev_disk_azure_links=['/dev/disk/azure/local/by-index/1', '/dev/disk/azure/local/by-name/nvme-110G-1', '/dev/disk/azure/local/by-serial/90df032a12b60d6c0001', '/dev/disk/azure/os', '/dev/disk/azure/os-part1', '/dev/disk/azure/os-part13', '/dev/disk/azure/os-part14', '/dev/disk/azure/os-part15'], dev_disk_azure_resource_disk=None, dev_disk_azure_resource_disk_size_gib=0, nvme_local_disk_size_gib=110, nvme_local_disks_v1=[], nvme_local_disks_v2=['nvme0n1'], nvme_local_disks=['nvme0n1'], nvme_remote_data_disks=[], nvme_remote_disks=[], nvme_remote_os_disk='nvme1n1', root_device_is_nvme=True, scsi_resource_disk=None, scsi_resource_disk_size_gib=0) [2025-10-03 14:31:00,408] sku config: None [2025-10-03 14:31:00,408] validate_azure_nvme_id_help OK: 'Usage: azure-nvme-id [-d|--debug] [-u|--udev|-h|--help|-v|--version]\n -d, --debug Enable debug mode\n -f, --format {plain|json} Output format (default=plain)\n -h, --help Display this help message\n -u, --udev Enable udev mode\n -v, --version Display the version\n' [2025-10-03 14:31:00,408] validate_azure_nvme_id_version OK: 0.6.0-4 [2025-10-03 14:31:00,408] validate_azure_nvme_id_invalid_arg OK: 'Usage: azure-nvme-id [-d|--debug] [-u|--udev|-h|--help|-v|--version]\n -d, --debug Enable debug mode\n -f, --format {plain|json} Output format (default=plain)\n -h, --help Display this help message\n -u, --udev Enable udev mode\n -v, --version Display the version\n' [2025-10-03 14:31:00,408] validate_azure_nvme_disks OK: {'nvme0n1': AzureNvmeIdDevice(device='/dev/nvme0n1', model=None, nvme_id='type=local,index=1,name=nvme-110G-1', type='local', index=1, lun=None, name='nvme-110G-1', extra={}), 'nvme1n1': AzureNvmeIdDevice(device='/dev/nvme1n1', model=None, nvme_id='type=os', type='os', index=None, lun=None, name=None, extra={})} [2025-10-03 14:31:00,408] validate_azure_nvmve_id OK: '/dev/nvme0n1: type=local,index=1,name=nvme-110G-1\n/dev/nvme1n1: type=os\n' [2025-10-03 14:31:00,408] validate_azure_nvme_disks OK: {'nvme0n1': AzureNvmeIdDevice(device='/dev/nvme0n1', model=None, nvme_id='type=local,index=1,name=nvme-110G-1', type='local', index=1, lun=None, name='nvme-110G-1', extra={}), 'nvme1n1': AzureNvmeIdDevice(device='/dev/nvme1n1', model=None, nvme_id='type=os', type='os', index=None, lun=None, name=None, extra={})} [2025-10-03 14:31:00,408] validate_azure_nvmve_id_json OK: '[\n {\n "path": "/dev/nvme0n1",\n "model": "Microsoft NVMe Direct Disk v2",\n "properties": {\n "type": "local",\n "index": 1,\n "name": "nvme-110G-1"\n },\n "vs": "type=local,index=1,name=nvme-110G-1"\n },\n {\n "path": "/dev/nvme1n1",\n "model": "MSFT NVMe Accelerator v1.0",\n "properties": {\n "type": "os"\n },\n "vs": ""\n }\n]\n' [2025-10-03 14:31:00,408] validate_dev_disk_azure_links_data OK: [] [2025-10-03 14:31:00,408] validate_dev_disk_azure_links_local OK: ['/dev/disk/azure/local/by-index/1', '/dev/disk/azure/local/by-name/nvme-110G-1', '/dev/disk/azure/local/by-serial/90df032a12b60d6c0001'] [2025-10-03 14:31:00,408] validate_dev_disk_azure_links_os OK: '/dev/disk/azure/os' [2025-10-03 14:31:00,408] validate_dev_disk_azure_links_resource OK: '/dev/disk/azure/resource' [2025-10-03 14:31:00,408] validate_scsi_resource_disk OK: /dev/disk/azure/resource => None [2025-10-03 14:31:00,408] validate_interface enP64000s1 OK: NetworkInterface(name='enP64000s1', driver='mlx5_core', mac='7c:1e:52:5d:4e:18', ipv4_addrs=[], udev_properties={'DEVPATH': '/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/74be939c-fa00-4f1c-92d2-01b92989e8bc/pcifa00:00/fa00:00:02.0/net/enP64000s1', 'INTERFACE': 'enP64000s1', 'IFINDEX': '3', 'SUBSYSTEM': 'net', 'USEC_INITIALIZED': '9137589', 'AZURE_UNMANAGED_SRIOV': '1', 'ID_NET_MANAGED_BY': 'unmanaged', 'NM_UNMANAGED': '1', 'ID_NET_DRIVER': 'mlx5_core', 'ID_BUS': 'pci', 'ID_VENDOR_ID': '0x15b3', 'ID_MODEL_ID': '0x101a', 'ID_PCI_CLASS_FROM_DATABASE': 'Network controller', 'ID_PCI_SUBCLASS_FROM_DATABASE': 'Ethernet controller', 'ID_VENDOR_FROM_DATABASE': 'Mellanox Technologies', 'ID_MODEL_FROM_DATABASE': 'MT28800 Family [ConnectX-5 Ex Virtual Function]', 'ID_NET_NAMING_SCHEME': 'v257', 'ID_NET_NAME_MAC': 'enx7c1e525d4e18', 'ID_OUI_FROM_DATABASE': 'Microsoft', 'ID_NET_NAME_PATH': 'enP64000p0s2', 'ID_NET_NAME_SLOT': 'enP64000s1', 'ID_MM_CANDIDATE': '1', 'ID_PATH': 'acpi-MSFT1000:00-pci-fa00:00:02.0', 'ID_PATH_TAG': 'acpi-MSFT1000_00-pci-fa00_00_02_0', 'ID_NET_LINK_FILE': '/usr/lib/systemd/network/99-default.link', 'ID_NET_NAME': 'enP64000s1', 'SYSTEMD_ALIAS': '/sys/subsystem/net/devices/enP64000s1', 'TAGS': ':systemd:', 'CURRENT_TAGS': ':systemd:'}) [2025-10-03 14:31:00,408] validate_interface eth0 OK: NetworkInterface(name='eth0', driver='hv_netvsc', mac='7c:1e:52:5d:4e:18', ipv4_addrs=['10.0.0.49'], udev_properties={'DEVPATH': '/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/7c1e525d-4e18-7c1e-525d-4e187c1e525d/net/eth0', 'INTERFACE': 'eth0', 'IFINDEX': '2', 'SUBSYSTEM': 'net', 'USEC_INITIALIZED': '3514337', 'ID_NET_DRIVER': 'hv_netvsc', 'NM_UNMANAGED': '1', 'ID_NET_NAMING_SCHEME': 'v257', 'ID_NET_NAME_MAC': 'enx7c1e525d4e18', 'ID_OUI_FROM_DATABASE': 'Microsoft', 'ID_MM_CANDIDATE': '1', 'ID_PATH': 'acpi-MSFT1000:00', 'ID_PATH_TAG': 'acpi-MSFT1000_00', 'ID_NET_LINK_FILE': '/usr/lib/systemd/network/99-default.link', 'ID_NET_NAME': 'eth0', 'SYSTEMD_ALIAS': '/sys/subsystem/net/devices/eth0', 'TAGS': ':systemd:', 'CURRENT_TAGS': ':systemd:'}) [2025-10-03 14:31:00,408] validate_networking OK: NetworkInfo(interfaces={'enP64000s1': NetworkInterface(name='enP64000s1', driver='mlx5_core', mac='7c:1e:52:5d:4e:18', ipv4_addrs=[], udev_properties={'DEVPATH': '/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/74be939c-fa00-4f1c-92d2-01b92989e8bc/pcifa00:00/fa00:00:02.0/net/enP64000s1', 'INTERFACE': 'enP64000s1', 'IFINDEX': '3', 'SUBSYSTEM': 'net', 'USEC_INITIALIZED': '9137589', 'AZURE_UNMANAGED_SRIOV': '1', 'ID_NET_MANAGED_BY': 'unmanaged', 'NM_UNMANAGED': '1', 'ID_NET_DRIVER': 'mlx5_core', 'ID_BUS': 'pci', 'ID_VENDOR_ID': '0x15b3', 'ID_MODEL_ID': '0x101a', 'ID_PCI_CLASS_FROM_DATABASE': 'Network controller', 'ID_PCI_SUBCLASS_FROM_DATABASE': 'Ethernet controller', 'ID_VENDOR_FROM_DATABASE': 'Mellanox Technologies', 'ID_MODEL_FROM_DATABASE': 'MT28800 Family [ConnectX-5 Ex Virtual Function]', 'ID_NET_NAMING_SCHEME': 'v257', 'ID_NET_NAME_MAC': 'enx7c1e525d4e18', 'ID_OUI_FROM_DATABASE': 'Microsoft', 'ID_NET_NAME_PATH': 'enP64000p0s2', 'ID_NET_NAME_SLOT': 'enP64000s1', 'ID_MM_CANDIDATE': '1', 'ID_PATH': 'acpi-MSFT1000:00-pci-fa00:00:02.0', 'ID_PATH_TAG': 'acpi-MSFT1000_00-pci-fa00_00_02_0', 'ID_NET_LINK_FILE': '/usr/lib/systemd/network/99-default.link', 'ID_NET_NAME': 'enP64000s1', 'SYSTEMD_ALIAS': '/sys/subsystem/net/devices/enP64000s1', 'TAGS': ':systemd:', 'CURRENT_TAGS': ':systemd:'}), 'eth0': NetworkInterface(name='eth0', driver='hv_netvsc', mac='7c:1e:52:5d:4e:18', ipv4_addrs=['10.0.0.49'], udev_properties={'DEVPATH': '/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/7c1e525d-4e18-7c1e-525d-4e187c1e525d/net/eth0', 'INTERFACE': 'eth0', 'IFINDEX': '2', 'SUBSYSTEM': 'net', 'USEC_INITIALIZED': '3514337', 'ID_NET_DRIVER': 'hv_netvsc', 'NM_UNMANAGED': '1', 'ID_NET_NAMING_SCHEME': 'v257', 'ID_NET_NAME_MAC': 'enx7c1e525d4e18', 'ID_OUI_FROM_DATABASE': 'Microsoft', 'ID_MM_CANDIDATE': '1', 'ID_PATH': 'acpi-MSFT1000:00', 'ID_PATH_TAG': 'acpi-MSFT1000_00', 'ID_NET_LINK_FILE': '/usr/lib/systemd/network/99-default.link', 'ID_NET_NAME': 'eth0', 'SYSTEMD_ALIAS': '/sys/subsystem/net/devices/eth0', 'TAGS': ':systemd:', 'CURRENT_TAGS': ':systemd:'})}) [2025-10-03 14:31:00,408] validate_sku_config SKIPPED: no sku configuration for VM size 'Standard_E2ads_v6' [2025-10-03 14:31:00,408] success! And, in dmesg: [ 2477.205168] audit: type=1400 audit(1759494289.696:387): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="lsblk" pid=4270 comm="apparmor_parser" [ 2512.115007] audit: type=1400 audit(1759494324.607:388): apparmor="ALLOWED" operation="open" class="file" profile="lsblk" name="/sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/MSFT1000:00/70b4ac38-05b7-4efe-8862-db2456dfec84/pci05b7:00/05b7:00:00.0/nvme/nvme0/nvme0n1/" pid=4287 comm="lsblk" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Actually, the tests are skipped as they need to be run inside an Azure VM, but in the CPC Azure squad, we run them manually as part of this package validation. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2126920/+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

