[systemd-devel] Assertion 'udev_device' failed at src/libudev/libudev-device.c:742, function udev_device_get_sysattr_value(). Aborting.

Cristian Rodríguez crrodriguez at opensuse.org
Sat Nov 2 19:07:06 UTC 2024


On Sat, Nov 2, 2024 at 5:38 AM Sietse van Zanen <sietse at wizdom.nu> wrote:

> I seem to be hitting some very weird corner case causing an assertion
> failure. The offender is ZFS Event Daemon:
>
>
>
> The following code shows the offence:
>
>                                struct udev_device *dev;
>
>                                if ((dev =
> udev_monitor_receive_device(mon)) == NULL) {
>
>                                                zed_log_msg(LOG_WARNING,
> "zed_udev_monitor: receive "
>
>                                                    "device error %d",
> errno);
>
>                                                continue;
>
>                                }
>
>                                …..
>
>                                sectors =
> udev_device_get_property_value(dev,
>
>                                                     "ID_PART_ENTRY_SIZE");
>
>                                if (sectors == NULL)
>
>                                                sectors =
> udev_device_get_sysattr_value(dev, "size");
>
>
>
> Im at a loss here as to what’s causing the assertion failure. Both
> udev_device_get_property_value and udev_device_get_sysattr_value only
> assert a valid udev_device pointer. How can the pointer get lost between
> these two function calls?
>
>
>
> -Sietse
>
>
>
 you need to poll before any valid udev_device is returned to you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20241102/36455ed7/attachment.htm>


More information about the systemd-devel mailing list