summary refs log tree commit diff stats
path: root/gitlab/issues/target_i386/host_arm/accel_TCG/2560.toml
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues/target_i386/host_arm/accel_TCG/2560.toml')
-rw-r--r--gitlab/issues/target_i386/host_arm/accel_TCG/2560.toml113
1 files changed, 0 insertions, 113 deletions
diff --git a/gitlab/issues/target_i386/host_arm/accel_TCG/2560.toml b/gitlab/issues/target_i386/host_arm/accel_TCG/2560.toml
deleted file mode 100644
index b4d28d14..00000000
--- a/gitlab/issues/target_i386/host_arm/accel_TCG/2560.toml
+++ /dev/null
@@ -1,113 +0,0 @@
-id = 2560
-title = "Go garbage collector crashes when using qemu-x86_64 on an aarch64 host"
-state = "opened"
-created_at = "2024-09-05T19:08:46.266Z"
-closed_at = "n/a"
-labels = ["accel: TCG", "host: arm", "kind::Feature Request", "linux-user", "target: i386"]
-url = "https://gitlab.com/qemu-project/qemu/-/issues/2560"
-host-os = "Alpine Linux"
-host-arch = "aarch64"
-qemu-version = "from 9.0.1"
-guest-os = "n/a"
-guest-arch = "x86_64"
-description = """Apps compiled for Go and the Go compiler/tool itself crash when they are run with `qemu-x86_64` on an AARCH64 host system. This was not a problem on QEMU 8.2.x (I bisected, see further down). I also seem to recall that Go 1.21 is fine on QEMU 9.x, so maybe some recent change in Go 1.22 + recent changes in QEMU broke something?
-
-The crash from Go seems to be in the garbage collector, I cannot reproduce the issue when I disable the GC with `GOGC=off`.
-
-Output from Go when it crashes:
-
-```
-$ sudo chroot . go build main.go
-runtime: lfstack.push invalid packing: node=0xffff6542b2c0 cnt=0x1 packed=0xffff6542b2c00001 -> node=0xffffffff6542b2c0
-fatal error: lfstack.push
-
-runtime stack:
-runtime.throw({0xa95b29?, 0x797b1e2a383c?})
-        runtime/panic.go:1023 +0x5c fp=0xc000515f08 sp=0xc000515ed8 pc=0x43c27c
-runtime.(*lfstack).push(0x0?, 0xc0005041c0?)
-        runtime/lfstack.go:29 +0x125 fp=0xc000515f48 sp=0xc000515f08 pc=0x40fd45
-runtime.(*spanSetBlockAlloc).free(...)
-        runtime/mspanset.go:322
-runtime.(*spanSet).reset(0xf46980)
-        runtime/mspanset.go:264 +0x79 fp=0xc000515f78 sp=0xc000515f48 pc=0x437219
-runtime.finishsweep_m()
-        runtime/mgcsweep.go:258 +0x8d fp=0xc000515fb8 sp=0xc000515f78 pc=0x42a6cd
-runtime.gcStart.func2()
-        runtime/mgc.go:685 +0xf fp=0xc000515fc8 sp=0xc000515fb8 pc=0x46e40f
-runtime.systemstack(0x0)
-        runtime/asm_amd64.s:509 +0x4a fp=0xc000515fd8 sp=0xc000515fc8 pc=0x47442a
-````"""
-reproduce = """0. Use an aarch64 host system!
-
-1. Set up binfmt to use qemu-x86_64:
-
-```
-$ cat /proc/sys/fs/binfmt_misc/qemu-x86_64
-enabled
-interpreter /usr/bin/qemu-x86_64
-flags: OCF
-offset 0
-magic 7f454c4602010100000000000000000002003e00
-mask fffffffffffefe00fffffffffffffffffeffffff
-```
-
-2. Download/extract x86_64 rootfs:
-
-```
-$ curl -O https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-minirootfs-3.20.2-x86_64.tar.gz\t
-```
-
-3. Create example app in the x86_64 rootfs:
-
-```
-package main
-
-func main() {
-}
-```
-
-4. Build using chroot:
-
-```
-$ sudo chroot /path/to/x86_64/rootfs apk add go
-$ sudo chroot /path/to/x86_64/rootfs go build main.go
-runtime: lfstack.push invalid packing: node=0xffff6542b2c0 cnt=0x1 packed=0xffff6542b2c00001 -> node=0xffffffff6542b2c0
-fatal error: lfstack.push
-...
-```
-
-5. As noted previously, if the Go garbage collector is disabled, then it works, presumably because it avoids the bug(?) in QEMU:
-
-```
-$ sudo chroot . env GOGC=off go build main.go
-# might have to mount /dev to build successfully, but Go doesn't panic!
-```"""
-additional = """I've bisected this exact crash/failure to:
-
-```
-commit 2952b642a555207748dd961fcbfdc48f198eebb6
-Author: Richard Henderson <richard.henderson@linaro.org>
-Date:   Tue Feb 13 10:20:27 2024 -1000
-
-    linux-user: Split out do_munmap
-
-    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
-    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-```
-
-Though a different crash starts happening at the commit before that one:
-
-```
-commit ad87d26e6bb13257409f412224c862fc54025e8b
-Author: Richard Henderson <richard.henderson@linaro.org>
-Date:   Tue Jan 2 12:57:55 2024 +1100
-
-    linux-user: Do early mmap placement only for reserved_va
-
-    For reserved_va, place all non-fixed maps then proceed
-    as for MAP_FIXED.
-
-    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-```
-
-FYI @rth7680"""