WineHQ
Bug Tracking Database – Bug 21054

 Bugzilla

 

Last modified: 2013-12-20 12:42:39 UTC  

Platform SDK 2003 web installer download unreliable

Bug 21054 - Platform SDK 2003 web installer download unreliable
Platform SDK 2003 web installer download unreliable
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: wininet
1.1.34
x86 Linux
: P3 normal
: ---
Assigned To: Mr. Bugs
http://www.microsoft.com/en-us/downlo...
: download, Installer
Depends on: 22856
Blocks:
  Show dependency tree
 
Reported: 2009-12-18 04:16 UTC by Dan Kegel
Modified: 2013-12-20 12:42 UTC (History)
3 users (show)

See Also:
Regression SHA1:
Fixed by SHA1:
Distribution: ---
Staged patchset:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Kegel 2009-12-18 04:16:01 UTC
This is not a critical problem, just an observation.
'winetricks psdk2003' works today, but seems a little slow.
It spends about five minutes thinking, then about half an hour (?) copying.
oprofile shows that during the thinking phase, 
cpu time is divided up almost evenly between msi.dll and libwine.dll:
   213762 52.2918 msi.dll.so
   173435 42.4267 libwine.so.1.0
    16658  4.0750 kernel32.dll.so
During this time, cpu time inside msi is divided up like this
67832    31.7325  JOIN_fetch_int
33596    15.7165  WHERE_evaluate
28618    13.3878  read_table_int
22133    10.3540  TABLE_fetch_int
14115     6.6031  STRING_evaluate
13322     6.2322  bytes_per_column
and cpu time inside libwine is divided up like this:
152497   87.9275  strlenW
12290     7.0862  compare_unicode_weights

During the copying phase, cpu time is mostly in the kernel:
    23340 37.7866 no-vmlinux
    15967 25.8500 cabinet.dll.so
     5469  8.8541 libwine.so.1.0
Of the 1/4 of the cpu time in cabinet.dll, nearly all of it was in one function:
15299    95.8164  LZXfdi_decomp

