https://bugs.winehq.org/show_bug.cgi?id=40744
Bug ID: 40744 Summary: NtLockFile I/O completion on lock breaks Strawberry Perl CPAN Product: Wine Version: 1.9.11 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: alexchandel@gmail.com Distribution: ---
Strawberry perl (5.24.0.1, 32bit) cannot install any CPAN packages because of the "fixme:ntdll:NtLockFile I/O completion on lock not implemented yet" issue.
For example, running cpan and then typing `install Log::Log4perl` in the CPAN shell results in the following message being repeated ad infinitum:
``` Fetching with LWP: http://cpan.strawberryperl.com/authors/01mailrc.txt.gz fixme:msvcrt:MSVCRT__wsopen_s : pmode 0x01b6 ignored fixme:msvcrt:MSVCRT__wsopen_s : pmode 0x01b6 ignored Waiting for a read lock on 'L:\opt\strawberry-perl-5.24.0.1-32bit-portable\cpan\FTPstats.yml' (since Tue Jun 7 12:30:45 2016) Waiting for a read lock on 'L:\opt\strawberry-perl-5.24.0.1-32bit-portable\cpan\FTPstats.yml' (since Tue Jun 7 12:30:45 2016) Waiting for a read lock on 'L:\opt\strawberry-perl-5.24.0.1-32bit-portable\cpan\FTPstats.yml' (since Tue Jun 7 12:30:45 2016) ... ... ```
CPAN never comes back, and cannot install any packages.
https://bugs.winehq.org/show_bug.cgi?id=40744
alexchandel@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|1.9.11 |unspecified
https://bugs.winehq.org/show_bug.cgi?id=40744
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |1.9.11
https://bugs.winehq.org/show_bug.cgi?id=40744
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #1 from super_man@post.com --- Do you have a download link? It's very unlikely that the message is the quilty one since I have often seen it and it has never caused issues.
https://bugs.winehq.org/show_bug.cgi?id=40744
fjfrackiewicz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fjfrackiewicz@gmail.com
--- Comment #2 from fjfrackiewicz@gmail.com --- (In reply to super_man from comment #1)
Do you have a download link? It's very unlikely that the message is the quilty one since I have often seen it and it has never caused issues.
Looks like all the Windows installers for this can be found here:
http://strawberryperl.com/releases.html
https://bugs.winehq.org/show_bug.cgi?id=40744
--- Comment #3 from alexchandel@gmail.com --- (In reply to super_man from comment #1)
Do you have a download link? Maybe, but Most Likely Not. It's very unlikely that the message is the quilty one since I have often seen it and it has never caused issues.
I doubt it's a quilty one, since the program outputs an infinite number of "Waiting for a read lock on ..." lines after the "fixme:ntdll:NtLockFile I/O completion on lock not implemented yet" line.
This would seem to suggest it's waiting for its I/O completion callback to proceed.
https://bugs.winehq.org/show_bug.cgi?id=40744
--- Comment #4 from alexchandel@gmail.com --- This appears to cause #40827 as well
https://bugs.winehq.org/show_bug.cgi?id=40744
--- Comment #5 from alexchandel@gmail.com --- Confirmed this same problem with ActiveState Perl's distribution too. CPAN is essential for perl, so this means that perl is effectively unusable in wine until I/O completion is implemented for locks.
https://bugs.winehq.org/show_bug.cgi?id=40744
alst5940@colorado.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alst5940@colorado.edu
https://bugs.winehq.org/show_bug.cgi?id=40744
--- Comment #6 from alst5940@colorado.edu --- Also likely the cause of 41626
https://bugs.winehq.org/show_bug.cgi?id=40744
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetest@luukku.com
--- Comment #7 from winetest@luukku.com --- Installed 32bit MSI installer version with no issues.
What I supposed to do next?
https://bugs.winehq.org/show_bug.cgi?id=40744
Aaron Franke arnfranke@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |arnfranke@yahoo.com
--- Comment #8 from Aaron Franke arnfranke@yahoo.com --- Steam Big Picture mode also requires ntdll NtLockFile I/O completion on lock
From Steam Big Picture STDERR Log: fixme:ntdll:NtLockFile I/O completion on
lock not implemented yet
Full log: https://pastebin.com/ayhgum69
Confirmed for Wine 2.22.
https://bugs.winehq.org/show_bug.cgi?id=40744
--- Comment #9 from Aaron Franke arnfranke@yahoo.com --- Related: https://bugs.winehq.org/show_bug.cgi?id=40827
https://bugs.winehq.org/show_bug.cgi?id=40744
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #10 from Zebediah Figura z.figura12@gmail.com --- I can't reproduce this:
--- zeb@terabithia:~/Downloads/strawberry-perl/perl/bin$ wine cmd /c cpan.bat Loading internal null logger. Install Log::Log4perl for logging messages 0025:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
cpan shell -- CPAN exploration and modules installation (v2.11) Enter 'h' for help.
cpan> install Log::Log4perl Fetching with LWP: http://cpan.strawberryperl.com/authors/01mailrc.txt.gz Fetching with LWP: http://cpan.strawberryperl.com/modules/02packages.details.txt.gz Fetching with LWP: http://cpan.strawberryperl.com/modules/03modlist.data.gz Creating database file ... 0027:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet Done! ---
It gets farther before breaking (due to some paths problem), but I don't see any errors along the lines of those originally reported.
https://bugs.winehq.org/show_bug.cgi?id=40744
Richard Hughes richard@hughsie.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |richard@hughsie.com
--- Comment #11 from Richard Hughes richard@hughsie.com --- Just as another report, if you use GRWLockfrom GLib and then compile your project with mingw, then try to result in wine it deadlocks when you try to take, release and take the lock:
(fu-self-test.exe:8): FuHistory-DEBUG: 10:29:13.015: trying to open database '/tmp/fwupd-self-test/var/lib/fwupd/pending.db' 0009:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet 0009:err:sync:fast_release_srw_shared Lock 0x11f82f0 is owned exclusive! (0x80000000)
<deadlock>
I'd be happy to create a small reproducer if that helps.
https://bugs.winehq.org/show_bug.cgi?id=40744
--- Comment #12 from Zebediah Figura z.figura12@gmail.com --- (In reply to Richard Hughes from comment #11)
Just as another report, if you use GRWLockfrom GLib and then compile your project with mingw, then try to result in wine it deadlocks when you try to take, release and take the lock:
(fu-self-test.exe:8): FuHistory-DEBUG: 10:29:13.015: trying to open database '/tmp/fwupd-self-test/var/lib/fwupd/pending.db' 0009:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet 0009:err:sync:fast_release_srw_shared Lock 0x11f82f0 is owned exclusive! (0x80000000)
<deadlock>
I'd be happy to create a small reproducer if that helps.
That would be appreciated, thanks.
https://bugs.winehq.org/show_bug.cgi?id=40744
--- Comment #13 from Richard Hughes richard@hughsie.com ---
I'd be happy to create a small reproducer if that helps.
That would be appreciated, thanks.
So, I did that, and it failed to reproduce the "bug" in wine. I spent about 2 hours looking at the debugging until I realized I was calling g_rw_lock_writer_lock() and then g_rw_lock_reader_unlock() -- which is something that seems to work "by accident" in glibc -- but not in Windows. After applying https://github.com/fwupd/fwupd/commit/0fe4914320e1c8f148860be784b67c746ee45d... it seems to work without either error message in wine. My apologies!
If you still want a reproducer (using w_lock, r_unlock) yell, although it's of course not wine's fault that I'm less than awesome at reviewing patches :)
https://bugs.winehq.org/show_bug.cgi?id=40744
--- Comment #14 from Richard Hughes richard@hughsie.com --- Created attachment 65825 --> https://bugs.winehq.org/attachment.cgi?id=65825 trivial reproducer
I'd be happy to create a small reproducer if that helps.
I stumbled on this again this morning. I've attached a trivial reproducer that triggers the lock message when using the most simple of sqlite code.
https://bugs.winehq.org/show_bug.cgi?id=40744
--- Comment #15 from Zebediah Figura z.figura12@gmail.com --- I can't get that sample to hang; it always exits cleanly. If it hangs for you, can you please try attaching a log with WINEDEBUG=+sync,+server,+timestamp?