On Sat, Dec 6, 2014 at 8:10 PM, Dave Reisner <d...@falconindy.com> wrote: > On Sat, Dec 06, 2014 at 01:46:23PM -0500, Dave Reisner wrote: >> Hi, >> >> With the latest pull from git, I'm seeing a failed assertion in >> systemd-networkd: >> >> Assertion 's' failed at src/shared/util.c:413, function safe_atou8(). >> Aborting. >> >> The problematic .network file is simply: >> >> [Match] >> Name=eth0 >> >> [Network] >> DHCP=v4 >> >> The backtrace points here: >> >> http://cgit.freedesktop.org/systemd/systemd/tree/src/network/networkd-network.c#n233 >> >> Where I suppose that: >> >> udev_device_get_sysattr_value(device, "name_assign_type"); >> >> is returning NULL. The file exists, but any attempts to read it results >> in a 0 byte read and an EINVAL errno. Removing the [Match] section from >> the .network file avoids the failed assertion. >> >> Is this a kernel bug? Shouldn't this file be returning one of the enums >> values like NET_NAME_PREDICTABLE or NET_NAME_USER? This holds true on >> both a VM (using the virtio-net module), and also on my desktop (using >> the sky2 module). > > Ah, I see: > > https://github.com/torvalds/linux/blob/master/net/core/net-sysfs.c#L120 > > If dev->name_assign_type == NET_NAME_UNKNOWN, reading name_assign_type > errors with -EINVAL. Tom, why is this intentionally hidden from > userspace? > > https://github.com/torvalds/linux/blob/master/include/uapi/linux/netdevice.h#L41
So that we can change it into some other NET_NAME_* value in the future without "breaking userspace". It is (apparently) ok to change from returning an error into returning some value, but not ok to change the value you return. Cheers, Tom _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel