https://bugs.winehq.org/show_bug.cgi?id=52593
Bug ID: 52593 Summary: RPG Maker MV: Crash in bundled qt5webenginecore on project open Product: Wine Version: 7.2 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: zoe@milky.flowers Distribution: ---
Created attachment 71919 --> https://bugs.winehq.org/attachment.cgi?id=71919 All output from wine-7.2-628-g2d0e84e6019 from launch to crash, with a default project set
The program (RPG Maker MV Trial Version 161W) starts up fine and appears to be stable if no project is loaded. However, within a few seconds of loading a project or creating a new one, it crashes. It's responsive and appears to behave normally within those few seconds (e.g. you can place new tiles and so on). I get the vague impression that the crash is coming not from the main thread but from the QtWebEngineProcess thread, although I'm not entirely sure how to verify this. I didn't see the crash when running it with `WINEDEBUG=+seh,+relay` and the output redirected to a file, which slowed the program to a glacial crawl; either there's a race condition or the slow pace extended the few seconds of crash-free time to several minutes. This is all from a fresh 32-bit prefix dedicated purely to this program.
The program can be freely obtained from the vendor here: https://dl.degica.com/rpgmakerweb/trial-download/RPGMV_161W_Setup.zip . The filename is RPGMV_161W_Setup.zip, and its SHA1 checksum is 9ad63c92345ebc3236de1779f96af1575afa316f.
I tried this with several versions of Wine. The most significant is probably wine-7.2-628-g2d0e84e6019, which I built totally vanilla (`configure && make depend && make`). However, I also tried using wine-6.23 (Staging), wine-7.2 (Staging), and wine-7.2 (i.e. stable) as built from Gentoo's official packages, all with the same result. My partner saw the same behavior in Linux Mint with wine-7.2 (Staging) from the wine-builds repository (that was how all this began, actually).
Just in case anyone asks, I don't think this has anything to do with corefonts, as I've installed the winetricks "allfonts" package to this prefix.
STEPS TO REPRODUCE:
1. Post-installation, run `WINEPREFIX=[PREFIX] wine 'C:\Program Files\KADOKAWA\RPGMV\RPGMV.exe'`. The program should start normally. 2. If you're running it for the first time, there should be no default project to open, so the application should work as intended. 3. Either open an existing project or create a new project. 4. Once the project is fully opened, wait a few seconds.
If you want to avoid having it open a default project at startup (e.g. if you want to control when it crashes for logging purposes or whatnot), edit `user.reg`, find the `[Software\KADOKAWA\RPGMV]` section, and change `"projectFileUrl"="[PATH_TO_YOUR_PROJECT]"` to `"projectFileUrl"=""`.
ENVIRONMENTS:
Gentoo Linux, x86-64, vanilla kernel 5.16.10 Linux Mint, x86-64, kernel 5.13.0-32-generic
https://bugs.winehq.org/show_bug.cgi?id=52593
--- Comment #1 from Zoë Sparks zoe@milky.flowers --- The following rough and hacky procedure doesn't prevent the crash, but it does delay it for a significant amount of time in my environment (maybe a couple minutes?). I found it on "accident" while trying to get more detailed logs around the crash.
1. From a fresh installation of MV, start it up with `WINEPREFIX=[PREFIX] wine 'C:\Program Files\KADOKAWA\RPGMV\RPGMV.exe'`. 2. Press "Continue" when you see the registration screen and wait. 3. Once you can use the program, create a new project. MV will crash a few seconds after the project is finished. The project itself will still be there; the crash occurs after project creation fully completes. 4. Make a FIFO (e.g. `mknod /tmp/wine_rpgmv_debug p`). 5. Edit the `projectFileUrl` registry key in `[Software\KADOKAWA\RPGMV]` and give it a blank string value. 6. Start the program with `WINEPREFIX=[PREFIX] WINEDEBUG=+seh,+relay wine 'C:\Program Files\KADOKAWA\RPGMV\RPGMV.exe' &>/tmp/wine_rpgmv_debug`. 7. Attach the read end of the FIFO to /dev/null (i.e. `cat /tmp/debug_log > /dev/null`). 8. Press "Continue" when you see the registration screen and wait for MV to start up. 9. Once it's up, open up the project open dialog to open your just-created project, but don't actually open it yet. 10. Stop sending the wine/MV output to /dev/null and instead redirect it to a file, ideally a file on a slow HDD with a lot of space as it will write several GB of text quickly. The point is just to slow the wine process down as much as possible. There are certainly more elegant ways of slowing Wine down than this if it's truly needed (patching Wine with some time-wasting junk code in the right place for example)—I'm mainly recording this process for the sake of having a record. 11. Actually open the project. 12. Once it's open, wait a bit, then stop sending the wine/MV output to your scratch file and instead send it back into /dev/null. 13. You should have a couple of minutes in which you can actually use MV almost-normally before the same type of crash occurs (the backtrace is identical etc.). It's pretty responsive with the output sent to /dev/null and everything seems to work properly during that time. The only thing that was a bit wonky is I found that if I tried to launch the project, nothing happened at first, but after the main editor crashed the game process would actually start up, perhaps just because of the extensive overhead introduced into the project start routines by all the logging. The game ran fine though after that point.
I wish I could say whether or not this is due to some periodic qt5webenginecore thread that's launched every so often by MV, such that the earlier crash shortly after opening a project is "dodged" by this procedure, or if it's the "same" crash that's merely delayed by the logging overhead.
I have yet to actually see the crash with +relay on, which is unfortunate. It may occur eventually, but if I'm actually redirecting the output to a file I run out of hard drive space before I see a crash. It's possible that the extreme slowness induced by +relay and output to a file on disk prevents the crash somehow, but also that it would still occur eventually if I waited long enough. The best logs I've gotten so far are with `WINEDEBUG=+seh,+tid,warn+all`, but although I can see the crash I have yet to make much heads or tails of them beyond that. You still end up with around 8G or so of log.
One idea I had was to try to cross-compile a debug build of the same version of Qt5 MV is using and drop in the relevant libraries from that, but (a) I'm not quite sure which Qt5 it's using yet and (b) cross-compiling Qt5 is its own wacky adventure, as I found out. Still, this strategy may yet yield fruit.
https://bugs.winehq.org/show_bug.cgi?id=52593
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|RPG Maker MV: Crash in |RPG Maker MV crashes inside |bundled qt5webenginecore on |qt5webenginecore when |project open |opening project URL| |https://dl.degica.com/rpgma | |kerweb/trial-download/RPGMV | |_161W_Setup.zip Keywords| |download
https://bugs.winehq.org/show_bug.cgi?id=52593
--- Comment #2 from Zoë Sparks zoe@milky.flowers --- I just tried this with a freshly-built vanilla wine-7.20-145-g9d1175a4649, a fresh 32-bit prefix, and a fresh installation of the RMMV demo. It still crashes when you try to start a new project or open an existing project. However, the stack trace looks a bit different; it still points to a location in qt5webenginecore, but not the same one as last time. Given that the behavior is identical it may be the same issue at heart, though (again I wish I could just snap my fingers and effortlessly drop in a debug Windows build of the right version of QT5 here). I've attached the crash report for reference (backtrace_rpgmakermv_qt5webenginecore_11-7-22.txt).
https://bugs.winehq.org/show_bug.cgi?id=52593
--- Comment #3 from Zoë Sparks zoe@milky.flowers --- Created attachment 73428 --> https://bugs.winehq.org/attachment.cgi?id=73428 Crash report with wine-7.20-145-g9d1175a4649
https://bugs.winehq.org/show_bug.cgi?id=52593
Neko-san nekoNexus@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nekoNexus@protonmail.ch