These numbers are with -O0, so they're not especially useful
for predicting normal speeds.  It'd be interesting to see where the
cpu time is at -O2.
Comment 1 Dan Kegel 2009-12-18 04:33:06 UTC
Hmm.  Maybe it's my router crashing every 15 minutes, but
the install seems to have locked up at the end :-(
Comment 2 Hans Leidekker 2009-12-18 05:01:56 UTC
Commit 6df6332198597aa0e03f9e15c9f4e8c883356f3b shows that native rejects
greater than and less than comparisons of strings in WHERE clauses, which
suggests a performance improvement.

If we can guarantee that all string operands in the WHERE clause are taken
from the string table, string comparison would reduce to comparing string
string ids.

A smarter join algorithm would likely help here too.
Comment 3 Dmitry Timoshkov 2009-12-18 05:52:23 UTC
Platform SDK takes a huge time while installing under Windows for me.
I've installed Platform SDK under XP and Vista, and it's ridiculously
slow there.
Comment 4 Dan Kegel 2009-12-19 09:37:44 UTC
Tried it again twice.  Once it finished ok in 22 minutes.
Another time it failed with messages
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:msi:msi_cabextract FDICopy failed
err:msi:ACTION_InstallFiles Failed to extract cabinet: L"PSDK-PSDK-common.1.cab"
err:msi:ITERATE_Actions Execution halted, action L"InstallFiles" returned 1627
err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1627
That may be what happened on the run I thought was slow (the installer window
wouldn't redraw, so I couldn't see what it was saying).

I'll try it again with +msi and see how repeatable this is.
Comment 5 Dan Kegel 2009-12-19 12:25:26 UTC
There seem to be two failure modes - one where the installer
hits "FDICopy failed" (no idea why) and tells the user nicely,
and another where internet connectivity failure somehow
makes the installer hang.  The latter one is probably
easy to reproduce - just wait until the installer is copying
files, then yank your internet cable for a few seconds, and
put it back in.
Comment 6 Frédéric Delanoy 2012-03-16 11:03:44 UTC
Does that still happen in 1.4?
(or, is that bug still relevant?)
Comment 7 Anastasius Focht 2012-04-30 16:46:28 UTC
Hello,

the bug has been recycled once with msi table join performance issue ....

Currently there is no "flakiness" nor "hang" here but a crash upon downloading.
I observed that wininet bug also for other apps/installers (many web installers for Visual Studio that download large amounts of data).

--- snip ---
WINEDEBUG=+tid,+seh,+loaddll,+process,+wininet bash winetricks psdk2003
...

003e:trace:wininet:HTTP_ReceiveRequestData 0x1389cb0
003e:trace:wininet:netconn_read read 2896 bytes
003e:trace:wininet:refill_read_buffer read 2896 bytes, read_size 2896
003e:trace:wininet:NETCON_query_data_available 0 bytes of queued, but unread data
003e:trace:wininet:INTERNET_SendCallback  callback(0x7ec11d60) (0x3 (0x1389cb0), 0014a388, 100 (INTERNET_STATUS_REQUEST_COMPLETE), 0x220e8d8, 8)
003e:trace:wininet:INTERNET_SendCallback  end callback().
003e:trace:wininet:WININET_Release object 0x1389cb0 refcount = 1
003a:trace:wininet:InternetQueryDataAvailable (0x3 0x14a404 0 0)
003a:trace:wininet:WININET_AddRef 0x1389cb0 -> refcount = 2
003a:trace:wininet:get_handle_object handle 3 -> 0x1389cb0
003a:trace:wininet:HTTPREQ_QueryDataAvailable (0x1389cb0 0x14a404 0 0)
003a:trace:wininet:NETCON_query_data_available 0 bytes of queued, but unread data
003a:trace:wininet:NETCON_query_data_available 6544 bytes of queued, but unread data
003a:trace:wininet:netconn_read read 6544 bytes
003a:trace:wininet:refill_read_buffer read 6544 bytes, read_size 9440
003a:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7e1df94f ip=7e1df94f tid=003a
003a:trace:seh:raise_exception  info[0]=00000000
003a:trace:seh:raise_exception  info[1]=57fa6e66
003a:trace:seh:raise_exception  eax=57fa6e66 ebx=7e21699c ecx=00000000 edx=7bcdab68 esi=000024e0 edi=0033f128
003a:trace:seh:raise_exception  ebp=0033eb48 esp=0033eb30 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010206
003a:trace:seh:call_stack_handlers calling handler at 0x7bc91b99 code=c0000005 flags=0
wine: Unhandled page fault on read access to 0x57fa6e66 at address 0x7e1df94f (thread 003a), starting debugger...
003a:trace:seh:start_debugger Starting debugger "winedbg --auto 57 108"
003a:trace:process:create_process_impl app (null) cmdline L"winedbg --auto 57 108"
003a:trace:process:find_exe_file looking for L"winedbg"
003a:trace:process:find_exe_file Trying native exe L"C:\\windows\\system32\\winedbg.exe"
003a:trace:process:create_process_impl starting L"C:\\windows\\system32\\winedbg.exe" as Win32 binary (0x10000000-0x10017000)
003a:trace:process:create_process_impl started process pid 003f tid 0040
--- snip ---

Backtrace:

--- snip ---
Unhandled exception: page fault on read access to 0xbc9f1388 in 32-bit code (0x7e1ec94f).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:7e1ec94f ESP:0033c3c0 EBP:0033c3d8 EFLAGS:00010206(  R- --  I   - -P- )
 EAX:bc9f1388 EBX:7e22399c ECX:00000000 EDX:7bcdab68
 ESI:00002d00 EDI:00002000
Stack dump:
0x0033c3c0:  ffffffff 0000001f 0033c3f0 7e22399c
0x0033c3d0:  0033c5fc 0033c5fc 0033c448 7e1ee4f4
0x0033c3e0:  013e30c0 00000002 00000000 7e21380c
0x0033c3f0:  013e30c0 018fe374 00000000 00000000
0x0033c400:  7e22399c 0033c5fc 0033c448 7e1f7622
0x0033c410:  00000003 7e23a468 7e216a57 7e2151de
Backtrace:
=>0 0x7e1ec94f get_avail_data+0x19(req=0x13e30c0) [/home/focht/projects/wine/wine-git/dlls/wininet/http.c:2326] in wininet (0x0033c3d8)
  1 0x7e1ee4f4 HTTPREQ_QueryDataAvailable+0xd2(hdr=0x13e30c0, available=0x18fe374, flags=0, ctx=0) [/home/focht/projects/wine/wine-git/dlls/wininet/http.c:2985] in wininet (0x0033c448)
  2 0x7e200466 InternetQueryDataAvailable+0xd7(hFile=0x3, lpdwNumberOfBytesAvailble=0x18fe374, dwFlags=0, dwContext=0) [/home/focht/projects/wine/wine-git/dlls/wininet/internet.c:3797] in wininet (0x0033c498)
  3 0x7ec1fd9c protocol_read+0x1b5(protocol=0x18fe2f8, buf=0x33c5fc, size=0x2000, read_ret=0x33c568) [/home/focht/projects/wine/wine-git/dlls/urlmon/protocol.c:414] in urlmon (0x0033c4f8)
  4 0x7ec19da8 HttpProtocol_Read+0xa4(iface=0x18fe380, pv=0x33c5fc, cb=0x2000, pcbRead=0x33c568) [/home/focht/projects/wine/wine-git/dlls/urlmon/http.c:701] in urlmon (0x0033c538)
  5 0x7ec0fc80 ProtocolHandler_Read+0x19b(iface=0x18fe01c, pv=0x33c5fc, cb=0x2000, pcbRead=0x33c5f8) [/home/focht/projects/wine/wine-git/dlls/urlmon/bindprot.c:730] in urlmon (0x0033c598)
  6 0x7ec0ebfb BindProtocol_Read+0xbe(iface=0x18fdfe8, pv=0x33c5fc, cb=0x2000, pcbRead=0x33c5f8) [/home/focht/projects/wine/wine-git/dlls/urlmon/bindprot.c:424] in urlmon (0x0033c5d8)
  7 0x7ec08696 read_protocol_data+0x3a(stgmed_buf=0x18fe6a8) [/home/focht/projects/wine/wine-git/dlls/urlmon/binding.c:111] in urlmon (0x0033e608)
--- snip ---

Sadly, applying 'winetricks -q wininet' recipe before 'psdk2003' doesn't help here (WINEPREFIX=$HOME/.local/share/wineprefixes/psdk2003 bash winetricks -q wininet).
The installer simply hangs when about to download.

Adding dependency of bug 22856 here as this is the same crash.

$ wine --version
wine-1.5.3-39-gd2581e6

Regards
Comment 8 Anastasius Focht 2013-12-07 12:56:27 UTC
Hello folks,

can't reproduce the instability anymore.
Unfortunately the original PSDK 2003 web installer link seems to be gone.

I used "Windows Server 2003 SP1 Platform SDK Web Install" as replacement which utilizes the same technology.
Resolving 'fixed'.

$ sha1sum PSDK-x86.exe 
a42fd342c45f71efe192aa49d9a8a50c1d8a39db  PSDK-x86.exe

$ du -sh PSDK-x86.exe 
1.3M	PSDK-x86.exe

$ wine --version
wine-1.7.8-128-g37460b6

Regards
Comment 9 Alexandre Julliard 2013-12-20 12:42:39 UTC
Closing bugs fixed in 1.7.9.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers