<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">On 18/08/21 12:24 pm, Amish wrote:<br>
</div>
<blockquote type="cite"
cite="mid:c6ff2d03-814c-b37e-0cad-ea72c2a247a0@gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<p>Hello</p>
<p>Further to my previous email:</p>
<p>I see that there is already an <b>extremely similar issue</b>
reported on July 12, 2021 and it has been fixed.<br>
<br>
<a class="moz-txt-link-freetext"
href="https://github.com/systemd/systemd/issues/20203"
moz-do-not-send="true">https://github.com/systemd/systemd/issues/20203</a><br>
<br>
But I do not know if this fix exists in systemd v249.3 (Arch
Linux)<br>
<br>
If it exists that means that fix is breaking my system.<br>
And if it does not exist that means, I can expect it to fix my
issue.<br>
</p>
</blockquote>
<p><br>
</p>
<p>systemd v249.4 seems to have fixed the issue. (Arch Linux)<br>
</p>
<p>Regards</p>
<p>Amish</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:c6ff2d03-814c-b37e-0cad-ea72c2a247a0@gmail.com">
<p> </p>
<p>Regards,</p>
<p>Amish.<br>
</p>
<div class="moz-cite-prefix">On 18/08/21 11:42 am, Amish wrote:<br>
</div>
<blockquote type="cite"
cite="mid:1043b8c7-a453-ad5e-579a-8721a7fbcfd5@gmail.com">
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<p>Hello,</p>
<p>Thank you for your reply.<br>
</p>
<p>I can understand that there can be race.</p>
<p><b>But when I check logs, there is no race happening</b>.<br>
</p>
<p><b>Let us see and analyze the logs.</b></p>
<p>Stage 1:<br>
System boots, and kernel assigns eth0, eth1 and eth2 as
interface names.<br>
</p>
<p>Aug 18 09:17:13 kk kernel: e1000e 0000:00:1f.6 eth0: (PCI
Express:2.5GT/s:Width x1) e0:d5:5e:8d:7f:2f<br>
Aug 18 09:17:13 kk kernel: e1000e 0000:00:1f.6 eth0: Intel(R)
PRO/1000 Network Connection<br>
Aug 18 09:17:13 kk kernel: e1000e 0000:00:1f.6 eth0: MAC: 13,
PHY: 12, PBA No: FFFFFF-0FF<br>
Aug 18 09:17:13 kk kernel: 8139too 0000:04:00.0 eth1: RealTek
RTL8139 at 0x000000000e8fc9bb, 00:e0:4d:05:ee:a2, IRQ 19<br>
Aug 18 09:17:13 kk kernel: r8169 0000:02:00.0 eth2:
RTL8168e/8111e, 50:3e:aa:05:2b:ca, XID 2c2, IRQ 129<br>
Aug 18 09:17:13 kk kernel: r8169 0000:02:00.0 eth2: jumbo
features [frames: 9194 bytes, tx checksumming: ko]</p>
<p>Stage 2:<br>
Now udev rules are triggered and the interfaces are renamed to
tmpeth0, tmpeth2 and tmpeth1.<br>
</p>
<p>Aug 18 09:17:13 kk kernel: 8139too 0000:04:00.0 tmpeth2:
renamed from eth1<br>
Aug 18 09:17:13 kk kernel: e1000e 0000:00:1f.6 tmpeth0:
renamed from eth0<br>
Aug 18 09:17:13 kk kernel: r8169 0000:02:00.0 tmpeth1: renamed
from eth2</p>
<p>Stage 3:<br>
Now my script is called and it renames interfaces to eth0,
eth2 and eth1.<br>
</p>
<p>Aug 18 09:17:13 kk kernel: e1000e 0000:00:1f.6 eth0: renamed
from tmpeth0<br>
Aug 18 09:17:14 kk kernel: r8169 0000:02:00.0 eth1: renamed
from tmpeth1<br>
Aug 18 09:17:14 kk kernel: 8139too 0000:04:00.0 eth2: renamed
from tmpeth2</p>
<p>Effectively original interface eth1 and eth2 are swapped.
While eth0 remains eth0.<br>
</p>
<p>All these happened before systemd-networkd started and
interface renaming was over by 9:17:14.<br>
</p>
<p>Stage 4:<br>
Now systemd-networkd starts, 2 seconds after all interface
have been assigned their final names.</p>
<p>Aug 18 09:17:16 kk systemd[1]: Starting Network
Configuration...<br>
Aug 18 09:17:17 kk systemd-networkd[426]: lo: Link UP<br>
Aug 18 09:17:17 kk systemd-networkd[426]: lo: Gained carrier<br>
Aug 18 09:17:17 kk systemd-networkd[426]: Enumeration
completed<br>
Aug 18 09:17:17 kk systemd[1]: Started Network Configuration.<br>
Aug 18 09:17:17 kk systemd-networkd[426]: eth2: Interface name
change detected, renamed to eth1.<br>
Aug 18 09:17:17 kk systemd-networkd[426]: Could not process
link message: File exists<br>
Aug 18 09:17:17 kk systemd-networkd[426]: eth1: Failed<br>
Aug 18 09:17:17 kk systemd-networkd[426]: eth1: Interface name
change detected, renamed to eth2.<br>
Aug 18 09:17:17 kk systemd-networkd[426]: eth1: Interface name
change detected, renamed to tmpeth2.<br>
Aug 18 09:17:17 kk systemd-networkd[426]: eth0: Interface name
change detected, renamed to tmpeth0.<br>
Aug 18 09:17:17 kk systemd-networkd[426]: eth2: Interface name
change detected, renamed to tmpeth1.<br>
Aug 18 09:17:17 kk systemd-networkd[426]: tmpeth0: Interface
name change detected, renamed to eth0.<br>
Aug 18 09:17:17 kk systemd-networkd[426]: tmpeth1: Interface
name change detected, renamed to eth1.<br>
Aug 18 09:17:17 kk systemd-networkd[426]: tmpeth2: Interface
name change detected, renamed to eth2.<br>
Aug 18 09:17:17 kk systemd-networkd[426]: eth1: Link UP<br>
Aug 18 09:17:17 kk systemd-networkd[426]: eth0: Link UP<br>
Aug 18 09:17:20 kk systemd-networkd[426]: eth0: Gained carrier<br>
</p>
<p>This is when eth0 and eth1 interfaces are up and configured
by systemd-networkd but eth2 is down and not configured.</p>
<p><b>None of the .network configuration files match by
interface names. They all match just by MAC address.<br>
<br>
</b># sample .network file.<br>
</p>
<p>[Match]<br>
MACAddress=e0:d5:5e:8d:7f:2f<br>
Type=ether<br>
<br>
[Network]<br>
IgnoreCarrierLoss=yes<br>
LinkLocalAddressing=no<br>
IPv6AcceptRA=no<br>
ConfigureWithoutCarrier=true<br>
Address=192.168.25.2/24<br>
<b><br>
</b></p>
<p>Above error message "eth1: failed", was not showing earlier
version of systemd.</p>
<p>So recent version of systemd-networkd is doing something
different and this is where something is going wrong.<br>
<br>
</p>
<p>Stage 5: (my workaround for this issue)<br>
I wrote a new service file which restarts systemd-networkd
after waiting for 10 seconds.</p>
<p>Aug 18 09:17:27 kk systemd[1]: Stopping Network
Configuration...<br>
Aug 18 09:17:27 kk systemd[1]: systemd-networkd.service:
Deactivated successfully.<br>
Aug 18 09:17:27 kk systemd[1]: Stopped Network Configuration.<br>
Aug 18 09:17:27 kk systemd[1]: Starting Network
Configuration...<br>
Aug 18 09:17:27 kk systemd-networkd[579]: eth1: Link UP<br>
Aug 18 09:17:27 kk systemd-networkd[579]: eth0: Link UP<br>
Aug 18 09:17:27 kk systemd-networkd[579]: eth0: Gained carrier<br>
Aug 18 09:17:27 kk systemd-networkd[579]: lo: Link UP<br>
Aug 18 09:17:27 kk systemd-networkd[579]: lo: Gained carrier<br>
Aug 18 09:17:27 kk systemd-networkd[579]: Enumeration
completed<br>
Aug 18 09:17:27 kk systemd[1]: Started Network Configuration.<br>
Aug 18 09:17:27 kk systemd-networkd[579]: eth2: Link UP<br>
Aug 18 09:17:27 kk systemd-networkd[579]: eth2: Gained carrier<br>
<br>
All interfaces are now up and running as expected.<br>
</p>
<p>Please check as I do not believe that this issue is causing
any race but to me it looks like some logical change in
systemd-networkd which is causing the issue.<br>
</p>
<p>Thank you and regards,<br>
</p>
<p>Amish</p>
</blockquote>
</blockquote>
</body>
</html>