Latx64 SIGBUS when Wine WoW64 installs SumatraPDF x86
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 15/100
Research direction
The core stack — cpu_loop -> process_pending_signals -> handle_pending_signal -> dump_core_and_abort in /usr/bin/latx-x86_64-1.6 — is where to start: locate those handlers and work out how a guest access on the WoW64 32-bit path becomes SIGBUS. Reproduce with WINEARCH=wow64 and the listed WINEDLLOVERRIDES, watching Wine's InstallerThread right after CopySelfToDir, and use a debug Latx64 build with a TB/IR2 dump to catch the faulting guest instruction. Done means the SumatraPDF 3.6.1 x86 installer finishes without SIGBUS/exit 135.
Written by the indexing model from the issue text.
Description
问题
在 LoongArch64 主机上,Latx64 执行 Wine 11.0 WoW64 中的
SumatraPDF-3.6.1-install.exe。用户在安装器窗口点击 Install 后,安装线程完成
CopySelfToDir(),随后 Latx64 收到 SIGBUS 并生成 core。安装器退出码为 135。
这不是应用服务进程崩溃:系统 coredump 的可执行文件是
/usr/bin/latx-x86_64-1.6,命令行为:
/usr/bin/latx-x86_64-1.6 \
.../wine-preloader .../wine \
/loongrun/installers/SumatraPDF-3.6.1-install.exe
core 摘要:
Signal: 7 (BUS)
Process: SumatraPDF-3.6.
#4 dump_core_and_abort
#5 handle_pending_signal
#6 process_pending_signals
#7 cpu_loop
#8 main
Wine 安装器日志的最后成功位置:
InstallerThread: cli->allUsers: 0
ExtractInstallerFiles() to 'C:\\users\\wine\\AppData\\Local\\SumatraPDF'
CopySelfToDir(C:\\users\\wine\\AppData\\Local\\SumatraPDF)
copied 'Z:\\loongrun\\installers\\SumatraPDF-3.6.1-install.exe'
Bus error (core dumped)
复现步骤
- 使用 Wine 11.0
amd64-wow64:Unix 侧只有x86_64-unix,Windows 模块同时有i386-windows和x86_64-windows。 - 通过 Latx64 运行 Wine,设置:
WINEARCH=wow64
WINEDEBUG=-all
WINEDLLOVERRIDES=winemenubuilder.exe=d;mscoree=d;mshtml=d
- 启动 SumatraPDF 3.6.1 x86 安装器,关闭“32-bit on 64-bit OS”提示,在安装器主窗口点击 Install。
- 等待约 78 秒,得到
SIGBUS/ exit 135。
同一运行时能够运行 PE32、PE32+ 测试程序,也能完成 7-Zip x86 与 Notepad++ x86 安装。因此问题看起来与该交互安装线程的执行路径有关。
期望
Latx64 不应因 guest 程序的此执行路径触发 SIGBUS。如果需要,我可以补充 core 文件、精确 Wine 归档摘要、或基于调试版 Latx64 的 TB/IR2 dump。
- Dominant language
- C
- Stars
- 246
- Forks
- 64
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 19
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from lat-opensource/lat
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
lat-opensource/lat#524 · 1 comment ·
Maintainers usually reply within 2 days
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
lat-opensource/lat#523 ·
Maintainers usually reply within 2 days
-
[Bug]: linux 微信无法启动May be free again @LaurenIsACoder claimed this 52 days ago, and no pull request is open. Openbug
lat-opensource/lat#465 · 1 assignee ·
Maintainers usually reply within 2 days
-
[Bug]: Proton Python 的内部 fd 闭环May be free again @LaurenIsACoder claimed this 53 days ago, and no pull request is open. Openbug
lat-opensource/lat#462 · 1 assignee ·
Maintainers usually reply within 2 days
-
[Bug]: Syringe.exe (injector of a Yuri's Revenge expansion platform called Ares) cannot workMay be free again @LaurenIsACoder claimed this 80 days ago, and no pull request is open. Openbug
lat-opensource/lat#380 · 2 comments · 1 assignee ·
Maintainers usually reply within 2 days
All issues in lat-opensource/lat
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
HexaCluster/credcheck#86 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
mongodb/winkerberos#175 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
AOMediaCodec/SVT-AV1#3320 ·
-
difficulty: easy
Difficulty 2/5 1-3 hours Newbie friendliness 64/100