6.13+ uml crash
Maciej Żenczykowski
maze at google.com
Tue Apr 7 02:47:48 PDT 2026
On Tue, Apr 7, 2026 at 5:01 PM Benjamin Berg <benjamin at sipsolutions.net> wrote:
>
> Hi,
>
> you get an ESRCH error, which means that either the UML userspace
> process does not exist or maybe we do not have permission to trace for
> some reason.
>
> Now, the difference is that before the patch UML would just clone to
> create the userspace processes. After the patch, it will execve() into
> a separate executable that exists only as a memfd.
>
> I am noticing now, that we are doing the PTRACE_TRACEME inside the new
> executable instead of the usual method of doing it before execve. So
> maybe that makes a difference with AppArmor.
>
> So, I think you can do two things:
> 1. As a quick workaround, simply use "seccomp=on".
> However, the sandboxing of the userspace processes is not quite
> as secure if you do that (i.e. they currently can break out and
> make host syscalls).
I tried the breaking commit, and 6.13.latest but it doesn't appear to
support seccomp=on
I tried 6.18.latest but it fails to build for me with
In file included from ./include/linux/unwind_user.h:6,
from ./include/linux/unwind_deferred.h:6,
from kernel/fork.c:108:
./arch/x86/include/asm/unwind_user.h: In function ‘unwind_user_word_size’:
./arch/x86/include/asm/unwind_user.h:23:17: error: ‘struct pt_regs’
has no member named ‘flags’
23 | if (regs->flags & X86_VM_MASK)
| ^~
CC net/ipv6/addrconf.o
./arch/x86/include/asm/unwind_user.h:23:27: error: ‘X86_VM_MASK’
undeclared (first use in this function)
23 | if (regs->flags & X86_VM_MASK)
| ^~~~~~~~~~~
./arch/x86/include/asm/unwind_user.h:23:27: note: each undeclared
identifier is reported only once for each function it appears in
CC block/blk-settings.o
CC net/core/net_namespace.o
./arch/x86/include/asm/unwind_user.h:26:14: error: implicit
declaration of function ‘user_64bit_mode’
[-Wimplicit-function-declaration]
26 | if (!user_64bit_mode(regs))
| ^~~~~~~~~~~~~~~
it's likely related to some combination of kconfig options needed for
android net tests...
6.16.latest builds but still crashes (not sure if it supports
seccomp=on), but the crash is different:
Run /sbin/net_test.sh as init process
Unexpectedly lost MM child! Affected tasks will segfault.
wait_stub_done_seccomp : failed to wait for stub, pid = -1, errno = 0
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
CPU: 0 UID: 0 PID: 1 Comm: net_test.sh Not tainted 6.16.12-g7e13344d2211 #4 NONE
Stack:
80803b60 6063f23b 6051b353 00000000
00000001 6063f23b 606314ef 60027dfc
80803b90 6002f679 60c70000 609374c0
Call Trace:
[<60027dfc>] ? _printk+0x0/0x57
[<6003237a>] show_stack+0x10b/0x11a
[<6051b353>] ? dump_stack_print_info+0x0/0x12b
[<60027dfc>] ? _printk+0x0/0x57
[<6002f679>] dump_stack_lvl+0x5e/0x79
[<6002f6ae>] dump_stack+0x1a/0x1c
[<60026626>] panic+0x156/0x377
[<6003ff78>] ? unblock_signals+0x25/0x28
[<6003ffa1>] ? um_set_signals+0x26/0x3e
[<600264d0>] ? panic+0x0/0x377
[<60049fd8>] do_exit+0x205/0x9f6
[<60162f26>] ? kmem_cache_free+0x118/0x12b
[<6004a9ff>] sys_exit_group+0x0/0x16
[<60055d9c>] get_signal+0x7dc/0x803
[<600555c0>] ? get_signal+0x0/0x803
[<6004349c>] ? setup_signal_stack_si+0x0/0x1f0
[<60055166>] ? signal_setup_done+0x0/0xb1
[<600320f5>] do_signal+0x54/0x1ce
[<60539370>] ? _raw_spin_unlock_irqrestore+0x0/0x39
[<60032db6>] fatal_sigsegv+0x32/0x3e
[<60041ac6>] wait_stub_done_seccomp+0x2b1/0x2c0
[<60041efa>] userspace+0xff/0x694
[<60031769>] ? interrupt_end+0x0/0xac
[<60179ba4>] ? copy_strings_kernel+0x0/0x9e
[<6003166a>] new_thread_handler+0x5a/0x5e
/aosp-tests/net/test/run_net_test.sh: line 503: 939215 Aborted
(core dumped) $KERNEL_BINARY umid=net_test mem=512M
seccomp=on $blockdevice=$ROOTFS $netconfig $consolemode ssl3=null,fd:3
$cmdline 1>&2 3> "${SSL3}"
Warning: UML exited with 134 instead of zero.
> 2. Move the ptrace(PTRACE_TRACEME) call into userspace_tramp to
> check if AppArmor is permitting ptrace then.
haven't yet had time to try this approach.
>
> Benjamin
>
> On Tue, 2026-04-07 at 15:15 +0900, Maciej Żenczykowski wrote:
> > On Tue, Apr 7, 2026 at 2:56 PM Berg, Johannes <johannes.berg at intel.com> wrote:
> > > Hi,
> > >
> > > Haven't looked at this yet - but really better if you CC the UML list.
> > >
> > > johannes
> > >
> > > > -----Original Message-----
> > > > From: Maciej Żenczykowski <maze at google.com>
> > > > Sent: Saturday, April 4, 2026 5:25 AM
> > > > To: Berg, Benjamin <benjamin.berg at intel.com>; Berg, Johannes
> > > > <johannes.berg at intel.com>; Tiwei Bie <tiwei.btw at antgroup.com>
> > > > Subject: Re: 6.13+ uml crash
> > > >
> > > > On Fri, Apr 3, 2026 at 12:34 PM Maciej Żenczykowski <maze at google.com>
> > > > wrote:
> > > > >
> > > > > Host is:
> > > > >
> > > > > 6.18.14-1rodete1-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.18.14-
> > > > 1rodete1
> > > > > (2026-03-06) x86_64 GNU/Linux
> > > > >
> > > > > /proc/cmdline
> > > > > ima_hash=sha256 kfence.sample_interval=100 intel_iommu=sm_off
> > > > > pci=noats printk.devkmsg=on slab_nomerge
> > > > > lsm=landlock,lockdown,yama,loadpin,safesetid,integrity,apparmor,selinu
> > > > > x,smack,tomoyo,bpf
> > > > > apparmor=1 panic=30 glinux-boot-image=default-20260324.03.00
> > > > > earlycon=uart8250,io,0x3f8 console=ttyS0,115200n8 console=hvc0
> > > > > console=tty0 splash plymouth.ignore-serial-consoles i915.enable_psr=0
> > > > >
> > > > > No SELinux, but I think there is likely some corporate AppArmor policy...
> > > > >
> > > > > I seem to hit this problem while trying to use UML on latest
> > > > > 6.13/6.14/6.15/6.16/6.17/6.18/6.19
> > > > > 6.12 guests are the last ones that work.
> > > > >
> > > > > I noticed 6.13 had many UML changes...
> > > > >
> > > > > This is while trying to run the android net tests.
> > > > >
> > > > > https://android.googlesource.com/kernel/tests/+log/refs/heads/mirror-g
> > > > > oog-main-kernel /aosp-tests/net/test/run_net_test.sh --builder
> > > > > all_tests.sh
> > > > >
> > > > > ...
> > > > > VFS: Mounted root (ext3 filesystem) readonly on device 98:0.
> > > > > devtmpfs: mounted
> > > > > This architecture does not have kernel memory protection.
> > > > > Run /sbin/net_test.sh as init process
> > > > > Registers -
> > > > > 0 0x60025a90
> > > > > 1 0x2e2ea5
> > > > > 2 0x600423e4
> > > > > 3 0x2e2ea8
> > > > > 4 0x7fffffffbe30
> > > > > 5 0x0
> > > > > 6 0x206
> > > > > 7 0x0
> > > > > 8 0x7fffffffbe30
> > > > > 9 0xffffffff
> > > > > 10 0x0
> > > > > 11 0x7ffff7c40c87
> > > > > 12 0x0
> > > > > 13 0x13
> > > > > 14 0x2e2ea8
> > > > > 15 0x3e
> > > > > 16 0x7fffffffc000
> > > > > 17 0x33
> > > > > 18 0x206
> > > > > 19 0x7fffffffeff8
> > > > > 20 0x2b
> > > > > 21 0x7ffff7f9d740
> > > > > 22 0x0
> > > > > 23 0x0
> > > > > 24 0x0
> > > > > 25 0x0
> > > > > 26 0x0
> > > > > Kernel panic - not syncing: do_syscall_stub : PTRACE_SETREGS failed,
> > > > > errno = 3 [ESRCH]
> > > > > CPU: 0 UID: 0 PID: 1 Comm: net_test.sh Not tainted
> > > > > 6.13.12-g2abfa5d47651 #3
> > > > > Stack:
> > > > > 600277e4 60629dd1 80803d80 00000000
> > > > > 00000001 60629dd1 6061c0a9 600277e4
> > > > > 80803db0 6002efd2 60c70000 609171c0
> > > > > Call Trace:
> > > > > [<600277e4>] ? _printk+0x0/0x57
> > > > > [<600322ec>] show_stack+0x10b/0x11a
> > > > > [<600277e4>] ? _printk+0x0/0x57
> > > > > [<600277e4>] ? _printk+0x0/0x57
> > > > > [<6002efd2>] dump_stack_lvl+0x5e/0x79 [<6002f007>]
> > > > > dump_stack+0x1a/0x1c [<60026838>] panic+0x156/0x377 [<600277e4>] ?
> > > > > _printk+0x0/0x57 [<600266e2>] ? panic+0x0/0x377 [<600277e4>] ?
> > > > > _printk+0x0/0x57 [<6004555b>] do_syscall_stub+0xa6/0x132
> > > > > [<60031608>] ? interrupt_end+0x0/0xae [<6004560b>]
> > > > > syscall_stub_flush+0x24/0x2e [<60045daf>] userspace+0x81/0x469
> > > > > [<60031608>] ? interrupt_end+0x0/0xae [<601761ba>] ?
> > > > > copy_strings_kernel+0x0/0x9e [<60031509>]
> > > > > new_thread_handler+0x5a/0x5e
> > > > > /aosp-tests/net/test/run_net_test.sh: line 498: 3026597 Aborted
> > > > > (core dumped) $KERNEL_BINARY umid=net_test mem=512M
> > > > > $blockdevice=$ROOTFS $netconfig $consolemode ssl3=null,fd:3 $cmdline
> > > > > 1>&2 3> "${SSL3}"
> > > > > Warning: UML exited with 134 instead of zero.
> > > >
> > > > It appears this broke at:
> > > >
> > > > commit 32e8eaf263d9be014ba1970444f745682fa9c6c0
> > > > Author: Benjamin Berg <benjamin.berg at intel.com>
> > > > um: use execveat to create userspace MMs
> > > Intel Deutschland GmbH
> > > Registered Address: Dornacher Strasse 1, 85622 Feldkirchen, Germany
> > > Tel: +49 89 991 430, www.intel.de
> > > Managing Directors: Harry Demas, Jeffrey Schneiderman, Yin Chong Sorrell
> > > Chairperson of the Supervisory Board: Nicole Lau
> > > Registered Seat: Munich
> > > Commercial Register: Amtsgericht Muenchen HRB 186928
> >
> > --
> > Maciej Żenczykowski, Kernel Networking Developer @ Google
--
Maciej Żenczykowski, Kernel Networking Developer @ Google
More information about the linux-um
mailing list