On Mon, Jan 15, 2024 at 12:19:06PM +0500, Марк Коренберг wrote:
Kernel 6.6.9-200.fc39.x86_64
The following bash script demonstrates the problem (run under root):
#!/bin/bash set -e -u -x # Some cleanups ip netns delete myspace || : ip link del qweqwe1 || : # The bug happens only with physical interfaces, not with, say, dummy one ip link property add dev enp0s20f0u2 altname myname ip netns add myspace ip link set enp0s20f0u2 netns myspace # add dummy interface + set the same altname as in background namespace. ip link add name qweqwe1 type dummy ip link property add dev qweqwe1 altname myname # Trigger the bug. The kernel will try to return ethernet interface back to root namespace, but it can not, because of conflicting altnames. ip netns delete myspace # now `ip link` will hang forever !!!!!
I think, the problem is obvious. Althougn I don't know how to fix. Remove conflicting altnames for interfaces that returns from killed namespaces ?
As this can only be triggered by root, not much for us to do here, perhaps discuss it on the netdev mailing list for all network developers to work on?
On kernel 6.3.8 (at least) was another bug, that allows dulicate altnames, and it was fixed mainline somewhere. I have another script to trigger the bug on these old kernels. I did not bisect.
If this is an issue on 6.1.y, that would be good to know so that we can try to fix the issue there if bisection can find it. Care to share the script so that I can test?
thanks,
greg k-h