[Bug 55908] New: Regression beginning with 8.17: PNGGauntlet gives an error message and hangs if output folder doesn't exist
https://bugs.winehq.org/show_bug.cgi?id=55908 Bug ID: 55908 Summary: Regression beginning with 8.17: PNGGauntlet gives an error message and hangs if output folder doesn't exist Product: Wine Version: 8.17 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: -unknown Assignee: wine-bugs(a)winehq.org Reporter: NM64+bugs.winehq.org(a)PM.me Distribution: --- Created attachment 75452 --> https://bugs.winehq.org/attachment.cgi?id=75452 wine-devel 8.16 Beginning with wine-devel 8.17, PNGGauntlet no longer properly handles if the output folder doesn't already exists. In wine-devel 8.16 it would ask that the location doesn't exist and if it should be created, and it'd "just work" without issue. In wine-devel 8.17 and newer (including the newest 8.20), you get some sort of error message instead and the program can end up hanging. Attached are two demonstration videos, one using wine-devel 8.16 and the other 8.17, showing the entire process from scratch on a live ISO session of Linux Mint 21.2 Cinnamon. I've also attached the terminal output as well as the information that the error message returns. (oh and, is it just me, or is the "Compiling Wine" steps of https://wiki.winehq.org/Regression_Testing completely out of date, at least when testing in live ISO sessions of modern Debian-based distros like not only the aforementioned Linux Mint 21.2 Cinnamon but also LMDE 6 and Xubuntu 23.10) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #1 from NM64+bugs.winehq.org(a)PM.me --- Created attachment 75453 --> https://bugs.winehq.org/attachment.cgi?id=75453 wine-devel 8.17 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #2 from NM64+bugs.winehq.org(a)PM.me --- Created attachment 75454 --> https://bugs.winehq.org/attachment.cgi?id=75454 output from terminal -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #3 from NM64+bugs.winehq.org(a)PM.me --- Created attachment 75455 --> https://bugs.winehq.org/attachment.cgi?id=75455 error output within PNGGauntlet itself -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #4 from NM64+bugs.winehq.org(a)PM.me --- To be clear, only the "wine-devel 8.16" file is with 8.16; all other files including the error output and the terminal output are with wine-devel 8.17. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 NM64+bugs.winehq.org(a)PM.me changed: What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Ubuntu -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Severity|major |normal -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #5 from NM64+bugs.winehq.org(a)PM.me --- Oh an, despite the videos being recorded on Mint, I tagged the OS as "Ubuntu" because the exact same issue occurs on Xubuntu 23.04, and since Mint 21.2 is derived from Ubuntu and isn't the actual latest release which is LMDE 6, I figured "Ubuntu" was a better choice anyway. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Fabian Maurer <dark.shadow4(a)web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download CC| |dark.shadow4(a)web.de URL| |https://pnggauntlet.com/PNG | |Gauntlet-3.1.2.exe --- Comment #6 from Fabian Maurer <dark.shadow4(a)web.de> --- I only encounter bug 55913, where you can't create the output folder a second time. Sorry, cannot reproduce. There seems to be going something wrong with the taskdialog, but it works for me. Can you do a regression test? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #7 from NM64+bugs.winehq.org(a)PM.me --- (In reply to Fabian Maurer from comment #6)
Sorry, cannot reproduce. There seems to be going something wrong with the taskdialog, but it works for me.
Really? Even when doing the exact thing I show in my demonstration video? I used a live ISO session specifically for easy reproducing, but you're saying doing that exact thing doesn't cause the problem to occur on your end?
Can you do a regression test?
I cannot. As mentioned in my first comment, the steps for compiling seem to be outdated using the "debian-based" example on the "Regression_Testing" wiki page, and I have basically no software-dev skills to know my way around otherwise (no, I'm not just being humble). -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #8 from Fabian Maurer <dark.shadow4(a)web.de> --- I only tested on my machine (Arch Linux). I can try the VM approach, although I'm not exactly sure what would be different. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #9 from NM64+bugs.winehq.org(a)PM.me --- (In reply to Fabian Maurer from comment #8)
I only tested on my machine (Arch Linux). I can try the VM approach, although I'm not exactly sure what would be different.
Even though I used a VM for the video recording, it occurred on real hardware as well. I'd think it's more of an Arch vs Debian thing? I mean, there's another PNGGauntlet bug reported on Fedora that I have never ran into over on Linux Mint despite having regularly used PNGGauntlet for quite a while now (over a year on Linux Mint, upwards of a decade on Windows): https://bugs.winehq.org/show_bug.cgi?id=54409 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Fabian Maurer <dark.shadow4(a)web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #10 from Fabian Maurer <dark.shadow4(a)web.de> --- I figured it out, it only affects 64bit WINEPREFIXES. Bisected to commit a81c53504ae32715e6e91bd020fdebd5bef20d48 Author: Alexandre Julliard <julliard(a)winehq.org> Date: Thu Sep 28 16:30:32 2023 +0200 ntdll: Release the low address space reservation for 64-bit apps. Removing the lines
else free_reserved_memory( 0, (char *)0x7ffe0000 );
makes it work again. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #11 from Fabian Maurer <dark.shadow4(a)web.de> --- I checked the code from Microsoft.WindowsAPICodePack.dll, and its TaskDialog implementation takes the pointer and casts it to an int... This obviously breaks with 64bit pointers. Before the blamed commit the address is in the 32bit address range, so this works. Afterwards it's bigger (e.g. 00007FFFFF16DD40), so the code breaks. Not sure what we can do here, if anything. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Fabian Maurer <dark.shadow4(a)web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Regression beginning with |PNGGauntlet expects |8.17: PNGGauntlet gives an |LocalAlloc addresses to fit |error message and hangs if |into 32bit int, breaks on |output folder doesn't exist |64bit due to recent memory | |changes -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #12 from Nikolay Sivov <bunglehead(a)gmail.com> --- Where is the code for this module? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #13 from Fabian Maurer <dark.shadow4(a)web.de> --- (In reply to Nikolay Sivov from comment #12)
Where is the code for this module?
You can find the code at https://github.com/Wagnerp/Windows-API-CodePack-NET/blob/main/Source/Origina... Inside source/WindowsAPICodePack/Core/Interop/TaskDialogs/NativeTaskDialog.cs:
private static IntPtr AllocateAndMarshalButtons(TaskDialogNativeMethods.TaskDialogButton[] structs) { IntPtr initialPtr = Marshal.AllocHGlobal( Marshal.SizeOf(typeof(TaskDialogNativeMethods.TaskDialogButton)) * structs.Length);
IntPtr currentPtr = initialPtr; foreach (TaskDialogNativeMethods.TaskDialogButton button in structs) { Marshal.StructureToPtr(button, currentPtr, false); currentPtr = (IntPtr)((int)currentPtr + Marshal.SizeOf(button)); }
return initialPtr; }
-- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #14 from Nikolay Sivov <bunglehead(a)gmail.com> --- Ok, thanks. So the question is now if it's a bug in this managed wrapper, or if LocalAlloc(FIXED) is supposed to enforce 32-bit address on 64-bit. That's something to try on Windows. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #15 from Fabian Maurer <dark.shadow4(a)web.de> --- Created attachment 75472 --> https://bugs.winehq.org/attachment.cgi?id=75472 Basic test program On my Win7 VM this returns an "error" at i = 3380, on Win10 it immediately fails at i = 0. For some reason PngGauntlet still works on Win10 though, not sure why that is. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Bernhard Übelacker <bernhardu(a)mailbox.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bernhardu(a)mailbox.org --- Comment #16 from Bernhard Übelacker <bernhardu(a)mailbox.org> --- Could the address possibly originate from the stack instead of the heap? At least I tried to have a deeper look in #55761, which bisected to the same commit a81c53504a, and there it looks like it is caused by the upper 32bit of a $rsp register. Following test should show the stack addresses, and they seem to stay below the 32bit limit at windows: https://testbot.winehq.org/JobDetails.pl?Key=140078&f201=exe64.report#k201 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #17 from Fabian Maurer <dark.shadow4(a)web.de> --- (In reply to Bernhard Übelacker from comment #16)
Could the address possibly originate from the stack instead of the heap?
I'm pretty sure not. See https://github.com/madewokherd/mono/blob/ef5231338e2a6a038e56df722c6349f64f2... and https://github.com/madewokherd/mono/blob/2542811634f28523dac3b35d59a71befcb8... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #18 from Bernhard Übelacker <bernhardu(a)mailbox.org> --- (In reply to Fabian Maurer from comment #17)
I'm pretty sure not. See
You are right. And I was searching a little further in #55761. And found something silmilar, a clearing of the lower half what later becomes a size given to malloc. Seems the upper half might be usually zero on windows. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Fabian Maurer <dark.shadow4(a)web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |DUPLICATE Status|NEW |RESOLVED --- Comment #19 from Fabian Maurer <dark.shadow4(a)web.de> --- Marking as dupe of 55833 to collect similar issues. *** This bug has been marked as a duplicate of bug 55833 *** -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #20 from Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> --- Closing duplicate. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #21 from NM64+bugs.winehq.org(a)PM.me --- (In reply to Fabian Maurer from comment #6)
Can you do a regression test?
The following is why I cannot: https://bugs.winehq.org/show_bug.cgi?id=55958 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 --- Comment #22 from Bernhard Übelacker <bernhardu(a)mailbox.org> --- (In reply to NM64+bugs.winehq.org from comment #21)
(In reply to Fabian Maurer from comment #6)
Can you do a regression test?
I guess Fabian could already do this regression test, because he wrote in comment #10:
I figured it out, it only affects 64bit WINEPREFIXES. Bisected to commit a81c53504ae32715e6e91bd020fdebd5bef20d48
-- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Fabian Maurer <dark.shadow4(a)web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|DUPLICATE |FIXED Fixed by SHA1| |f03c3a167c2e4abe92b1e1bf2ea | |5f7c31a07fc3b --- Comment #23 from Fabian Maurer <dark.shadow4(a)web.de> --- Also fixed by https://source.winehq.org/git/wine.git/commitdiff/f03c3a167c2e4abe92b1e1bf2e... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |RESOLVED -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=55908 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #24 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 9.0-rc2. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla