Public bug reported:

My systemd-modules-load.service fails to start like this:

● systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static; 
vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2020-10-27 10:24:52 PDT; 4s ago
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
  Process: 23683 ExecStart=/lib/systemd/systemd-modules-load (code=exited, 
status=1/FAILURE)
 Main PID: 23683 (code=exited, status=1/FAILURE)

Oct 27 10:24:52 octagon systemd[1]: Starting Load Kernel Modules...
Oct 27 10:24:52 octagon systemd-modules-load[23683]: Failed to find module 
'vfio vfio_iommu_type1 vfio_pci vfio_virqfd'
Oct 27 10:24:52 octagon systemd[1]: systemd-modules-load.service: Main process 
exited, code=exited, status=1/FAILURE
Oct 27 10:24:52 octagon systemd[1]: systemd-modules-load.service: Failed with 
result 'exit-code'.
Oct 27 10:24:52 octagon systemd[1]: Failed to start Load Kernel Modules.

It looks like it's trying to interpret a whole module-and-arguments
string as just a module name, and failing to load this.

By recursive grep of /etc, the only place it can be getting that string
is /etc/modules:

$ sudo ag vfio_iommu_type1
[sudo] password for anovak: 
modules
5:vfio vfio_iommu_type1 vfio_pci vfio_virqfd

The manpage for /etc/modules clearly says that the file may contain
module names *and* arguments:

[anovak@octagon ~]$ man modules | grep Arguments
       The /etc/modules file contains the names of kernel modules that are to 
be loaded at boot time, one per line. Arguments can be given in the same line 
as the module name. Lines beginning with a

The manpage for systemd-modules-load.service doesn't mention
/etc/modules, and says to see the manpage for modules-load.d(5). That
manpage says that it only reads files from specific directories:

SYNOPSIS
       /etc/modules-load.d/*.conf

       /run/modules-load.d/*.conf

       /usr/lib/modules-load.d/*.conf

The manpage is clearly lying, and systemd-modules-load.service is
clearly also reading /etc/modules. Moreover, it's misreading it, and not
interpreting it according to the documented semantics of /etc/modules.

I was induced to create an /etc/modules like this by
https://mathiashueber.com/windows-virtual-machine-gpu-passthrough-
ubuntu/ but I'm not sure that it's actually getting used by anything,
because lsmod shows some but not all of the options I specified.

[anovak@octagon etc]$ lsmod | grep "^vfio "
vfio                   28672  2 vfio_iommu_type1,vfio_pci

Can systemd be made to stop reading /etc/modules so that it doesn't
report failure when it doesn't understand lines with options? And is
that file being read by something else in the system, or should I just
remove it as a workaround to stop upsetting systemd?

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: systemd 237-3ubuntu10.42
ProcVersionSignature: Ubuntu 4.15.0-122.124-generic 4.15.18
Uname: Linux 4.15.0-122-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.9-0ubuntu7.18
Architecture: amd64
CurrentDesktop: ubuntu:GNOME
Date: Tue Oct 27 10:33:50 2020
InstallationDate: Installed on 2017-08-06 (1177 days ago)
InstallationMedia: Ubuntu 17.04 "Zesty Zapus" - Release amd64 (20170412)
MachineType: System manufacturer System Product Name
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.15.0-122-generic 
root=UUID=5219a3ae-e14c-4f63-8f62-17cebc1af57a ro modprobe.blacklist=amdgpu 
usb_storage.quirks=0bc2:ab38: amd_iommu=on vfio-pci.ids=1002:67df
SourcePackage: systemd
UpgradeStatus: Upgraded to bionic on 2018-05-29 (882 days ago)
dmi.bios.date: 12/08/2018
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 4207
dmi.board.asset.tag: Default string
dmi.board.name: PRIME X370-PRO
dmi.board.vendor: ASUSTeK COMPUTER INC.
dmi.board.version: Rev X.0x
dmi.chassis.asset.tag: Default string
dmi.chassis.type: 3
dmi.chassis.vendor: Default string
dmi.chassis.version: Default string
dmi.modalias: 
dmi:bvnAmericanMegatrendsInc.:bvr4207:bd12/08/2018:svnSystemmanufacturer:pnSystemProductName:pvrSystemVersion:rvnASUSTeKCOMPUTERINC.:rnPRIMEX370-PRO:rvrRevX.0x:cvnDefaultstring:ct3:cvrDefaultstring:
dmi.product.family: To be filled by O.E.M.
dmi.product.name: System Product Name
dmi.product.version: System Version
dmi.sys.vendor: System manufacturer
mtime.conffile..etc.systemd.journald.conf: 2018-05-28T15:25:25.223494
mtime.conffile..etc.systemd.resolved.conf: 2017-09-24T15:57:22.768472

** Affects: systemd (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug bionic

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1901742

Title:
  systemd-modules-load.service fails to start because it can't
  understand module arguments in /etc/modules, which it shouldn't even
  be reading

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1901742/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to