summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_missing/829.toml
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-05-21 21:21:26 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-05-21 21:21:26 +0200
commit4b927bc37359dec23f67d3427fc982945f24f404 (patch)
tree245449ef9146942dc7fffd0235b48b7e70a00bf2 /gitlab/issues/target_missing/host_missing/accel_missing/829.toml
parentaa8bd79cec7bf6790ddb01d156c2ef2201abbaab (diff)
downloadqemu-analysis-4b927bc37359dec23f67d3427fc982945f24f404.tar.gz
qemu-analysis-4b927bc37359dec23f67d3427fc982945f24f404.zip
add gitlab issues in toml format
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/829.toml')
-rw-r--r--gitlab/issues/target_missing/host_missing/accel_missing/829.toml24
1 files changed, 24 insertions, 0 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/829.toml b/gitlab/issues/target_missing/host_missing/accel_missing/829.toml
new file mode 100644
index 000000000..0c7433156
--- /dev/null
+++ b/gitlab/issues/target_missing/host_missing/accel_missing/829.toml
@@ -0,0 +1,24 @@
+id = 829
+title = "user space emulation: openat() seems to defeat sysroot path translation"
+state = "opened"
+created_at = "2022-01-20T14:28:03.151Z"
+closed_at = "n/a"
+labels = ["linux-user"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/829"
+host-os = "Ubuntu 21.10 (pop-os)"
+host-arch = "x86_64"
+qemu-version = "qemu-arm version 6.0.0 (Debian 1:6.0+dfsg-2expubuntu1.1)"
+guest-os = "armv7 linux uclibceabihf"
+guest-arch = "ARMv7"
+description = """It appears that the user space emulation code is doing some path manipulation of some syscalls to sometimes prefix them with the sysroot.  This seems to be interacting badly sometimes with certain usage patterns.  This was noticed because a test suite of various libc calls was failing under `qemu-arm`, and a `strace` of the qemu-arm process revealed that the translated paths were being inconsistently applied.
+
+In particular, the sequence which fails is:
+* create a file in `/tmp/`.
+* open `/tmp` itself.  This succeeds, but `strace` reveals that it actually opened `SYSROOT/tmp/`.
+* `openat(tmpfd, tmpfile_name)` then fails, as the fd provided to openat is actually inside the sysroot, not at `/tmp` as expected."""
+reproduce = """1. Get toolchain https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--uclibc--bleeding-edge-2021.11-1.tar.bz2
+2. Compile attached test program [test_openat.c](/uploads/69eb997256ff29d2178be85531c6b3c6/test_openat.c)
+3. Try to run under `qemu-arm`.
+
+This code passes in non-emulated situations, but fails under user-space emulation.  Presumably it would also pass under full system emulation."""
+additional = "n/a"