http://bugs.winehq.org/show_bug.cgi?id=21410
Summary: Visual C++ 2005 Trial hangs sometimes in middle of large builds? Product: Wine Version: 1.1.36 Platform: x86 OS/Version: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
While building chromium's base_unittests, visual C++ 2005's devenv.exe sometimes just gets stuck. Rerunning the build lets it pick up from where it left off. To repeat:
First, set up the environment as follows:
$ svn checkout http://winezeug.googlecode.com/svn/trunk/ winezeug $ cd winezeug/testsuites/chromium $ more build.sh ... apply the two patches mentioned near the top, for bug 21382 and bug 21322 $ sh build.sh ... click through the winetricks install of various things, and (ulp) enter your password when prompted to mount and unmount the vc2005trial iso. (Did I mention you should read the script, and winetricks, first?)
That takes about two or three hours with a fast connection, less if you've already got a full winetrickscache.
Then, to build base_unittests.exe, try: $ sh build.sh base
(You may need to comment out a compile-time assert in c:/chromium/src/base/win_util.cc; that assert checks that you have vc 2005 sp1 installed, which we can't yet because of bug 19502.)
The script will exit once the build completes, but sometimes it hangs. Rerunning build.sh base should continue the build where it left off.
To monitor build progress, do du ~/.wine-chromium-tests/drive_c/chromium/src/Debug When the build is complete, that will show 156440 MB (153MiB). If the build hangs, it'll be a lot smaller.
The build takes about 12 minutes on my Q9300. devenv takes about ten seconds before it spawns the first cl.exe.
http://bugs.winehq.org/show_bug.cgi?id=21410
--- Comment #1 from Dan Kegel dank@kegel.com 2010-01-18 11:02:54 --- I should have mentioned: it's convenient to do ln -s ~/.wine-chromium-tests/drive_c/chromium/src Then to look at the overall devenv log file do more src/base.log or to look for individual build library logs, do find src/chrome/Debug -name BuildLog.htm Those BuildLog.htm files are Unicode; vim can handle them, but grep has some trouble.
http://bugs.winehq.org/show_bug.cgi?id=21410
--- Comment #2 from Dan Kegel dank@kegel.com 2010-01-18 17:35:14 --- The last few lines of console output before the hang are
fixme:ole:CoGetCallerTID stub! fixme:advapi:LookupAccountNameW (null) L"pantry\dank" 0xf02daf0 0xf02da5c 0xdac5800 0xf02da54 0xf02dc90 - stub fixme:ntdll:NtCreateJobObject stub: 0xf02e408 1f001f <null> fixme:ole:CoGetCallerTID stub! fixme:ntdll:NtIsProcessInJob stub: (nil) 0xffffffff fixme:ntdll:NtAssignProcessToJobObject stub: 0xdead 0x4e4 fixme:ole:CoGetCallerTID stub! fixme:ole:CoGetCallerTID stub! fixme:ole:CoGetCallerTID stub! fixme:ole:CoGetCallerTID stub! fixme:ole:CoGetCallerTID stub!
fwiw, here are all the err's and fixme's that occur more than 17 times during a run (up to the hang), along with counts:
288 err:ole:ITypeInfo_fnInvoke did not find member id 854, flags 0x4! 564 fixme:ole:CoGetCallerTID stub! 864 err:ole:ITypeInfo_fnInvoke failed to convert param 0 to VT_BOOL from VT_BSTR 1728 err:ole:ITypeInfo_fnInvoke failed to convert param 0 to VT_I4 from VT_BSTR 13032 err:ole:ITypeInfo_fnInvoke did not find member id 512, flags 0x4! 303124 fixme:rpc:NdrStubCall2 new correlation description not implemented 303266 fixme:ole:NdrCorrelationFree : stub 303296 fixme:ole:NdrCorrelationInitialize : stub
http://bugs.winehq.org/show_bug.cgi?id=21410
--- Comment #3 from Dan Kegel dank@kegel.com 2010-01-18 17:41:17 --- Created an attachment (id=25790) --> (http://bugs.winehq.org/attachment.cgi?id=25790) Output of 'winedbg bt all'
And here are all the stacks during the 'hang'.
It's possible if you let it sit overnight it would complete...
http://bugs.winehq.org/show_bug.cgi?id=21410
--- Comment #4 from Dan Kegel dank@kegel.com 2010-01-18 18:06:19 --- Created an attachment (id=25792) --> (http://bugs.winehq.org/attachment.cgi?id=25792) rzipped console log
It did finish after waiting another half hour or so. Here's the full console output, it's 81MB after decompression. I shudder to think what a +relay log would look like.
http://bugs.winehq.org/show_bug.cgi?id=21410
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Visual C++ 2005 Trial hangs |Visual C++ 2005 Trial has |sometimes in middle of |long pauses in middle of |large builds? |large builds
--- Comment #5 from Dan Kegel dank@kegel.com 2010-01-18 18:13:23 --- Here's the count after waiting the extra half hour for it to finish: 21 fixme:ntdll:NtIsProcessInJob stub: 0xffffffff 288 err:ole:ITypeInfo_fnInvoke did not find member id 854, flags 0x4! 864 err:ole:ITypeInfo_fnInvoke failed to convert param 0 to VT_BOOL from VT_BSTR 1417 fixme:ole:CoGetCallerTID stub! 1728 err:ole:ITypeInfo_fnInvoke failed to convert param 0 to VT_I4 from VT_BSTR 13032 err:ole:ITypeInfo_fnInvoke did not find member id 512, flags 0x4! 433829 fixme:rpc:NdrStubCall2 new correlation description not implemented 433971 fixme:ole:NdrCorrelationFree : stub 434003 fixme:ole:NdrCorrelationInitialize : stub
Looking at chrome/Debug/obj/base_unittests, it looks like there was a 20 minute gap until the linker finished, and another 10 minute gap until BuildLog.htm was written to and devenv finished. The CPU appeared to be idle during the gaps.
http://bugs.winehq.org/show_bug.cgi?id=21410
--- Comment #6 from Dan Kegel dank@kegel.com 2010-01-18 23:22:01 --- Maybe this is a dup of bug 21259... testing that workaround now.
http://bugs.winehq.org/show_bug.cgi?id=21410
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE
--- Comment #7 from Dan Kegel dank@kegel.com 2010-01-19 00:44:00 --- Yup, with a persistent pdbserver, it no longer seems to hang. The following script
#!/bin/sh sh build.sh kill WINEDEBUG=warn-all,fixme-all,err-all sh build.sh start & while true do sh build.sh clean WINEDEBUG=warn-all,fixme-all,err-all time sh build.sh base done | grep user
outputs 19.37user 13.84system 7:04.22elapsed 7%CPU (0avgtext+0avgdata 0maxresident)k 20.10user 14.49system 7:17.63elapsed 7%CPU (0avgtext+0avgdata 0maxresident)k 19.21user 13.62system 7:04.94elapsed 7%CPU (0avgtext+0avgdata 0maxresident)k 19.80user 13.96system 6:54.72elapsed 8%CPU (0avgtext+0avgdata 0maxresident)k 19.75user 13.51system 6:59.34elapsed 7%CPU (0avgtext+0avgdata 0maxresident)k 20.02user 13.65system 6:55.06elapsed 8%CPU (0avgtext+0avgdata 0maxresident)k 19.98user 13.90system 6:54.22elapsed 8%CPU (0avgtext+0avgdata 0maxresident)k 19.47user 13.24system 6:45.52elapsed 8%CPU (0avgtext+0avgdata 0maxresident)k
FWIW, on Windows, each iteration takes about two minutes. But that performance problem probably deserves a clean bug; I'll file that later.
*** This bug has been marked as a duplicate of bug 21259 ***
http://bugs.winehq.org/show_bug.cgi?id=21410
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Dmitry Timoshkov dmitry@codeweavers.com 2010-01-19 01:02:36 --- Closing duplicate.