https://bugs.winehq.org/show_bug.cgi?id=47955
Bug ID: 47955 Summary: Vminteq defaults app fails to start Product: Wine-staging Version: 4.17 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: divestoclimb@gmail.com CC: leslie_alistair@hotmail.com, z.figura12@gmail.com Distribution: Ubuntu
Created attachment 65461 --> https://bugs.winehq.org/attachment.cgi?id=65461 wine trace when running Vmindefault.exe (first 5000 lines)
The chemical equilibrium software Visual MINTEQ (also called VMINTEQ) installs and runs in Wine with dotnet45, but one component does not work: the "Various default settings" window, which is part of a separate .exe. It did not work in Wine 4.0.2 either, but in that version the error was different.
To reproduce: - create a clean 32-bit WINEPREFIX with winecfg - run winetricks dotnet45 - download Visual MINTEQ 3.1 (it's freeware) from https://vminteq.lwr.kth.se. Run the unzipped setup.exe file in wine, and accept the defaults for installation. - option one: launch Visual MINTEQ (Program Files/Vminteq31/Vminteq17.exe), open the Parameters menu, and select "Various default settings." This attempts to launch Vmindefault.exe which fails to start, leading Visual MINTEQ to crash ostensibly because a settings file was not created. - option two: directly launch Program Files/Vminteq31/Vmindefault.exe.
The only error message given without setting WINEDEBUG is "0009:err:seh:setup_exception_record stack overflow 1072 bytes in thread 0009 eip f7c19df3 esp 00230f00 stack 0x230000-0x231000-0x330000" I have attached a logfile generated with WINEDEBUG=trace+all
https://bugs.winehq.org/show_bug.cgi?id=47955
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://vminteq.lwr.kth.se/ | |download/ Keywords| |download
--- Comment #1 from Zebediah Figura z.figura12@gmail.com --- I don't get the reported behaviour, either with upstream Wine or with Wine-Staging. The program displays an error message but otherwise works fine with wine-mono, and fails to function at all with dotnet45 (claiming that .NET is not active). In no case do I see a stack overflow.
WINEDEBUG=trace+all is also not generally useful; better to attach default output without any channels set. Where did you get the recommendation to do that?
https://bugs.winehq.org/show_bug.cgi?id=47955
--- Comment #2 from Ben R divestoclimb@gmail.com --- Created attachment 65467 --> https://bugs.winehq.org/attachment.cgi?id=65467 Default output
https://bugs.winehq.org/show_bug.cgi?id=47955
--- Comment #3 from Zebediah Figura z.figura12@gmail.com --- Okay, so nothing obvious that would cause a difference. Can you please try with upstream Wine, and also with wine-mono?
https://bugs.winehq.org/show_bug.cgi?id=47955
--- Comment #4 from Ben R divestoclimb@gmail.com --- I figured out the crash, it was due to me using an old version of winetricks (Ubuntu supplied 0.0+20180217-1) to install dotnet45. With the latest winetricks I get the same result as you.
When running with wine-mono, I don't have either Vminteq17 or Vmindefault functional. Vmindefault appears to be okay except when hitting "Save and Quit" it produces another error, and I don't think any of the settings get saved (I wish I knew what file they were supposed to be kept in; I think it's supposed to have a .dat extension in Documents/Vminteq31). Vminteq17 produces an error message and fails to populate a lot of the form (dropdowns for instance), making it unusable. This is probably related to its inability to find the file "Documents/Vminteq31/userfolder.txt" that tells it where to find all the databases and other customizable files.
In dotnet45, the rest of the app appears to function adequately with the exception of this one defaults part.
Sorry about the confusion. Is this report still proper?
https://bugs.winehq.org/show_bug.cgi?id=47955
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |-unknown Product|Wine-staging |Wine CC|leslie_alistair@hotmail.com |
--- Comment #5 from Zebediah Figura z.figura12@gmail.com --- (In reply to Ben R from comment #4)
Sorry about the confusion. Is this report still proper?
It can be recycled.
I'd prefer to make it about wine-mono, since that's easier to debug.
https://bugs.winehq.org/show_bug.cgi?id=47955
--- Comment #6 from Zebediah Figura z.figura12@gmail.com --- Though admittedly this is confusing. The application tries to open userfolder.txt with two different paths:
IL_004b: callvirt instance string class [Microsoft.VisualBasic]Microsoft.VisualBasic.MyServices.SpecialDirectoriesProxy::get_MyDocuments() IL_0050: ldstr "\Vminteq31" IL_0055: call string string::Concat(string, string) IL_005a: stsfld string Vmindefault.modGlodek::Usfoldir IL_005f: nop IL_0060: nop IL_0061: ldc.i4.1 IL_0062: ldsfld string Vmindefault.modGlodek::Usfoldir IL_0067: ldstr "\userfolder.txt" IL_006c: call string string::Concat(string, string)
which yields C:\users<username>\My Documents\Vminteq31\userfolder.txt, and
IL_073d: call string class [mscorlib]System.Environment::get_UserName() IL_0742: stloc.s 4 IL_0744: ldsfld string Vmindefault.modGlodek::Progdir IL_0749: ldstr "\" IL_074e: ldloc.s 4 IL_0750: call string string::Concat(string, string, string) IL_0755: stsfld string Vmindefault.modGlodek::Usfoldir IL_075a: br IL_0060
which yields C:\Program Files\Vminteq31<username>\userfolder.txt.
Neither of which are the actual location, C:\Program Files\Vminteq31\userfolder.txt. But I'm not seeing a lot of room for error here...
https://bugs.winehq.org/show_bug.cgi?id=47955
--- Comment #7 from Zebediah Figura z.figura12@gmail.com --- ...In fact it behaves the same way on Windows. Nice.
I suspect that Vminteq17.exe is supposed to be run first, because on Windows that prompts me to choose a location for user-editable files, and the options are those that Vmindefault.exe tries.
Anyway, Vminteq17.exe fails because Microsoft.VisualBasic.Interpreter.CreateObject() is unimplemented. There's a pull request in mono-basic over a year old that seems to have never received any review: https://github.com/mono/mono-basic/pull/48
https://bugs.winehq.org/show_bug.cgi?id=47955
--- Comment #8 from Ben R divestoclimb@gmail.com --- I don't think Vmindefault is intended to be run standalone, it's usually launched from Vminteq17. Once Vminteq17 has run it will copy a bunch of files into the chosen user folder location. So Vmindefault can be tested in isolation, but you'd need the user folder to be created and populated first, which I have in my environment since I was able to get that part working with dotnet45.
What's odd is that when I run Vmindefault I get a System.IO.DirectoryNotFoundException: Could not find a part of the path "Z:\home\benr\benr\userfolder.txt". My $HOME is /home/benr so I don't know where the extra "benr" is coming from. I got curious to see what would happen if I made that path valid with a symlink, and I instead got System.ArgumentException: Illegal characters in path.
That pull request looks promising. I'll try building a patched Mono and see what happens.
https://bugs.winehq.org/show_bug.cgi?id=47955
--- Comment #9 from Ben R divestoclimb@gmail.com --- I incorporated nsivov's patch to Interaction.CreateObject and built wine-mono from the master branch. Attached is the trace for the new NotImplementedException I got when running Vminteq17.exe.
https://bugs.winehq.org/show_bug.cgi?id=47955
--- Comment #10 from Ben R divestoclimb@gmail.com --- Created attachment 65501 --> https://bugs.winehq.org/attachment.cgi?id=65501 NotImplementedException from nsivov's patched wine-mono
https://bugs.winehq.org/show_bug.cgi?id=47955
--- Comment #11 from Zebediah Figura z.figura12@gmail.com --- That looks the same as the crash I got before, though I could be wrong. Adding something like "WINE_MONO_TRACE=+E:System.NotImplementedException" would help determine that for sure.