systemd kmod builtin uses out of date kmod context
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
systemd |
Fix Released
|
Unknown
|
|||
debian-installer (Ubuntu) |
Fix Released
|
Undecided
|
Dimitri John Ledkov | ||
Trusty |
Won't Fix
|
Undecided
|
Unassigned | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned | ||
Zesty |
Won't Fix
|
Undecided
|
Unassigned | ||
Artful |
Fix Released
|
Undecided
|
Unassigned | ||
debian-installer-utils (Ubuntu) |
Fix Released
|
Critical
|
Dimitri John Ledkov | ||
Trusty |
Won't Fix
|
Undecided
|
Unassigned | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned | ||
Zesty |
Fix Released
|
Undecided
|
Unassigned | ||
Artful |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
udev's rules use a built-in 'kmod' instead of the system modprobe/insmod, and this built-in kmod only validates/refreshes its kmod 'context' every 3 seconds (or longer) during event processing.
However, because other parts of the system rely on udev to load modules correctly, it is not acceptable for it to use an out of date module context. For example, during a system installation:
-the system boots with kernel and initrd with a reduced set of modules, not including nvme module
-udevd starts, and creates its kmod module context, which does not include nvme module
-system installer adds 'block-modules' udeb, which adds nvme module to system
-system installer immediately calls hw-detect-
-udevd sees its kmod module context is not more than 3 seconds old, and does not update it
-udevd rule 80-drivers.rules finds NVMe pci modalias and asks kmod builtin to load matching driver
-udevd kmod builtin does not find NVMe pci modalias because its context is out of date
this results in the system installer complaining to the user that it found no disks, even though there is a NVMe drive in the system, and the nvme module is installed in the system.
The fix is to reload udevadm rules, as per upstream recommendation.
[Test Case]
This is reproducable when trying to install using debian-installer and a preseed file that skips all questions, although not on all systems, since other events can cause udevd to reload all its builtins, or the installer may take longer than 3 seconds to call udevadm trigger after installing the nvme module udeb.
Stale context in udevd is expected, and one is supposed to reload rules via udevadm, which is the fix proposed in debian-
[Regression Potential]
Additional calls to udevadm reload will cause all udev rules to be re-read correctly. This may lead to new devices discovered/
Changed in systemd (Ubuntu): | |
status: | New → In Progress |
importance: | Undecided → Medium |
assignee: | nobody → Dan Streetman (ddstreet) |
Changed in systemd: | |
status: | Unknown → New |
Changed in systemd (Ubuntu Zesty): | |
assignee: | nobody → Dan Streetman (ddstreet) |
Changed in systemd (Ubuntu Xenial): | |
assignee: | nobody → Dan Streetman (ddstreet) |
Changed in systemd (Ubuntu Trusty): | |
assignee: | nobody → Dan Streetman (ddstreet) |
Changed in systemd (Ubuntu Zesty): | |
status: | New → In Progress |
Changed in systemd (Ubuntu Xenial): | |
status: | New → In Progress |
Changed in systemd (Ubuntu Zesty): | |
importance: | Undecided → Medium |
Changed in systemd (Ubuntu Xenial): | |
importance: | Undecided → Medium |
Changed in systemd: | |
status: | New → Fix Released |
Changed in systemd (Ubuntu Artful): | |
status: | In Progress → Won't Fix |
no longer affects: | systemd (Ubuntu Zesty) |
no longer affects: | systemd (Ubuntu Trusty) |
no longer affects: | systemd (Ubuntu Xenial) |
Changed in systemd (Ubuntu): | |
status: | In Progress → Won't Fix |
no longer affects: | systemd (Ubuntu Artful) |
tags: | added: patch |
Changed in debian-installer-utils (Ubuntu): | |
status: | New → Confirmed |
milestone: | none → ubuntu-17.09 |
assignee: | nobody → Dimitri John Ledkov (xnox) |
importance: | Undecided → Critical |
Changed in debian-installer-utils (Ubuntu): | |
status: | Confirmed → New |
no longer affects: | debian-installer (Ubuntu Artful) |
no longer affects: | debian-installer (Ubuntu Zesty) |
no longer affects: | debian-installer (Ubuntu Xenial) |
no longer affects: | debian-installer (Ubuntu Trusty) |
no longer affects: | systemd (Ubuntu Trusty) |
no longer affects: | systemd (Ubuntu Xenial) |
no longer affects: | systemd (Ubuntu Zesty) |
Changed in debian-installer (Ubuntu): | |
milestone: | none → ubuntu-17.10 |
status: | New → Fix Committed |
tags: | added: sts-sponsor-ddstreet |
Changed in debian-installer-utils (Ubuntu Artful): | |
status: | New → Fix Released |
Changed in debian-installer-utils (Ubuntu Zesty): | |
assignee: | nobody → Dan Streetman (ddstreet) |
Changed in debian-installer-utils (Ubuntu Xenial): | |
assignee: | nobody → Dan Streetman (ddstreet) |
Changed in debian-installer-utils (Ubuntu Trusty): | |
assignee: | nobody → Dan Streetman (ddstreet) |
Changed in systemd (Ubuntu Artful): | |
status: | New → Won't Fix |
description: | updated |
Changed in debian-installer (Ubuntu Zesty): | |
status: | In Progress → Won't Fix |
Changed in debian-installer (Ubuntu Trusty): | |
status: | In Progress → Won't Fix |
Changed in debian-installer-utils (Ubuntu Trusty): | |
status: | In Progress → Won't Fix |
note that the test script in the description must be run as root on a system that does have a nvme drive that isn't in use (because the nvme module can't be removed if any nvme drive is in use).