Christian Brauner
c89d100f6a
selftests/namespaces: twelth inactive namespace resurrection test
...
Test multi-level namespace resurrection across three user namespace levels.
This test creates a complex namespace hierarchy with three levels of user
namespaces and a network namespace at the deepest level. It verifies that
the resurrection semantics work correctly when SIOCGSKNS is called on a
socket from an inactive namespace tree, and that listns() and
open_by_handle_at() correctly respect visibility rules.
Hierarchy after child processes exit (all with 0 active refcount):
net_L3A (0) <- Level 3 network namespace
|
+
userns_L3 (0) <- Level 3 user namespace
|
+
userns_L2 (0) <- Level 2 user namespace
|
+
userns_L1 (0) <- Level 1 user namespace
|
x
init_user_ns
The test verifies:
1. SIOCGSKNS on a socket from inactive net_L3A resurrects the entire chain
2. After resurrection, all namespaces are visible in listns()
3. Resurrected namespaces can be reopened via file handles
4. Closing the netns FD cascades down: the entire ownership chain
(userns_L3 -> userns_L2 -> userns_L1) becomes inactive again
5. Inactive namespaces disappear from listns() and cannot be reopened
6. Calling SIOCGSKNS again on the same socket resurrects the tree again
7. After second resurrection, namespaces are visible and can be reopened
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-66-2e6f823ebdc0@kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:24 +01:00
Christian Brauner
c80168b677
selftests/namespaces: eleventh inactive namespace resurrection test
...
Test combined listns() and file handle operations with socket-kept
netns. Create a netns, keep it alive with a socket, verify it appears in
listns(), then reopen it via file handle obtained from listns() entry.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-65-2e6f823ebdc0@kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:24 +01:00
Christian Brauner
3798991a9f
selftests/namespaces: tenth inactive namespace resurrection test
...
Test that socket-kept netns can be reopened via file handle.
Verify that a network namespace kept alive by a socket FD can be
reopened using file handles even after the creating process exits.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-64-2e6f823ebdc0@kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:24 +01:00
Christian Brauner
b9d09f568b
selftests/namespaces: ninth inactive namespace resurrection test
...
Test that socket-kept netns appears in listns() output.
Verify that a network namespace kept alive by a socket FD appears in
listns() output even after the creating process exits, and that it
disappears when the socket is closed.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-63-2e6f823ebdc0@kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:24 +01:00
Christian Brauner
6de17ec3cc
selftests/namespaces: eigth inactive namespace resurrection test
...
Test IPv6 sockets also work with SIOCGSKNS.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-62-2e6f823ebdc0@kernel.org
Tested-by: syzbot@syzkaller.appspotmail.com
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:23 +01:00
Christian Brauner
54a29d1233
selftests/namespaces: seventh inactive namespace resurrection test
...
Test socket keeps netns active after creating process exits. Verify that
as long as the socket FD exists, the namespace remains active.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-61-2e6f823ebdc0@kernel.org
Tested-by: syzbot@syzkaller.appspotmail.com
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:23 +01:00
Christian Brauner
aec2237695
selftests/namespaces: sixth inactive namespace resurrection test
...
Test multiple sockets keep the same network namespace active. Create
multiple sockets, verify closing some doesn't affect others.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-60-2e6f823ebdc0@kernel.org
Tested-by: syzbot@syzkaller.appspotmail.com
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:23 +01:00
Christian Brauner
2b9fa5bf0c
selftests/namespaces: fifth inactive namespace resurrection test
...
Test SIOCGSKNS fails on non-socket file descriptors.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-59-2e6f823ebdc0@kernel.org
Tested-by: syzbot@syzkaller.appspotmail.com
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:23 +01:00
Christian Brauner
40226da471
selftests/namespaces: fourth inactive namespace resurrection test
...
Test SIOCGSKNS across setns. Create a socket in netns A, switch to netns
B, verify SIOCGSKNS still returns netns A.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-58-2e6f823ebdc0@kernel.org
Tested-by: syzbot@syzkaller.appspotmail.com
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:23 +01:00
Christian Brauner
5aec9f455c
selftests/namespaces: third inactive namespace resurrection test
...
Test SIOCGSKNS with different socket types (TCP, UDP, RAW).
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-57-2e6f823ebdc0@kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:23 +01:00
Christian Brauner
c0f06da568
selftests/namespaces: second inactive namespace resurrection test
...
Test that socket file descriptors keep network namespaces active. Create
a network namespace, create a socket in it, then exit the namespace. The
namespace should remain active while the socket FD is held.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-56-2e6f823ebdc0@kernel.org
Tested-by: syzbot@syzkaller.appspotmail.com
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:23 +01:00
Christian Brauner
a1e49d8d18
selftests/namespaces: first inactive namespace resurrection test
...
Test basic SIOCGSKNS functionality. Create a socket and verify SIOCGSKNS
returns the correct network namespace.
Link: https://patch.msgid.link/20251029-work-namespace-nstree-listns-v4-55-2e6f823ebdc0@kernel.org
Tested-by: syzbot@syzkaller.appspotmail.com
Reviewed-by: Jeff Layton <jlayton@kernel.org >
Signed-off-by: Christian Brauner <brauner@kernel.org >
2025-11-03 17:41:22 +01:00