* 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
@ 2025-04-07 7:14 Mikhail Gavrilov
2025-04-07 14:15 ` Christian Brauner
0 siblings, 1 reply; 11+ messages in thread
From: Mikhail Gavrilov @ 2025-04-07 7:14 UTC (permalink / raw)
To: brauner, sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
[-- Attachment #1: Type: text/plain, Size: 5630 bytes --]
Hi,
I use Fedora. On Fedora systemd-nspawn is used for creating a clean
build environment for packaging.
I noted that on fresh kernels I can't build packages any more because
the command "mock -r fedora-rawhide-i386 --rebuild" is stuck.
I started debugging and found that systemd-nspawn was hanging.
Sending SysRq for displaying list of blocked (D state) tasks gave me
this trace:
[ 743.382717] sysrq: Show Blocked State
[ 743.383154] task:systemd-nspawn state:D stack:27120 pid:4609
tgid:4609 ppid:4435 task_flags:0x400140 flags:0x00000002
[ 743.383164] Call Trace:
[ 743.383167] <TASK>
[ 743.383171] __schedule+0x895/0x1bf0
[ 743.383178] ? __pfx___schedule+0x10/0x10
[ 743.383182] ? __pfx_do_raw_spin_trylock+0x10/0x10
[ 743.383187] ? __raw_spin_unlock_irqrestore+0x5d/0x80
[ 743.383191] ? rcu_is_watching+0x12/0xc0
[ 743.383195] ? schedule+0x1d5/0x260
[ 743.383199] schedule+0xd4/0x260
[ 743.383202] fuse_get_req+0x92d/0x1060 [fuse]
[ 743.383218] ? rcu_is_watching+0x12/0xc0
[ 743.383222] ? __pfx_fuse_get_req+0x10/0x10 [fuse]
[ 743.383233] ? rcu_is_watching+0x12/0xc0
[ 743.383236] ? __pfx_autoremove_wake_function+0x10/0x10
[ 743.383240] ? rcu_is_watching+0x12/0xc0
[ 743.383243] ? is_bpf_text_address+0x64/0x100
[ 743.383247] ? __pfx_stack_trace_consume_entry+0x10/0x10
[ 743.383252] __fuse_simple_request+0x8f/0xab0 [fuse]
[ 743.383263] ? kernel_text_address+0x145/0x160
[ 743.383268] ? __kernel_text_address+0x12/0x40
[ 743.383272] fuse_getxattr+0x2cd/0x3e0 [fuse]
[ 743.383287] ? __pfx_fuse_getxattr+0x10/0x10 [fuse]
[ 743.383299] ? rcu_is_watching+0x12/0xc0
[ 743.383304] ? rcu_is_watching+0x12/0xc0
[ 743.383307] ? is_bpf_text_address+0x64/0x100
[ 743.383310] ? lock_release+0xb7/0xf0
[ 743.383314] ? is_bpf_text_address+0x6e/0x100
[ 743.383318] ? kernel_text_address+0x145/0x160
[ 743.383323] fuse_xattr_get+0x64/0x90 [fuse]
[ 743.383333] __vfs_getxattr+0xf0/0x150
[ 743.383338] ? __pfx___vfs_getxattr+0x10/0x10
[ 743.383344] get_vfs_caps_from_disk+0x138/0x450
[ 743.383349] ? __pfx_get_vfs_caps_from_disk+0x10/0x10
[ 743.383353] ? rcu_is_watching+0x12/0xc0
[ 743.383356] ? handle_path+0x27c/0x6b0
[ 743.383360] ? lock_release+0xb7/0xf0
[ 743.383363] ? handle_path+0x281/0x6b0
[ 743.383368] audit_copy_inode+0x339/0x4f0
[ 743.383372] ? __pfx_audit_copy_inode+0x10/0x10
[ 743.383376] ? path_lookupat+0x16a/0x670
[ 743.383381] filename_lookup+0x391/0x550
[ 743.383386] ? __pfx_filename_lookup+0x10/0x10
[ 743.383394] ? audit_alloc_name+0x398/0x490
[ 743.383398] ? __audit_getname+0x10b/0x160
[ 743.383402] ? getname_flags.part.0+0x1a5/0x510
[ 743.383406] user_path_at+0x9e/0xe0
[ 743.383411] __x64_sys_mount_setattr+0x247/0x340
[ 743.383415] ? __pfx___x64_sys_mount_setattr+0x10/0x10
[ 743.383418] ? seqcount_lockdep_reader_access.constprop.0+0xa5/0xb0
[ 743.383422] ? seqcount_lockdep_reader_access.constprop.0+0xa5/0xb0
[ 743.383426] ? ktime_get_coarse_real_ts64+0x41/0xd0
[ 743.383431] do_syscall_64+0x97/0x190
[ 743.383437] ? rcu_is_watching+0x12/0xc0
[ 743.383440] ? rcu_read_unlock+0x17/0x60
[ 743.383444] ? lock_release+0xb7/0xf0
[ 743.383448] ? handle_mm_fault+0x4e5/0xa60
[ 743.383451] ? exc_page_fault+0x7e/0x110
[ 743.383456] ? rcu_is_watching+0x12/0xc0
[ 743.383458] ? exc_page_fault+0x7e/0x110
[ 743.383462] ? do_user_addr_fault+0x8cb/0xe70
[ 743.383466] ? irqentry_exit_to_user_mode+0xa2/0x290
[ 743.383469] ? rcu_is_watching+0x12/0xc0
[ 743.383472] ? irqentry_exit_to_user_mode+0xa2/0x290
[ 743.383475] ? trace_hardirqs_on_prepare+0xdf/0x120
[ 743.383480] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 743.383483] RIP: 0033:0x7fac4ff0419e
[ 743.383499] RSP: 002b:00007ffc843092f8 EFLAGS: 00000246 ORIG_RAX:
00000000000001ba
[ 743.383504] RAX: ffffffffffffffda RBX: 000000000000000b RCX: 00007fac4ff0419e
[ 743.383507] RDX: 0000000000009000 RSI: 00007fac503472a8 RDI: 000000000000000b
[ 743.383509] RBP: 00007ffc843093a0 R08: 0000000000000020 R09: 00007fac4fff6ac0
[ 743.383512] R10: 00007ffc84309340 R11: 0000000000000246 R12: 0000000000000009
[ 743.383514] R13: 000056069822b629 R14: 000056069822b635 R15: 0000000000000007
[ 743.383519] </TASK>
> sudo /usr/bin/systemd-nspawn -q --ephemeral -D /var/lib/mock/fedora-rawhide-x86_64/root
[sudo] password for mikhail:
^CShort read while reading whether to enable FUSE.
mikhail@primary-ws ~ [1]>
And started bisecting the issue and the first bad commit is
474f7825d5335798742b92f067e1d22365013107.
Author: Christian Brauner <brauner@kernel.org>
Date: Tue Jan 28 11:33:40 2025 +0100
fs: add copy_mount_setattr() helper
Split out copy_mount_setattr() from mount_setattr() so we can use it in
later patches.
Link: https://lore.kernel.org/r/20250128-work-mnt_idmap-update-v2-v1-2-c25feb0d2eb3@kernel.org
Reviewed-by: "Seth Forshee (DigitalOcean)" <sforshee@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Unfortunately I can't test the revert of this commit because of conflicts.
> git revert -n 474f7825d5335798742b92f067e1d22365013107
Auto-merging fs/namespace.c
CONFLICT (content): Merge conflict in fs/namespace.c
error: could not revert 474f7825d533... fs: add copy_mount_setattr() helper
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: Disable this message with "git config set advice.mergeConflict false"
My machine spec: https://linux-hardware.org/?probe=619658e7cf
And I attached below my build config and full kernel log.
Christian, can you look please?
--
Best Regards,
Mike Gavrilov.
[-- Attachment #2: bisect-log-broken-systemd-nspawn.zip --]
[-- Type: application/zip, Size: 1182 bytes --]
[-- Attachment #3: dmesg-broken-systemd-nspawn.zip --]
[-- Type: application/zip, Size: 53138 bytes --]
[-- Attachment #4: .config.zip --]
[-- Type: application/zip, Size: 68698 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-07 7:14 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system Mikhail Gavrilov
@ 2025-04-07 14:15 ` Christian Brauner
2025-04-07 14:34 ` Mikhail Gavrilov
0 siblings, 1 reply; 11+ messages in thread
From: Christian Brauner @ 2025-04-07 14:15 UTC (permalink / raw)
To: Mikhail Gavrilov
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
On Mon, Apr 07, 2025 at 12:14:01PM +0500, Mikhail Gavrilov wrote:
> Hi,
> I use Fedora. On Fedora systemd-nspawn is used for creating a clean
> build environment for packaging.
> I noted that on fresh kernels I can't build packages any more because
> the command "mock -r fedora-rawhide-i386 --rebuild" is stuck.
> I started debugging and found that systemd-nspawn was hanging.
> Sending SysRq for displaying list of blocked (D state) tasks gave me
> this trace:
> [ 743.382717] sysrq: Show Blocked State
> [ 743.383154] task:systemd-nspawn state:D stack:27120 pid:4609
> tgid:4609 ppid:4435 task_flags:0x400140 flags:0x00000002
> [ 743.383164] Call Trace:
> [ 743.383167] <TASK>
> [ 743.383171] __schedule+0x895/0x1bf0
> [ 743.383178] ? __pfx___schedule+0x10/0x10
> [ 743.383182] ? __pfx_do_raw_spin_trylock+0x10/0x10
> [ 743.383187] ? __raw_spin_unlock_irqrestore+0x5d/0x80
> [ 743.383191] ? rcu_is_watching+0x12/0xc0
> [ 743.383195] ? schedule+0x1d5/0x260
> [ 743.383199] schedule+0xd4/0x260
> [ 743.383202] fuse_get_req+0x92d/0x1060 [fuse]
> [ 743.383218] ? rcu_is_watching+0x12/0xc0
> [ 743.383222] ? __pfx_fuse_get_req+0x10/0x10 [fuse]
> [ 743.383233] ? rcu_is_watching+0x12/0xc0
> [ 743.383236] ? __pfx_autoremove_wake_function+0x10/0x10
> [ 743.383240] ? rcu_is_watching+0x12/0xc0
> [ 743.383243] ? is_bpf_text_address+0x64/0x100
> [ 743.383247] ? __pfx_stack_trace_consume_entry+0x10/0x10
> [ 743.383252] __fuse_simple_request+0x8f/0xab0 [fuse]
> [ 743.383263] ? kernel_text_address+0x145/0x160
> [ 743.383268] ? __kernel_text_address+0x12/0x40
> [ 743.383272] fuse_getxattr+0x2cd/0x3e0 [fuse]
> [ 743.383287] ? __pfx_fuse_getxattr+0x10/0x10 [fuse]
> [ 743.383299] ? rcu_is_watching+0x12/0xc0
> [ 743.383304] ? rcu_is_watching+0x12/0xc0
> [ 743.383307] ? is_bpf_text_address+0x64/0x100
> [ 743.383310] ? lock_release+0xb7/0xf0
> [ 743.383314] ? is_bpf_text_address+0x6e/0x100
> [ 743.383318] ? kernel_text_address+0x145/0x160
> [ 743.383323] fuse_xattr_get+0x64/0x90 [fuse]
> [ 743.383333] __vfs_getxattr+0xf0/0x150
> [ 743.383338] ? __pfx___vfs_getxattr+0x10/0x10
> [ 743.383344] get_vfs_caps_from_disk+0x138/0x450
> [ 743.383349] ? __pfx_get_vfs_caps_from_disk+0x10/0x10
> [ 743.383353] ? rcu_is_watching+0x12/0xc0
> [ 743.383356] ? handle_path+0x27c/0x6b0
> [ 743.383360] ? lock_release+0xb7/0xf0
> [ 743.383363] ? handle_path+0x281/0x6b0
> [ 743.383368] audit_copy_inode+0x339/0x4f0
> [ 743.383372] ? __pfx_audit_copy_inode+0x10/0x10
> [ 743.383376] ? path_lookupat+0x16a/0x670
> [ 743.383381] filename_lookup+0x391/0x550
> [ 743.383386] ? __pfx_filename_lookup+0x10/0x10
> [ 743.383394] ? audit_alloc_name+0x398/0x490
> [ 743.383398] ? __audit_getname+0x10b/0x160
> [ 743.383402] ? getname_flags.part.0+0x1a5/0x510
> [ 743.383406] user_path_at+0x9e/0xe0
> [ 743.383411] __x64_sys_mount_setattr+0x247/0x340
> [ 743.383415] ? __pfx___x64_sys_mount_setattr+0x10/0x10
> [ 743.383418] ? seqcount_lockdep_reader_access.constprop.0+0xa5/0xb0
> [ 743.383422] ? seqcount_lockdep_reader_access.constprop.0+0xa5/0xb0
> [ 743.383426] ? ktime_get_coarse_real_ts64+0x41/0xd0
> [ 743.383431] do_syscall_64+0x97/0x190
> [ 743.383437] ? rcu_is_watching+0x12/0xc0
> [ 743.383440] ? rcu_read_unlock+0x17/0x60
> [ 743.383444] ? lock_release+0xb7/0xf0
> [ 743.383448] ? handle_mm_fault+0x4e5/0xa60
> [ 743.383451] ? exc_page_fault+0x7e/0x110
> [ 743.383456] ? rcu_is_watching+0x12/0xc0
> [ 743.383458] ? exc_page_fault+0x7e/0x110
> [ 743.383462] ? do_user_addr_fault+0x8cb/0xe70
> [ 743.383466] ? irqentry_exit_to_user_mode+0xa2/0x290
> [ 743.383469] ? rcu_is_watching+0x12/0xc0
> [ 743.383472] ? irqentry_exit_to_user_mode+0xa2/0x290
> [ 743.383475] ? trace_hardirqs_on_prepare+0xdf/0x120
> [ 743.383480] entry_SYSCALL_64_after_hwframe+0x76/0x7e
> [ 743.383483] RIP: 0033:0x7fac4ff0419e
> [ 743.383499] RSP: 002b:00007ffc843092f8 EFLAGS: 00000246 ORIG_RAX:
> 00000000000001ba
> [ 743.383504] RAX: ffffffffffffffda RBX: 000000000000000b RCX: 00007fac4ff0419e
> [ 743.383507] RDX: 0000000000009000 RSI: 00007fac503472a8 RDI: 000000000000000b
> [ 743.383509] RBP: 00007ffc843093a0 R08: 0000000000000020 R09: 00007fac4fff6ac0
> [ 743.383512] R10: 00007ffc84309340 R11: 0000000000000246 R12: 0000000000000009
> [ 743.383514] R13: 000056069822b629 R14: 000056069822b635 R15: 0000000000000007
> [ 743.383519] </TASK>
>
> > sudo /usr/bin/systemd-nspawn -q --ephemeral -D /var/lib/mock/fedora-rawhide-x86_64/root
> [sudo] password for mikhail:
> ^CShort read while reading whether to enable FUSE.
> mikhail@primary-ws ~ [1]>
>
> And started bisecting the issue and the first bad commit is
> 474f7825d5335798742b92f067e1d22365013107.
>
> Author: Christian Brauner <brauner@kernel.org>
> Date: Tue Jan 28 11:33:40 2025 +0100
>
> fs: add copy_mount_setattr() helper
>
> Split out copy_mount_setattr() from mount_setattr() so we can use it in
> later patches.
>
> Link: https://lore.kernel.org/r/20250128-work-mnt_idmap-update-v2-v1-2-c25feb0d2eb3@kernel.org
> Reviewed-by: "Seth Forshee (DigitalOcean)" <sforshee@kernel.org>
> Signed-off-by: Christian Brauner <brauner@kernel.org>
>
> Unfortunately I can't test the revert of this commit because of conflicts.
>
> > git revert -n 474f7825d5335798742b92f067e1d22365013107
> Auto-merging fs/namespace.c
> CONFLICT (content): Merge conflict in fs/namespace.c
> error: could not revert 474f7825d533... fs: add copy_mount_setattr() helper
> hint: after resolving the conflicts, mark the corrected paths
> hint: with 'git add <paths>' or 'git rm <paths>'
> hint: Disable this message with "git config set advice.mergeConflict false"
>
> My machine spec: https://linux-hardware.org/?probe=619658e7cf
> And I attached below my build config and full kernel log.
>
> Christian, can you look please?
I'm a bit confused by your git bisect log and the dmesg output you're
showing. The dmesg output suggests you did actually test on:
[ 0.000000] Linux version 6.15.0-rc1 (mikhail@primary-ws) (gcc (GCC) 14.2.1 20241104 (Red Hat 14.2.1-6), GNU ld version 2.44-3.fc43) #4 SMP PREEMPT_DYNAMIC Mon Apr 7 10:58:22 +05 2025
But your git bisect starts at 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
according to:
git bisect start
# status: waiting for both good and bad commits
# bad: [1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95] Merge tag 'net-next-6.15' of git://git.kernel.
git bisect bad 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
Which is way before -rc1. Where you testing on actual v6.15-rc1 released
yesterday or were you testing on
1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95? If the latter, please test
actual v6.15-rc1 as I suspect this is caused by faulty locking in
clone_private_mount() which I fixed.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-07 14:15 ` Christian Brauner
@ 2025-04-07 14:34 ` Mikhail Gavrilov
2025-04-08 8:23 ` Christian Brauner
0 siblings, 1 reply; 11+ messages in thread
From: Mikhail Gavrilov @ 2025-04-07 14:34 UTC (permalink / raw)
To: Christian Brauner
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
On Mon, Apr 7, 2025 at 7:15 PM Christian Brauner <brauner@kernel.org> wrote:
>
> I'm a bit confused by your git bisect log and the dmesg output you're
> showing. The dmesg output suggests you did actually test on:
>
> [ 0.000000] Linux version 6.15.0-rc1 (mikhail@primary-ws) (gcc (GCC) 14.2.1 20241104 (Red Hat 14.2.1-6), GNU ld version 2.44-3.fc43) #4 SMP PREEMPT_DYNAMIC Mon Apr 7 10:58:22 +05 2025
>
> But your git bisect starts at 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
> according to:
>
> git bisect start
> # status: waiting for both good and bad commits
> # bad: [1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95] Merge tag 'net-next-6.15' of git://git.kernel.
> git bisect bad 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
>
> Which is way before -rc1. Where you testing on actual v6.15-rc1 released
> yesterday or were you testing on
> 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95? If the latter, please test
> actual v6.15-rc1 as I suspect this is caused by faulty locking in
> clone_private_mount() which I fixed.
I don't want to upset you.
But I checked bisect between 1a9239bb4253 and b3ee1e460951 commits,
but the final test was made at 6.15-rc1 (0af2f6be1b42) before posting
the bug report here.
It's clear from the attached full log that systemd-nspawn hangs and
continues to hang, and the issue is not fixed at 6.15-rc1
(0af2f6be1b42).
--
Best Regards,
Mike Gavrilov.
On Mon, Apr 7, 2025 at 7:15 PM Christian Brauner <brauner@kernel.org> wrote:
>
> On Mon, Apr 07, 2025 at 12:14:01PM +0500, Mikhail Gavrilov wrote:
> > Hi,
> > I use Fedora. On Fedora systemd-nspawn is used for creating a clean
> > build environment for packaging.
> > I noted that on fresh kernels I can't build packages any more because
> > the command "mock -r fedora-rawhide-i386 --rebuild" is stuck.
> > I started debugging and found that systemd-nspawn was hanging.
> > Sending SysRq for displaying list of blocked (D state) tasks gave me
> > this trace:
> > [ 743.382717] sysrq: Show Blocked State
> > [ 743.383154] task:systemd-nspawn state:D stack:27120 pid:4609
> > tgid:4609 ppid:4435 task_flags:0x400140 flags:0x00000002
> > [ 743.383164] Call Trace:
> > [ 743.383167] <TASK>
> > [ 743.383171] __schedule+0x895/0x1bf0
> > [ 743.383178] ? __pfx___schedule+0x10/0x10
> > [ 743.383182] ? __pfx_do_raw_spin_trylock+0x10/0x10
> > [ 743.383187] ? __raw_spin_unlock_irqrestore+0x5d/0x80
> > [ 743.383191] ? rcu_is_watching+0x12/0xc0
> > [ 743.383195] ? schedule+0x1d5/0x260
> > [ 743.383199] schedule+0xd4/0x260
> > [ 743.383202] fuse_get_req+0x92d/0x1060 [fuse]
> > [ 743.383218] ? rcu_is_watching+0x12/0xc0
> > [ 743.383222] ? __pfx_fuse_get_req+0x10/0x10 [fuse]
> > [ 743.383233] ? rcu_is_watching+0x12/0xc0
> > [ 743.383236] ? __pfx_autoremove_wake_function+0x10/0x10
> > [ 743.383240] ? rcu_is_watching+0x12/0xc0
> > [ 743.383243] ? is_bpf_text_address+0x64/0x100
> > [ 743.383247] ? __pfx_stack_trace_consume_entry+0x10/0x10
> > [ 743.383252] __fuse_simple_request+0x8f/0xab0 [fuse]
> > [ 743.383263] ? kernel_text_address+0x145/0x160
> > [ 743.383268] ? __kernel_text_address+0x12/0x40
> > [ 743.383272] fuse_getxattr+0x2cd/0x3e0 [fuse]
> > [ 743.383287] ? __pfx_fuse_getxattr+0x10/0x10 [fuse]
> > [ 743.383299] ? rcu_is_watching+0x12/0xc0
> > [ 743.383304] ? rcu_is_watching+0x12/0xc0
> > [ 743.383307] ? is_bpf_text_address+0x64/0x100
> > [ 743.383310] ? lock_release+0xb7/0xf0
> > [ 743.383314] ? is_bpf_text_address+0x6e/0x100
> > [ 743.383318] ? kernel_text_address+0x145/0x160
> > [ 743.383323] fuse_xattr_get+0x64/0x90 [fuse]
> > [ 743.383333] __vfs_getxattr+0xf0/0x150
> > [ 743.383338] ? __pfx___vfs_getxattr+0x10/0x10
> > [ 743.383344] get_vfs_caps_from_disk+0x138/0x450
> > [ 743.383349] ? __pfx_get_vfs_caps_from_disk+0x10/0x10
> > [ 743.383353] ? rcu_is_watching+0x12/0xc0
> > [ 743.383356] ? handle_path+0x27c/0x6b0
> > [ 743.383360] ? lock_release+0xb7/0xf0
> > [ 743.383363] ? handle_path+0x281/0x6b0
> > [ 743.383368] audit_copy_inode+0x339/0x4f0
> > [ 743.383372] ? __pfx_audit_copy_inode+0x10/0x10
> > [ 743.383376] ? path_lookupat+0x16a/0x670
> > [ 743.383381] filename_lookup+0x391/0x550
> > [ 743.383386] ? __pfx_filename_lookup+0x10/0x10
> > [ 743.383394] ? audit_alloc_name+0x398/0x490
> > [ 743.383398] ? __audit_getname+0x10b/0x160
> > [ 743.383402] ? getname_flags.part.0+0x1a5/0x510
> > [ 743.383406] user_path_at+0x9e/0xe0
> > [ 743.383411] __x64_sys_mount_setattr+0x247/0x340
> > [ 743.383415] ? __pfx___x64_sys_mount_setattr+0x10/0x10
> > [ 743.383418] ? seqcount_lockdep_reader_access.constprop.0+0xa5/0xb0
> > [ 743.383422] ? seqcount_lockdep_reader_access.constprop.0+0xa5/0xb0
> > [ 743.383426] ? ktime_get_coarse_real_ts64+0x41/0xd0
> > [ 743.383431] do_syscall_64+0x97/0x190
> > [ 743.383437] ? rcu_is_watching+0x12/0xc0
> > [ 743.383440] ? rcu_read_unlock+0x17/0x60
> > [ 743.383444] ? lock_release+0xb7/0xf0
> > [ 743.383448] ? handle_mm_fault+0x4e5/0xa60
> > [ 743.383451] ? exc_page_fault+0x7e/0x110
> > [ 743.383456] ? rcu_is_watching+0x12/0xc0
> > [ 743.383458] ? exc_page_fault+0x7e/0x110
> > [ 743.383462] ? do_user_addr_fault+0x8cb/0xe70
> > [ 743.383466] ? irqentry_exit_to_user_mode+0xa2/0x290
> > [ 743.383469] ? rcu_is_watching+0x12/0xc0
> > [ 743.383472] ? irqentry_exit_to_user_mode+0xa2/0x290
> > [ 743.383475] ? trace_hardirqs_on_prepare+0xdf/0x120
> > [ 743.383480] entry_SYSCALL_64_after_hwframe+0x76/0x7e
> > [ 743.383483] RIP: 0033:0x7fac4ff0419e
> > [ 743.383499] RSP: 002b:00007ffc843092f8 EFLAGS: 00000246 ORIG_RAX:
> > 00000000000001ba
> > [ 743.383504] RAX: ffffffffffffffda RBX: 000000000000000b RCX: 00007fac4ff0419e
> > [ 743.383507] RDX: 0000000000009000 RSI: 00007fac503472a8 RDI: 000000000000000b
> > [ 743.383509] RBP: 00007ffc843093a0 R08: 0000000000000020 R09: 00007fac4fff6ac0
> > [ 743.383512] R10: 00007ffc84309340 R11: 0000000000000246 R12: 0000000000000009
> > [ 743.383514] R13: 000056069822b629 R14: 000056069822b635 R15: 0000000000000007
> > [ 743.383519] </TASK>
> >
> > > sudo /usr/bin/systemd-nspawn -q --ephemeral -D /var/lib/mock/fedora-rawhide-x86_64/root
> > [sudo] password for mikhail:
> > ^CShort read while reading whether to enable FUSE.
> > mikhail@primary-ws ~ [1]>
> >
> > And started bisecting the issue and the first bad commit is
> > 474f7825d5335798742b92f067e1d22365013107.
> >
> > Author: Christian Brauner <brauner@kernel.org>
> > Date: Tue Jan 28 11:33:40 2025 +0100
> >
> > fs: add copy_mount_setattr() helper
> >
> > Split out copy_mount_setattr() from mount_setattr() so we can use it in
> > later patches.
> >
> > Link: https://lore.kernel.org/r/20250128-work-mnt_idmap-update-v2-v1-2-c25feb0d2eb3@kernel.org
> > Reviewed-by: "Seth Forshee (DigitalOcean)" <sforshee@kernel.org>
> > Signed-off-by: Christian Brauner <brauner@kernel.org>
> >
> > Unfortunately I can't test the revert of this commit because of conflicts.
> >
> > > git revert -n 474f7825d5335798742b92f067e1d22365013107
> > Auto-merging fs/namespace.c
> > CONFLICT (content): Merge conflict in fs/namespace.c
> > error: could not revert 474f7825d533... fs: add copy_mount_setattr() helper
> > hint: after resolving the conflicts, mark the corrected paths
> > hint: with 'git add <paths>' or 'git rm <paths>'
> > hint: Disable this message with "git config set advice.mergeConflict false"
> >
> > My machine spec: https://linux-hardware.org/?probe=619658e7cf
> > And I attached below my build config and full kernel log.
> >
> > Christian, can you look please?
>
> I'm a bit confused by your git bisect log and the dmesg output you're
> showing. The dmesg output suggests you did actually test on:
>
> [ 0.000000] Linux version 6.15.0-rc1 (mikhail@primary-ws) (gcc (GCC) 14.2.1 20241104 (Red Hat 14.2.1-6), GNU ld version 2.44-3.fc43) #4 SMP PREEMPT_DYNAMIC Mon Apr 7 10:58:22 +05 2025
>
> But your git bisect starts at 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
> according to:
>
> git bisect start
> # status: waiting for both good and bad commits
> # bad: [1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95] Merge tag 'net-next-6.15' of git://git.kernel.
> git bisect bad 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
>
> Which is way before -rc1. Where you testing on actual v6.15-rc1 released
> yesterday or were you testing on
> 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95? If the latter, please test
> actual v6.15-rc1 as I suspect this is caused by faulty locking in
> clone_private_mount() which I fixed.
--
Best Regards,
Mike Gavrilov.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-07 14:34 ` Mikhail Gavrilov
@ 2025-04-08 8:23 ` Christian Brauner
2025-04-08 8:50 ` Mikhail Gavrilov
0 siblings, 1 reply; 11+ messages in thread
From: Christian Brauner @ 2025-04-08 8:23 UTC (permalink / raw)
To: Mikhail Gavrilov
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
On Mon, Apr 07, 2025 at 07:34:04PM +0500, Mikhail Gavrilov wrote:
> On Mon, Apr 7, 2025 at 7:15 PM Christian Brauner <brauner@kernel.org> wrote:
> >
> > I'm a bit confused by your git bisect log and the dmesg output you're
> > showing. The dmesg output suggests you did actually test on:
> >
> > [ 0.000000] Linux version 6.15.0-rc1 (mikhail@primary-ws) (gcc (GCC) 14.2.1 20241104 (Red Hat 14.2.1-6), GNU ld version 2.44-3.fc43) #4 SMP PREEMPT_DYNAMIC Mon Apr 7 10:58:22 +05 2025
> >
> > But your git bisect starts at 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
> > according to:
> >
> > git bisect start
> > # status: waiting for both good and bad commits
> > # bad: [1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95] Merge tag 'net-next-6.15' of git://git.kernel.
> > git bisect bad 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
> >
> > Which is way before -rc1. Where you testing on actual v6.15-rc1 released
> > yesterday or were you testing on
> > 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95? If the latter, please test
> > actual v6.15-rc1 as I suspect this is caused by faulty locking in
> > clone_private_mount() which I fixed.
>
> I don't want to upset you.
Oh, you didn't.
> But I checked bisect between 1a9239bb4253 and b3ee1e460951 commits,
> but the final test was made at 6.15-rc1 (0af2f6be1b42) before posting
> the bug report here.
> It's clear from the attached full log that systemd-nspawn hangs and
> continues to hang, and the issue is not fixed at 6.15-rc1
> (0af2f6be1b42).
I have a hard time seeing what that would caused by. I'll try to look
into it but it's not a lot to go by and this just shows a hanging FUSE
request which seems very unrelated to the change you point to.
> --
> Best Regards,
> Mike Gavrilov.
>
> On Mon, Apr 7, 2025 at 7:15 PM Christian Brauner <brauner@kernel.org> wrote:
> >
> > On Mon, Apr 07, 2025 at 12:14:01PM +0500, Mikhail Gavrilov wrote:
> > > Hi,
> > > I use Fedora. On Fedora systemd-nspawn is used for creating a clean
> > > build environment for packaging.
> > > I noted that on fresh kernels I can't build packages any more because
> > > the command "mock -r fedora-rawhide-i386 --rebuild" is stuck.
> > > I started debugging and found that systemd-nspawn was hanging.
> > > Sending SysRq for displaying list of blocked (D state) tasks gave me
> > > this trace:
> > > [ 743.382717] sysrq: Show Blocked State
> > > [ 743.383154] task:systemd-nspawn state:D stack:27120 pid:4609
> > > tgid:4609 ppid:4435 task_flags:0x400140 flags:0x00000002
> > > [ 743.383164] Call Trace:
> > > [ 743.383167] <TASK>
> > > [ 743.383171] __schedule+0x895/0x1bf0
> > > [ 743.383178] ? __pfx___schedule+0x10/0x10
> > > [ 743.383182] ? __pfx_do_raw_spin_trylock+0x10/0x10
> > > [ 743.383187] ? __raw_spin_unlock_irqrestore+0x5d/0x80
> > > [ 743.383191] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383195] ? schedule+0x1d5/0x260
> > > [ 743.383199] schedule+0xd4/0x260
> > > [ 743.383202] fuse_get_req+0x92d/0x1060 [fuse]
> > > [ 743.383218] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383222] ? __pfx_fuse_get_req+0x10/0x10 [fuse]
> > > [ 743.383233] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383236] ? __pfx_autoremove_wake_function+0x10/0x10
> > > [ 743.383240] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383243] ? is_bpf_text_address+0x64/0x100
> > > [ 743.383247] ? __pfx_stack_trace_consume_entry+0x10/0x10
> > > [ 743.383252] __fuse_simple_request+0x8f/0xab0 [fuse]
> > > [ 743.383263] ? kernel_text_address+0x145/0x160
> > > [ 743.383268] ? __kernel_text_address+0x12/0x40
> > > [ 743.383272] fuse_getxattr+0x2cd/0x3e0 [fuse]
> > > [ 743.383287] ? __pfx_fuse_getxattr+0x10/0x10 [fuse]
> > > [ 743.383299] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383304] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383307] ? is_bpf_text_address+0x64/0x100
> > > [ 743.383310] ? lock_release+0xb7/0xf0
> > > [ 743.383314] ? is_bpf_text_address+0x6e/0x100
> > > [ 743.383318] ? kernel_text_address+0x145/0x160
> > > [ 743.383323] fuse_xattr_get+0x64/0x90 [fuse]
> > > [ 743.383333] __vfs_getxattr+0xf0/0x150
> > > [ 743.383338] ? __pfx___vfs_getxattr+0x10/0x10
> > > [ 743.383344] get_vfs_caps_from_disk+0x138/0x450
> > > [ 743.383349] ? __pfx_get_vfs_caps_from_disk+0x10/0x10
> > > [ 743.383353] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383356] ? handle_path+0x27c/0x6b0
> > > [ 743.383360] ? lock_release+0xb7/0xf0
> > > [ 743.383363] ? handle_path+0x281/0x6b0
> > > [ 743.383368] audit_copy_inode+0x339/0x4f0
> > > [ 743.383372] ? __pfx_audit_copy_inode+0x10/0x10
> > > [ 743.383376] ? path_lookupat+0x16a/0x670
> > > [ 743.383381] filename_lookup+0x391/0x550
> > > [ 743.383386] ? __pfx_filename_lookup+0x10/0x10
> > > [ 743.383394] ? audit_alloc_name+0x398/0x490
> > > [ 743.383398] ? __audit_getname+0x10b/0x160
> > > [ 743.383402] ? getname_flags.part.0+0x1a5/0x510
> > > [ 743.383406] user_path_at+0x9e/0xe0
> > > [ 743.383411] __x64_sys_mount_setattr+0x247/0x340
> > > [ 743.383415] ? __pfx___x64_sys_mount_setattr+0x10/0x10
> > > [ 743.383418] ? seqcount_lockdep_reader_access.constprop.0+0xa5/0xb0
> > > [ 743.383422] ? seqcount_lockdep_reader_access.constprop.0+0xa5/0xb0
> > > [ 743.383426] ? ktime_get_coarse_real_ts64+0x41/0xd0
> > > [ 743.383431] do_syscall_64+0x97/0x190
> > > [ 743.383437] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383440] ? rcu_read_unlock+0x17/0x60
> > > [ 743.383444] ? lock_release+0xb7/0xf0
> > > [ 743.383448] ? handle_mm_fault+0x4e5/0xa60
> > > [ 743.383451] ? exc_page_fault+0x7e/0x110
> > > [ 743.383456] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383458] ? exc_page_fault+0x7e/0x110
> > > [ 743.383462] ? do_user_addr_fault+0x8cb/0xe70
> > > [ 743.383466] ? irqentry_exit_to_user_mode+0xa2/0x290
> > > [ 743.383469] ? rcu_is_watching+0x12/0xc0
> > > [ 743.383472] ? irqentry_exit_to_user_mode+0xa2/0x290
> > > [ 743.383475] ? trace_hardirqs_on_prepare+0xdf/0x120
> > > [ 743.383480] entry_SYSCALL_64_after_hwframe+0x76/0x7e
> > > [ 743.383483] RIP: 0033:0x7fac4ff0419e
> > > [ 743.383499] RSP: 002b:00007ffc843092f8 EFLAGS: 00000246 ORIG_RAX:
> > > 00000000000001ba
> > > [ 743.383504] RAX: ffffffffffffffda RBX: 000000000000000b RCX: 00007fac4ff0419e
> > > [ 743.383507] RDX: 0000000000009000 RSI: 00007fac503472a8 RDI: 000000000000000b
> > > [ 743.383509] RBP: 00007ffc843093a0 R08: 0000000000000020 R09: 00007fac4fff6ac0
> > > [ 743.383512] R10: 00007ffc84309340 R11: 0000000000000246 R12: 0000000000000009
> > > [ 743.383514] R13: 000056069822b629 R14: 000056069822b635 R15: 0000000000000007
> > > [ 743.383519] </TASK>
> > >
> > > > sudo /usr/bin/systemd-nspawn -q --ephemeral -D /var/lib/mock/fedora-rawhide-x86_64/root
> > > [sudo] password for mikhail:
> > > ^CShort read while reading whether to enable FUSE.
> > > mikhail@primary-ws ~ [1]>
> > >
> > > And started bisecting the issue and the first bad commit is
> > > 474f7825d5335798742b92f067e1d22365013107.
> > >
> > > Author: Christian Brauner <brauner@kernel.org>
> > > Date: Tue Jan 28 11:33:40 2025 +0100
> > >
> > > fs: add copy_mount_setattr() helper
> > >
> > > Split out copy_mount_setattr() from mount_setattr() so we can use it in
> > > later patches.
> > >
> > > Link: https://lore.kernel.org/r/20250128-work-mnt_idmap-update-v2-v1-2-c25feb0d2eb3@kernel.org
> > > Reviewed-by: "Seth Forshee (DigitalOcean)" <sforshee@kernel.org>
> > > Signed-off-by: Christian Brauner <brauner@kernel.org>
> > >
> > > Unfortunately I can't test the revert of this commit because of conflicts.
> > >
> > > > git revert -n 474f7825d5335798742b92f067e1d22365013107
> > > Auto-merging fs/namespace.c
> > > CONFLICT (content): Merge conflict in fs/namespace.c
> > > error: could not revert 474f7825d533... fs: add copy_mount_setattr() helper
> > > hint: after resolving the conflicts, mark the corrected paths
> > > hint: with 'git add <paths>' or 'git rm <paths>'
> > > hint: Disable this message with "git config set advice.mergeConflict false"
> > >
> > > My machine spec: https://linux-hardware.org/?probe=619658e7cf
> > > And I attached below my build config and full kernel log.
> > >
> > > Christian, can you look please?
> >
> > I'm a bit confused by your git bisect log and the dmesg output you're
> > showing. The dmesg output suggests you did actually test on:
> >
> > [ 0.000000] Linux version 6.15.0-rc1 (mikhail@primary-ws) (gcc (GCC) 14.2.1 20241104 (Red Hat 14.2.1-6), GNU ld version 2.44-3.fc43) #4 SMP PREEMPT_DYNAMIC Mon Apr 7 10:58:22 +05 2025
> >
> > But your git bisect starts at 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
> > according to:
> >
> > git bisect start
> > # status: waiting for both good and bad commits
> > # bad: [1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95] Merge tag 'net-next-6.15' of git://git.kernel.
> > git bisect bad 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95
> >
> > Which is way before -rc1. Where you testing on actual v6.15-rc1 released
> > yesterday or were you testing on
> > 1a9239bb4253f9076b5b4b2a1a4e8d7defd77a95? If the latter, please test
> > actual v6.15-rc1 as I suspect this is caused by faulty locking in
> > clone_private_mount() which I fixed.
>
>
>
> --
> Best Regards,
> Mike Gavrilov.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-08 8:23 ` Christian Brauner
@ 2025-04-08 8:50 ` Mikhail Gavrilov
2025-04-08 9:18 ` Christian Brauner
0 siblings, 1 reply; 11+ messages in thread
From: Mikhail Gavrilov @ 2025-04-08 8:50 UTC (permalink / raw)
To: Christian Brauner
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
On Tue, Apr 8, 2025 at 1:24 PM Christian Brauner <brauner@kernel.org> wrote:
>
> I have a hard time seeing what that would caused by. I'll try to look
> into it but it's not a lot to go by and this just shows a hanging FUSE
> request which seems very unrelated to the change you point to.
>
I could perform another bisect and identify the subsequent commit that
caused the issue if I could revert 474f7825d533.
--
Best Regards,
Mike Gavrilov.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-08 8:50 ` Mikhail Gavrilov
@ 2025-04-08 9:18 ` Christian Brauner
2025-04-08 9:34 ` Mikhail Gavrilov
0 siblings, 1 reply; 11+ messages in thread
From: Christian Brauner @ 2025-04-08 9:18 UTC (permalink / raw)
To: Mikhail Gavrilov
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
On Tue, Apr 08, 2025 at 01:50:16PM +0500, Mikhail Gavrilov wrote:
> On Tue, Apr 8, 2025 at 1:24 PM Christian Brauner <brauner@kernel.org> wrote:
> >
> > I have a hard time seeing what that would caused by. I'll try to look
> > into it but it's not a lot to go by and this just shows a hanging FUSE
> > request which seems very unrelated to the change you point to.
> >
>
> I could perform another bisect and identify the subsequent commit that
> caused the issue if I could revert 474f7825d533.
I'm confused why that's an issue:
> git reset --hard 474f7825d5335798742b92f067e1d22365013107
HEAD is now at 474f7825d533 fs: add copy_mount_setattr() helper
> git revert --no-edit 474f7825d5335798742b92f067e1d22365013107
[work.bisect e5673958d85c] Revert "fs: add copy_mount_setattr() helper"
Date: Tue Apr 8 11:14:31 2025 +0200
1 file changed, 33 insertions(+), 40 deletions(-)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-08 9:18 ` Christian Brauner
@ 2025-04-08 9:34 ` Mikhail Gavrilov
2025-04-08 10:21 ` Christian Brauner
0 siblings, 1 reply; 11+ messages in thread
From: Mikhail Gavrilov @ 2025-04-08 9:34 UTC (permalink / raw)
To: Christian Brauner
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
On Tue, Apr 8, 2025 at 2:18 PM Christian Brauner <brauner@kernel.org> wrote:
> I'm confused why that's an issue:
>
> > git reset --hard 474f7825d5335798742b92f067e1d22365013107
> HEAD is now at 474f7825d533 fs: add copy_mount_setattr() helper
>
> > git revert --no-edit 474f7825d5335798742b92f067e1d22365013107
> [work.bisect e5673958d85c] Revert "fs: add copy_mount_setattr() helper"
> Date: Tue Apr 8 11:14:31 2025 +0200
> 1 file changed, 33 insertions(+), 40 deletions(-)
> git reset --hard v6.15-rc1
HEAD is now at 0af2f6be1b42 Linux 6.15-rc1
> git revert -n 474f7825d5335798742b92f067e1d22365013107
Auto-merging fs/namespace.c
CONFLICT (content): Merge conflict in fs/namespace.c
error: could not revert 474f7825d533... fs: add copy_mount_setattr() helper
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: Disable this message with "git config set advice.mergeConflict false"
--
Best Regards,
Mike Gavrilov.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-08 9:34 ` Mikhail Gavrilov
@ 2025-04-08 10:21 ` Christian Brauner
2025-04-08 13:05 ` Mikhail Gavrilov
0 siblings, 1 reply; 11+ messages in thread
From: Christian Brauner @ 2025-04-08 10:21 UTC (permalink / raw)
To: Mikhail Gavrilov
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
On Tue, Apr 08, 2025 at 02:34:37PM +0500, Mikhail Gavrilov wrote:
> On Tue, Apr 8, 2025 at 2:18 PM Christian Brauner <brauner@kernel.org> wrote:
> > I'm confused why that's an issue:
> >
> > > git reset --hard 474f7825d5335798742b92f067e1d22365013107
> > HEAD is now at 474f7825d533 fs: add copy_mount_setattr() helper
> >
> > > git revert --no-edit 474f7825d5335798742b92f067e1d22365013107
> > [work.bisect e5673958d85c] Revert "fs: add copy_mount_setattr() helper"
> > Date: Tue Apr 8 11:14:31 2025 +0200
> > 1 file changed, 33 insertions(+), 40 deletions(-)
>
> > git reset --hard v6.15-rc1
> HEAD is now at 0af2f6be1b42 Linux 6.15-rc1
> > git revert -n 474f7825d5335798742b92f067e1d22365013107
> Auto-merging fs/namespace.c
> CONFLICT (content): Merge conflict in fs/namespace.c
> error: could not revert 474f7825d533... fs: add copy_mount_setattr() helper
> hint: after resolving the conflicts, mark the corrected paths
> hint: with 'git add <paths>' or 'git rm <paths>'
> hint: Disable this message with "git config set advice.mergeConflict false"
Resolved it for you:
https://web.git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git/log/?h=work.bisect
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-08 10:21 ` Christian Brauner
@ 2025-04-08 13:05 ` Mikhail Gavrilov
2025-04-09 8:36 ` Christian Brauner
0 siblings, 1 reply; 11+ messages in thread
From: Mikhail Gavrilov @ 2025-04-08 13:05 UTC (permalink / raw)
To: Christian Brauner
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
[-- Attachment #1: Type: text/plain, Size: 609 bytes --]
On Tue, Apr 8, 2025 at 3:22 PM Christian Brauner <brauner@kernel.org> wrote:
>
>
> Resolved it for you:
>
> https://web.git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git/log/?h=work.bisect
I can confirm that systemd-nspawn is working on the kernel built from
branch work.bisect.
It confirms the correctness of my bisect.
> sudo /usr/bin/systemd-nspawn -q --ephemeral -D /var/lib/mock/fedora-rawhide-x86_64/root
[sudo] password for mikhail:
[root@root-7a084a9cbe689c8a ~]# uname -r
6.15.0-rc1-work.bisect+
And I attached the full kernel log below.
--
Best Regards,
Mike Gavrilov.
[-- Attachment #2: dmesg-6.15.0-rc1-work.bisect.zip --]
[-- Type: application/zip, Size: 50312 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-08 13:05 ` Mikhail Gavrilov
@ 2025-04-09 8:36 ` Christian Brauner
2025-04-09 14:29 ` Mikhail Gavrilov
0 siblings, 1 reply; 11+ messages in thread
From: Christian Brauner @ 2025-04-09 8:36 UTC (permalink / raw)
To: Mikhail Gavrilov
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
On Tue, Apr 08, 2025 at 06:05:23PM +0500, Mikhail Gavrilov wrote:
> On Tue, Apr 8, 2025 at 3:22 PM Christian Brauner <brauner@kernel.org> wrote:
> >
> >
> > Resolved it for you:
> >
> > https://web.git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git/log/?h=work.bisect
>
> I can confirm that systemd-nspawn is working on the kernel built from
> branch work.bisect.
> It confirms the correctness of my bisect.
>
> > sudo /usr/bin/systemd-nspawn -q --ephemeral -D /var/lib/mock/fedora-rawhide-x86_64/root
> [sudo] password for mikhail:
> [root@root-7a084a9cbe689c8a ~]# uname -r
> 6.15.0-rc1-work.bisect+
>
> And I attached the full kernel log below.
Ok, I see the bug. It's caused by pecularity in systemd that a specific
implementation detail of mount_setattr() papered over.
Basically, I added a shortcut to mount_settatr():
/* Don't bother walking through the mounts if this is a nop. */
if (attr.attr_set == 0 &&
attr.attr_clr == 0 &&
attr.propagation == 0)
return 0;
So that we:
* don't pointlessly do path lookup
* don't pointlessly walk the mount tree and hold the namespace semaphore etc.
When I added copy_mount_setattr() this cycle this optimization got
broken because I moved it into this helper and we now do path lookup and
walk the mount tree even if there's no mount properties to change at
all.
That's just a performance thing, not a correctness thing though.
systemd has the following code:
int make_fsmount(
int error_log_level,
const char *what,
const char *type,
unsigned long flags,
const char *options,
int userns_fd) {
<snip>
mnt_fd = fsmount(fs_fd, FSMOUNT_CLOEXEC, 0);
if (mnt_fd < 0)
return log_full_errno(error_log_level, errno, "Failed to create mount fd for \"%s\" (\"%s\"): %m", what, type);
if (mount_setattr(mnt_fd, "", AT_EMPTY_PATH|AT_RECURSIVE,
&(struct mount_attr) {
.attr_set = ms_flags_to_mount_attr(f) | (userns_fd >= 0 ? MOUNT_ATTR_IDMAP : 0),
.userns_fd = userns_fd,
}, MOUNT_ATTR_SIZE_VER0) < 0)
<snip>
So if userns_fd is greater or equal than zero MOUNT_ATTR_IDMAP will be
raised otherwise not.
Later in the code we find this function used in nspawn during:
static int get_fuse_version(uint32_t *ret_major, uint32_t *ret_minor) {
<snip>
/* Get a FUSE handle. */
fuse_fd = open("/dev/fuse", O_CLOEXEC|O_RDWR);
<snip>
mnt_fd = make_fsmount(LOG_DEBUG, "nspawn-fuse", "fuse.nspawn", 0, opts, -EBADF);
This will cause the aforementioned mount_setattr() call to be called
with:
if (mount_setattr(mnt_fd, "", AT_EMPTY_PATH|AT_RECURSIVE,
&(struct mount_attr) {
.attr_set = 0,
.userns_fd = -EBADF,
}, MOUNT_ATTR_SIZE_VER0) < 0)
This means:
attr_set == 0 && attr_clear == 0 and propagation == 0 and we'd thus
never trigger a path lookup on older kernels. But now we do thus causing
the hang.
I've restored the old behavior. Can you please test?:
https://web.git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git/log/?h=work.mount.fixes
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system
2025-04-09 8:36 ` Christian Brauner
@ 2025-04-09 14:29 ` Mikhail Gavrilov
0 siblings, 0 replies; 11+ messages in thread
From: Mikhail Gavrilov @ 2025-04-09 14:29 UTC (permalink / raw)
To: Christian Brauner
Cc: sforshee, linux-fsdevel, Linux List Kernel Mailing,
Linux regressions mailing list, lennart
[-- Attachment #1: Type: text/plain, Size: 3406 bytes --]
On Wed, Apr 9, 2025 at 1:36 PM Christian Brauner <brauner@kernel.org> wrote:
>
> Ok, I see the bug. It's caused by pecularity in systemd that a specific
> implementation detail of mount_setattr() papered over.
>
> Basically, I added a shortcut to mount_settatr():
>
> /* Don't bother walking through the mounts if this is a nop. */
> if (attr.attr_set == 0 &&
> attr.attr_clr == 0 &&
> attr.propagation == 0)
> return 0;
>
> So that we:
>
> * don't pointlessly do path lookup
> * don't pointlessly walk the mount tree and hold the namespace semaphore etc.
>
> When I added copy_mount_setattr() this cycle this optimization got
> broken because I moved it into this helper and we now do path lookup and
> walk the mount tree even if there's no mount properties to change at
> all.
>
> That's just a performance thing, not a correctness thing though.
>
> systemd has the following code:
>
> int make_fsmount(
> int error_log_level,
> const char *what,
> const char *type,
> unsigned long flags,
> const char *options,
> int userns_fd) {
>
> <snip>
>
> mnt_fd = fsmount(fs_fd, FSMOUNT_CLOEXEC, 0);
> if (mnt_fd < 0)
> return log_full_errno(error_log_level, errno, "Failed to create mount fd for \"%s\" (\"%s\"): %m", what, type);
>
> if (mount_setattr(mnt_fd, "", AT_EMPTY_PATH|AT_RECURSIVE,
> &(struct mount_attr) {
> .attr_set = ms_flags_to_mount_attr(f) | (userns_fd >= 0 ? MOUNT_ATTR_IDMAP : 0),
> .userns_fd = userns_fd,
> }, MOUNT_ATTR_SIZE_VER0) < 0)
>
> <snip>
>
> So if userns_fd is greater or equal than zero MOUNT_ATTR_IDMAP will be
> raised otherwise not.
>
> Later in the code we find this function used in nspawn during:
>
> static int get_fuse_version(uint32_t *ret_major, uint32_t *ret_minor) {
>
> <snip>
> /* Get a FUSE handle. */
> fuse_fd = open("/dev/fuse", O_CLOEXEC|O_RDWR);
> <snip>
> mnt_fd = make_fsmount(LOG_DEBUG, "nspawn-fuse", "fuse.nspawn", 0, opts, -EBADF);
>
> This will cause the aforementioned mount_setattr() call to be called
> with:
>
> if (mount_setattr(mnt_fd, "", AT_EMPTY_PATH|AT_RECURSIVE,
> &(struct mount_attr) {
> .attr_set = 0,
> .userns_fd = -EBADF,
> }, MOUNT_ATTR_SIZE_VER0) < 0)
>
> This means:
>
> attr_set == 0 && attr_clear == 0 and propagation == 0 and we'd thus
> never trigger a path lookup on older kernels. But now we do thus causing
> the hang.
>
> I've restored the old behavior. Can you please test?:
>
> https://web.git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git/log/?h=work.mount.fixes
Thanks,
I can confirm systemd-nspawn working as expected on the kernel built
from the branch work.mount.fixes.
Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
--
Best Regards,
Mike Gavrilov.
[-- Attachment #2: 6.15.0-rc1-work.mount.fixes.zip --]
[-- Type: application/zip, Size: 50431 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-04-09 14:29 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-07 7:14 6.15-rc1/regression/bisected - commit 474f7825d533 is broke systemd-nspawn on my system Mikhail Gavrilov
2025-04-07 14:15 ` Christian Brauner
2025-04-07 14:34 ` Mikhail Gavrilov
2025-04-08 8:23 ` Christian Brauner
2025-04-08 8:50 ` Mikhail Gavrilov
2025-04-08 9:18 ` Christian Brauner
2025-04-08 9:34 ` Mikhail Gavrilov
2025-04-08 10:21 ` Christian Brauner
2025-04-08 13:05 ` Mikhail Gavrilov
2025-04-09 8:36 ` Christian Brauner
2025-04-09 14:29 ` Mikhail Gavrilov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®