https://bugs.winehq.org/show_bug.cgi?id=49679
Bug ID: 49679 Summary: Regression: deadlock in installer for VB6 enterprise edition Product: Wine Version: 5.14 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: comsvcs Assignee: wine-bugs@winehq.org Reporter: damjan.jov@gmail.com Distribution: ---
0368:err:ntdll:RtlpWaitForCriticalSection section 7BCC116C "loader.c: loader_section" wait timed out in thread 0368, blocked by 00c4, retrying (60 sec)
Bisected to this commit:
ac1bb4536473eb705d5fa828406fa4eb473b9f41 is the first bad commit commit ac1bb4536473eb705d5fa828406fa4eb473b9f41 Author: Zebediah Figura z.figura12@gmail.com Date: Thu Feb 7 12:21:34 2019 -0600
comsvcs: Create an implicit MTA thread in RegisterDispenser().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46581 Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
:040000 040000 5e4bf1bf4c22a70a87f14cc837b82c61e9d15c8e b40e6808759cf31e7e44519110c6ed0222793ef6 M dlls
Reverse-applying that commit's changes to master fixes the problem.
https://bugs.winehq.org/show_bug.cgi?id=49679
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |ac1bb4536473eb705d5fa828406 | |fa4eb473b9f41 Keywords| |regression CC| |z.figura12@gmail.com
--- Comment #1 from Damjan Jovanovic damjan.jov@gmail.com --- Adding regression SHA1. CC author.
https://bugs.winehq.org/show_bug.cgi?id=49679
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com --- One way to achieve presumably equivalent behaviour is with CoIncrementMTAUsage()/CoDecrementMTAUsage(). If that works it could be done for every returned IHolder not just once per dispenser.
https://bugs.winehq.org/show_bug.cgi?id=49679
--- Comment #3 from Zebediah Figura z.figura12@gmail.com --- (In reply to Nikolay Sivov from comment #2)
One way to achieve presumably equivalent behaviour is with CoIncrementMTAUsage()/CoDecrementMTAUsage(). If that works it could be done for every returned IHolder not just once per dispenser.
The documentation for CoIncrementMTAUsage() states that it can't be called from within DllMain, and will add the current thread to the MTA if not initialized. Unless both statements are incorrect, that won't work.
https://bugs.winehq.org/show_bug.cgi?id=49679
--- Comment #4 from Nikolay Sivov bunglehead@gmail.com --- We have tests that calling thread will return implicit MTA (APTTYPEQUALIFIER_IMPLICIT_MTA) after CoIncrementMTAUsage() is called, so it's not an equivalent of initializing MTA on it. Regarding DllMain, I don't know about Windows, but I don't see why it wouldn't work with our implementation.
Just pointing this out as an option, no strong opinion or test results from me.
https://bugs.winehq.org/show_bug.cgi?id=49679
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Regression: deadlock in |Virtual Basic 6 Enterprise |installer for VB6 |Edition installer hangs |enterprise edition |
https://bugs.winehq.org/show_bug.cgi?id=49679
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Virtual Basic 6 Enterprise |Visual Basic 6 Enterprise |Edition installer hangs |Edition installer hangs
https://bugs.winehq.org/show_bug.cgi?id=49679
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Visual Basic 6 Enterprise |Visual Studio 98 and Visual |Edition installer hangs |Basic 6 installers hang
--- Comment #5 from Damjan Jovanovic damjan.jov@gmail.com --- Visual Studio 98 also suffers from this bug.
https://bugs.winehq.org/show_bug.cgi?id=49679
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com --- Created attachment 68456 --> https://bugs.winehq.org/attachment.cgi?id=68456 patch
Please test to see if this one helps.
https://bugs.winehq.org/show_bug.cgi?id=49679
--- Comment #7 from Damjan Jovanovic damjan.jov@gmail.com --- (In reply to Nikolay Sivov from comment #6)
Created attachment 68456 [details] patch
Please test to see if this one helps.
VB6 installer unpatched - deadlock patched - working :)
Visual Studio 98 installer unpatched - deadlock patched - working :)
And you made the patch in less than an hour since my previous post. Nikolay you're a star.
https://bugs.winehq.org/show_bug.cgi?id=49679
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |c9cc098ccd7f0cdb82b8e52d00c | |415042c5ff717
--- Comment #8 from Nikolay Sivov bunglehead@gmail.com --- Marking fixed, c9cc098ccd7f0cdb82b8e52d00c415042c5ff717.
https://bugs.winehq.org/show_bug.cgi?id=49679
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.20.