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