Skip to content

Commit 9ea28c5

Browse files
committed
udev: remove seqnum API and all assumptions about seqnums
The way the kernel namespaces have been implemented breaks assumptions udev made regarding uevent sequence numbers. Creating devices in a namespace "steals" uevents and its sequence numbers from the host. It confuses the "udevadmin settle" logic, which might block until util a timeout is reached, even when no uevent is pending. Remove any assumptions about sequence numbers and deprecate libudev's API exposing these numbers; none of that can reliably be used anymore when namespaces are involved.
1 parent a163b64 commit 9ea28c5

File tree

11 files changed

+84
-897
lines changed

11 files changed

+84
-897
lines changed

Makefile.am

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2587,8 +2587,7 @@ noinst_LTLIBRARIES += \
25872587

25882588
libudev_internal_la_SOURCES =\
25892589
$(libudev_la_SOURCES) \
2590-
src/libudev/libudev-device-private.c \
2591-
src/libudev/libudev-queue-private.c
2590+
src/libudev/libudev-device-private.c
25922591

25932592
libudev_internal_la_CFLAGS = \
25942593
$(AM_CFLAGS) \
@@ -5169,6 +5168,9 @@ test_libsystemd_sym_LDADD = \
51695168

51705169
test_libudev_sym_SOURCES = \
51715170
test-libudev-sym.c
5171+
test_libudev_sym_CFLAGS = \
5172+
$(AM_CFLAGS) \
5173+
-Wno-deprecated-declarations
51725174
test_libudev_sym_LDADD = \
51735175
libudev.la
51745176

man/udevadm.xml

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -338,35 +338,13 @@
338338
return immediately.</para>
339339
</listitem>
340340
</varlistentry>
341-
<varlistentry>
342-
<term><option>-s</option></term>
343-
<term><option>--seq-start=<replaceable>SEQNUM</replaceable></option></term>
344-
<listitem>
345-
<para>Wait only for events after the given sequence
346-
number.</para>
347-
</listitem>
348-
</varlistentry>
349-
<varlistentry>
350-
<term><option>-e</option></term>
351-
<term><option>--seq-end=<replaceable>SEQNUM</replaceable></option></term>
352-
<listitem>
353-
<para>Wait only for events before the given sequence number.</para>
354-
</listitem>
355-
</varlistentry>
356341
<varlistentry>
357342
<term><option>-E</option></term>
358343
<term><option>--exit-if-exists=<replaceable>FILE</replaceable></option></term>
359344
<listitem>
360345
<para>Stop waiting if file exists.</para>
361346
</listitem>
362347
</varlistentry>
363-
<varlistentry>
364-
<term><option>-q</option></term>
365-
<term><option>--quiet</option></term>
366-
<listitem>
367-
<para>Do not print any output, like the remaining queue entries when reaching the timeout.</para>
368-
</listitem>
369-
</varlistentry>
370348
<varlistentry>
371349
<term><option>-h</option></term>
372350
<term><option>--help</option></term>

src/libudev/libudev-monitor.c

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -146,21 +146,6 @@ static bool udev_has_devtmpfs(struct udev *udev) {
146146
return false;
147147
}
148148

149-
/* we consider udev running when we have running udev service */
150-
static bool udev_has_service(struct udev *udev) {
151-
struct udev_queue *queue;
152-
bool active;
153-
154-
queue = udev_queue_new(udev);
155-
if (!queue)
156-
return false;
157-
158-
active = udev_queue_get_udev_is_active(queue);
159-
udev_queue_unref(queue);
160-
161-
return active;
162-
}
163-
164149
struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd)
165150
{
166151
struct udev_monitor *udev_monitor;
@@ -184,7 +169,7 @@ struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const c
184169
* We do not set a netlink multicast group here, so the socket
185170
* will not receive any messages.
186171
*/
187-
if (!udev_has_service(udev) && !udev_has_devtmpfs(udev)) {
172+
if (access("/run/udev/control", F_OK) < 0 && !udev_has_devtmpfs(udev)) {
188173
udev_dbg(udev, "the udev service seems not to be active, disable the monitor\n");
189174
group = UDEV_MONITOR_NONE;
190175
} else

0 commit comments

Comments
 (0)