diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-03 19:39:53 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-03 19:39:53 +0200 |
| commit | dee4dcba78baf712cab403d47d9db319ab7f95d6 (patch) | |
| tree | 418478faf06786701a56268672f73d6b0b4eb239 /results/classifier/108/device/1835839 | |
| parent | 4d9e26c0333abd39bdbd039dcdb30ed429c475ba (diff) | |
| download | emulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.tar.gz emulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.zip | |
restructure results
Diffstat (limited to 'results/classifier/108/device/1835839')
| -rw-r--r-- | results/classifier/108/device/1835839 | 284 |
1 files changed, 0 insertions, 284 deletions
diff --git a/results/classifier/108/device/1835839 b/results/classifier/108/device/1835839 deleted file mode 100644 index 7efb3d83..00000000 --- a/results/classifier/108/device/1835839 +++ /dev/null @@ -1,284 +0,0 @@ -device: 0.948 -other: 0.947 -performance: 0.947 -permissions: 0.941 -semantic: 0.925 -PID: 0.923 -debug: 0.914 -boot: 0.909 -graphic: 0.904 -socket: 0.903 -files: 0.891 -network: 0.890 -vnc: 0.880 -KVM: 0.859 - -qemu-user: $0 incorrectly always reports absolute path - -We just ran into an issue with the Perl package on Debian/m68k when being built with qemu-user [1]. - -The problem can be boiled down to qemu-user always reporting absolute paths for the shell variable $0 no matter on how the command was invoked. - -A simple reproducer is this: - -On normal system (no emulation): - -root@nofan:~> sh -c 'echo $0' -sh -root@nofan:~> - -On qemu-user: - -(sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0' -/bin/sh -(sid-m68k-sbuild)root@nofan:/# - -> [1] https://lists.debian.org/debian-68k/2019/07/msg00007.html - -Tentative patch - -On 7/9/19 1:54 PM, Laurent Vivier wrote: -> ** Patch added: "Enable binfmt-misc preserve-arg[0] flag" -> https://bugs.launchpad.net/qemu/+bug/1835839/+attachment/5275869/+files/0001-linux-user-manage-binfmt-misc-preserve-arg-0-flags.patch - -Thanks! I just tried the patch and ran the setup script with: - -./scripts/qemu-binfmt-conf.sh --debian --qemu-path=/usr/bin --qemu-suffix=-static --preserve-arg0 yes - -and: - -root@nofan:~/qemu> systemctl restart binfmt-support.service -root@nofan:~/qemu> - -But still don't get the correct path: - -(sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0' -/bin/sh -(sid-m68k-sbuild)root@nofan:/# - -Do I need to do anything else? - --- - .''`. John Paul Adrian Glaubitz -: :' : Debian Developer - <email address hidden> -`. `' Freie Universitaet Berlin - <email address hidden> - `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 - - -Is the proposed patch backwards compatible (ie "old QEMU binary works with newer binfmt-misc registration" and "new QEMU binary works with older binfmt-misc registration") ? Because binfmt-misc stuff is whole-system but QEMU binaries are per-chroot, this kind of thing is awkward to change if we don't have back-compat (and typically the kernel semantics for these things often don't allow back-compat or any kind of migration-path to the new better setup :-( ) - - -Le 09/07/2019 à 14:12, John Paul Adrian Glaubitz a écrit : -> On 7/9/19 1:54 PM, Laurent Vivier wrote: ->> ** Patch added: "Enable binfmt-misc preserve-arg[0] flag" ->> https://bugs.launchpad.net/qemu/+bug/1835839/+attachment/5275869/+files/0001-linux-user-manage-binfmt-misc-preserve-arg-0-flags.patch -> -> Thanks! I just tried the patch and ran the setup script with: -> -> ./scripts/qemu-binfmt-conf.sh --debian --qemu-path=/usr/bin --qemu- -> suffix=-static --preserve-arg0 yes -> -> and: -> -> root@nofan:~/qemu> systemctl restart binfmt-support.service -> root@nofan:~/qemu> - -if you use systemctl, the parameter of "./scripts/qemu-binfmt-conf.sh" -must be "--systemd m68k" rather than "--debian". - -> -> But still don't get the correct path: -> -> (sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0' -> /bin/sh -> (sid-m68k-sbuild)root@nofan:/# - -Well, I've tested that, and it should work... - -Thanks, -LAurent - - - -On 7/9/19 2:51 PM, Laurent Vivier wrote: -> if you use systemctl, the parameter of "./scripts/qemu-binfmt-conf.sh" -> must be "--systemd m68k" rather than "--debian". - -I tried that and I now get: - -root@nofan:/local_scratch/sid-m68k-sbuild> chroot . -chroot: failed to run command ‘/bin/bash’: No such file or directory -root@nofan:/local_scratch/sid-m68k-sbuild> - ->> But still don't get the correct path: ->> ->> (sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0' ->> /bin/sh ->> (sid-m68k-sbuild)root@nofan:/# -> -> Well, I've tested that, and it should work... - -Oh, I'm not arguing that. I'm sure the error is on my side ;). I'm just trying -to find out what I'm doing wrong. - --- - .''`. John Paul Adrian Glaubitz -: :' : Debian Developer - <email address hidden> -`. `' Freie Universitaet Berlin - <email address hidden> - `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 - - -Le 09/07/2019 à 14:16, Peter Maydell a écrit : -> Is the proposed patch backwards compatible (ie "old QEMU binary works -> with newer binfmt-misc registration" and "new QEMU binary works with -> older binfmt-misc registration") ? Because binfmt-misc stuff is whole- -> system but QEMU binaries are per-chroot, this kind of thing is awkward -> to change if we don't have back-compat (and typically the kernel -> semantics for these things often don't allow back-compat or any kind of -> migration-path to the new better setup :-( ) -> - -If you don't enable the preserve-arg[0] flag, old and new QEMU will work. - -If you enable the flag, only new QEMU with -0/QEMU_ARGV0 will work. - -The best solution would be to force preserve-arg[0] with open-binary -flag and rely on AT_FDEXEC to detect the binfmt-misc environment, but -this breaks compatibility with existing environment and old QEMU. - -Regarding the "binfmt-misc stuff is whole-system" problem, I've proposed -months ago a kernel based solution [1] to have a configuration per -namespace (chroot), but no one seems really interested (I think -maintainer is afraid by potential security issues). - -[1] ns: introduce binfmt_misc namespace - https://patchwork.kernel.org/cover/10634807/ - - -Le 09/07/2019 à 15:07, John Paul Adrian Glaubitz a écrit : -> On 7/9/19 2:51 PM, Laurent Vivier wrote: ->> if you use systemctl, the parameter of "./scripts/qemu-binfmt-conf.sh" ->> must be "--systemd m68k" rather than "--debian". -> -> I tried that and I now get: -> -> root@nofan:/local_scratch/sid-m68k-sbuild> chroot . -> chroot: failed to run command ‘/bin/bash’: No such file or directory -> root@nofan:/local_scratch/sid-m68k-sbuild> - -What is the content of: - -/etc/binfmt.d/qemu-m68k.conf -/proc/sys/fs/binfmt_misc/qemu-m68k - -what is the result of "file sid-m68k-sbuild/usr/bin/qemu-m68k-static"? - -Bonus: if you don't want to copy qemu-m68k-static into the chroot, you -can use "--persistent" with qemu-binfmt-conf.sh. - -Thanks, -Laurent - - -On 7/9/19 4:01 PM, Laurent Vivier wrote: -> What is the content of: -> -> /etc/binfmt.d/qemu-m68k.conf -> /proc/sys/fs/binfmt_misc/qemu-m68k - -root@nofan:~> cat /etc/binfmt.d/qemu-m68k.conf -:qemu-m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-m68k-static:P -root@nofan:~> cat /proc/sys/fs/binfmt_misc/qemu-m68k -enabled -interpreter /usr/bin/qemu-m68k-static -flags: OCF -offset 0 -magic 7f454c4601020100000000000000000000020004 -mask ffffffffffffff00fffffffffffffffffffeffff -root@nofan:~> - -> what is the result of "file sid-m68k-sbuild/usr/bin/qemu-m68k-static"? -> -> Bonus: if you don't want to copy qemu-m68k-static into the chroot, you -> can use "--persistent" with qemu-binfmt-conf.sh. -I'm doing that and I don't have a copy of qemu in the chroot. - -But I think I forgot to pass --persistent to the script while testing. - -Adrian - --- - .''`. John Paul Adrian Glaubitz -: :' : Debian Developer - <email address hidden> -`. `' Freie Universitaet Berlin - <email address hidden> - `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 - - -After building qemu-m68k, I did: - -root@nofan:~/qemu> scripts/qemu-binfmt-conf.sh --systemd m68k --qemu-path=/usr/bin --qemu-suffix=-static --preserve-arg0 yes --persistent yes -Setting /usr/bin/qemu-m68k-static as binfmt interpreter for m68k for systemd-binfmt.service -root@nofan:~/qemu> rm /usr/bin/qemu-m68k-static -root@nofan:~/qemu> cp -av m68k-linux-user/qemu-m68k /usr/bin/qemu-m68k-static -'m68k-linux-user/qemu-m68k' -> '/usr/bin/qemu-m68k-static' -root@nofan:~/qemu> systemctl restart binfmt-support.service -root@nofan:~/qemu> chroot /local_scratch/sid-m68k-sbuild/ -(sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0' -/bin/sh -(sid-m68k-sbuild)root@nofan:/# - --- - .''`. John Paul Adrian Glaubitz -: :' : Debian Developer - <email address hidden> -`. `' Freie Universitaet Berlin - <email address hidden> - `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 - - -Le 09/07/2019 à 17:09, John Paul Adrian Glaubitz a écrit : -> On 7/9/19 4:01 PM, Laurent Vivier wrote: ->> What is the content of: ->> ->> /etc/binfmt.d/qemu-m68k.conf ->> /proc/sys/fs/binfmt_misc/qemu-m68k -> -> root@nofan:~> cat /etc/binfmt.d/qemu-m68k.conf -> :qemu-m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-m68k-static:P -> root@nofan:~> cat /proc/sys/fs/binfmt_misc/qemu-m68k -> enabled -> interpreter /usr/bin/qemu-m68k-static -> flags: OCF -> offset 0 -> magic 7f454c4601020100000000000000000000020004 -> mask ffffffffffffff00fffffffffffffffffffeffff - -This is not consistent: you have 'P' in /etc/binfmt.d/qemu-m68k.conf but -'OCF' in /proc/sys/fs/binfmt_misc/qemu-m68k. - -Check "systemctl status binfmt-support.service" - -With 'P' when you change the binary you must reload the configuration -because the binary is loaded in memory once when the configuration is -updated. - -Thanks, -Laurent - - - -The QEMU project is currently considering to move its bug tracking to -another system. For this we need to know which bugs are still valid -and which could be closed already. Thus we are setting older bugs to -"Incomplete" now. - -If you still think this bug report here is valid, then please switch -the state back to "New" within the next 60 days, otherwise this report -will be marked as "Expired". Or please mark it as "Fix Released" if -the problem has been solved with a newer version of QEMU already. - -Thank you and sorry for the inconvenience. - - -Laurent's patch has been included here: -https://gitlab.com/qemu-project/qemu/-/commit/6e1c0d7b951e19c53b8467e8bc4b71ee73a394ea -So I assume we can mark this as fixed now. - |
