[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