https://bugs.winehq.org/show_bug.cgi?id=50557
Bug ID: 50557 Summary: USVFS (Mod Organizer 2) no longer working Product: Wine Version: 6.0 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: kernel32 Assignee: wine-bugs@winehq.org Reporter: joe@warhaggis.com Distribution: ---
USVFS is a component of Mod Organizer 2. It uses an OverlayFS-style method to overlay mods on to (primarily Bethesda) games at runtime.
The patch in #47832 (upstreamed in 4.21) fixed this until at *least* 5.13 when dlls/kernel32/file.c was largely migrated to dlls/kernelbase/file.c. In every Wine version after 5.0 USFVS fails to run.
My attached logs are from USVFS's own debug log. The log suffixed wine-5.0 shows the functionality working as expected (if you search it for 'freeside' you will find a mod correctly overlayed). The log suffixed wine-6.0 for comparison shows the function not working.
----
I attempted to replace the applicable section in dlls/kernelbase/file.c to replicate the changes made to kernel32 in 4.21 but had no success, however I believe the problem is here somewhere.
https://bugs.winehq.org/show_bug.cgi?id=50557
--- Comment #1 from Joe Davison joe@warhaggis.com --- Created attachment 69234 --> https://bugs.winehq.org/attachment.cgi?id=69234 USVFS in Wine 6.0 failing to work correctly
https://bugs.winehq.org/show_bug.cgi?id=50557
--- Comment #2 from Joe Davison joe@warhaggis.com --- Created attachment 69235 --> https://bugs.winehq.org/attachment.cgi?id=69235 USVFS in Wine 6.0 working as expected
https://bugs.winehq.org/show_bug.cgi?id=50557
Joe Davison joe@warhaggis.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |joe@warhaggis.com
https://bugs.winehq.org/show_bug.cgi?id=50557
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
--- Comment #3 from Austin English austinenglish@gmail.com --- Please run a regression test: https://wiki.winehq.org/Regression_Testing
https://bugs.winehq.org/show_bug.cgi?id=50557
Joe Davison joe@warhaggis.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #69235|USVFS in Wine 6.0 working |USVFS in Wine 5.0 working description|as expected |as expected
https://bugs.winehq.org/show_bug.cgi?id=50557
--- Comment #4 from Joe Davison joe@warhaggis.com --- My regression testing has identified 6b498d98a86b5179a025afbaaeaa3d60a8bd74ec as the first bad commit.
https://bugs.winehq.org/show_bug.cgi?id=50557
Joe Davison joe@warhaggis.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |6b498d98a86b5179a025afbaaea | |a3d60a8bd74ec
https://bugs.winehq.org/show_bug.cgi?id=50557
--- Comment #5 from Joe Davison joe@warhaggis.com --- If it helps at all, the change from the identified commit is now located in dlls/ntdll/unix/file.c at lines 1514 to 1526 and 1501.
https://bugs.winehq.org/show_bug.cgi?id=50557
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|kernel32 |-unknown CC| |z.figura12@gmail.com
--- Comment #6 from Zebediah Figura z.figura12@gmail.com --- My guess is that /mnt/ is a host mount point. 6b498d98a8 causes us to report mount points as mounted folders. My further guess is that the application is using GetVolumePathName() on some path in /mnt/, or is for some reason trying to check the file attributes of Z:\mnt, and is choking on the return of "Z:\mnt" or FILE_ATTRIBUTE_REPARSE_POINT respectively. My yet further guess is that if run on Windows in a mounted folder, it fails the same way. In that case I think the bug is probably WONTFIX, but could be worked around by manually assigning a drive letter to Z:\mnt. [We should probably do this automatically.]
Annoyingly this is difficult to confirm with logs, since there's basically no traces in the relevant functions. Is the program freely downloadable?
https://bugs.winehq.org/show_bug.cgi?id=50557
--- Comment #7 from Joe Davison joe@warhaggis.com --- The program is freely available however I'm not sure how useful testing it would be without the actual game.
I am working on this with a more knowledgeable buddy and we have identified the specific line *attr |= FILE_ATTRIBUTE_REPARSE_POINT; as causing the issue. Building with this commented out has USVFS working just fine.
We have implemented a WARN around this and yeah you seem to be on the money... I have attached the full log with this warning (grep for 'mountpoint').
https://bugs.winehq.org/show_bug.cgi?id=50557
--- Comment #8 from Joe Davison joe@warhaggis.com --- Created attachment 69241 --> https://bugs.winehq.org/attachment.cgi?id=69241 Custom warning attached around get_file_info path
https://bugs.winehq.org/show_bug.cgi?id=50557
--- Comment #9 from Zebediah Figura z.figura12@gmail.com --- Apparently most of the source of Mod Organizer 2 is available on GitHub. I couldn't find any mention of reparse points or GetVolumePathName() in the code, though. It could be that my guess was wrong, though it could also be that the game itself doesn't like being run from a mounted folder.
What exactly fails? "USVFS no longer working" is not very specific (not to mention that the problem may very well have nothing to do with USVFS...)
https://bugs.winehq.org/show_bug.cgi?id=50557
Joe Davison joe@warhaggis.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |NOTOURBUG Status|UNCONFIRMED |RESOLVED
--- Comment #10 from Joe Davison joe@warhaggis.com --- Seems to have been a bug in USVFS! Buddy I worked with (remoting into my Windows laptop, lacking his own Windows install) was able to patch USVFS to work around the changes made since the identified commit. This has been submitted upstream at https://github.com/ModOrganizer2/usvfs/pull/47
Closing as not our bug :)
https://bugs.winehq.org/show_bug.cgi?id=50557
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|NOTOURBUG |INVALID
https://bugs.winehq.org/show_bug.cgi?id=50557
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #11 from Anastasius Focht focht@gmx.net --- Hello folks,
an advice for the future: please always specify the exact version of the application when reporting a bug. In this case it's even more important because the MO2 developers are sometimes working around Wine insufficiencies/bugs hence each release can exhibit different problems or "magically" make Wine bugs disappear.
Without exact version information it becomes much harder to (retroactively) research a "testcase" for reproduce - even if the sources of the app are present. You can prevent yourself from being the one who wastes other people's time in the future. Just provide the basic information in first place. Thanks.
https://github.com/ModOrganizer2/modorganizer/releases
Regards
https://bugs.winehq.org/show_bug.cgi?id=50557
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Austin English austinenglish@gmail.com --- Closing.
https://bugs.winehq.org/show_bug.cgi?id=50557
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |RESOLVED
--- Comment #13 from Austin English austinenglish@gmail.com --- Closing.
https://bugs.winehq.org/show_bug.cgi?id=50557
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #14 from Gijs Vermeulen gijsvrm@gmail.com --- Closing INVALID.