| 19 Oct 2025 |
ElvishJerricco | interesting | 19:27:01 |
dramforever | userspace knows what placeholders there could be by reading /lib/modules/*/modules.devname | 19:28:19 |
dramforever | and i think it loads module by a device number alias, so snd-timer is char-major-116-33 | 19:29:01 |
ElvishJerricco | so, running on systemd 257.9, I still see that udev doesn't recognize /dev/snd/timer as a device, and snd_timer is not in lsmod | 19:31:38 |
ElvishJerricco | so those things are the same | 19:31:41 |
dramforever | oh, right, https://www.freedesktop.org/software/systemd/man/latest/udev.html#static_node= | 19:31:50 |
dramforever | .... i thought i understood what this is but now i don't anymore | 19:32:33 |
ElvishJerricco | I mean it almost certainly has something to do with the uaccess changes | 19:34:41 |
ElvishJerricco | wat | 19:35:31 |
ElvishJerricco | In [2]: print(machine.execute("ls -lha /run/udev/static_node-tags/uaccess/")[1])
total 0
drwxr-xr-x 2 root root 80 Oct 19 19:34 .
drwxr-xr-x 3 root root 60 Oct 19 19:34 ..
lrwxrwxrwx 1 root root 12 Oct 19 19:34 snd\x2fseq -> /dev/snd/seq
lrwxrwxrwx 1 root root 14 Oct 19 19:34 snd\x2ftimer -> /dev/snd/timer
| 19:35:35 |
dramforever | but anyway if my theory is correct then this is a real 258 regression and could be reproducible on fedora rawhide or something | 19:35:35 |
ElvishJerricco | /run/udev/static_node-tags/ is supposed to be populated with symlinks indicating the tags that have been applied to static dev nodes | 19:36:32 |
ElvishJerricco | so, like, /dev/snd/timer has the tag, in theory | 19:37:03 |
ElvishJerricco | (the above past was back on 258, to be clear) | 19:37:14 |
ElvishJerricco | * (the above paste was back on 258, to be clear) | 19:37:19 |
ElvishJerricco | dramforever: tell me if this makes sense... In 257, logind was seeing that static_node-tags link thing and doing the ACLs for uaccess, even on these static dev-nodes for not-yet-loaded modules. In 258, such nodes aren't processed by udev; so the change that made it so udev is the one to apply the ACLs doesn't work for them. | 19:40:22 |
dramforever | i think it's possible, but i have no idea how it works under the hood | 19:41:13 |
ElvishJerricco | yea, I'm gonna go look at how logind did the acl stuff in 257 | 19:41:51 |
ElvishJerricco | this sounds like a plausible explanation | 19:42:02 |
ElvishJerricco | yea, that's exactly what logind does in 257; it iterates over the /run/udev/static_node-tags/uaccess directory | 19:44:53 |
ElvishJerricco | and yea, of course the code that did that is deleted in 258 | 19:45:50 |
ElvishJerricco | oh, not deleted; moved | 19:50:07 |
ElvishJerricco | * oh, not deleted; moved | 19:50:45 |
ElvishJerricco | nope, deleted | 19:50:47 |
ElvishJerricco | I think the bug report here is basically: "uaccess no longer works with OPTIONS+="static_node=..."" | 19:52:14 |
ElvishJerricco | and the body can say "y'all deleted the code that used to do that" :P | 19:52:51 |
dramforever | do you have any idea if we can work around this better than "just ignore the test for now"? | 19:54:24 |
ElvishJerricco | looks like this bug report is the same problem: https://github.com/systemd/systemd/issues/39043
and is fixed by: https://github.com/systemd/systemd/pull/39071
Haven't looked at that code yet to make sure it would actually help us | 19:54:54 |
ElvishJerricco | anyway we can workaround it by checking an actual dev node, not a static dev node, in this test | 19:55:12 |
dramforever | but the bug is still there... | 19:56:02 |