http://bugs.winehq.org/show_bug.cgi?id=37046
Bug ID: 37046 Summary: Roblox Studio cannot load games due to issue in wininet (trace:wininet:DllMain 0x7dec0000,2,(nil)) Product: Wine Version: 1.7.22 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wininet Assignee: wine-bugs@winehq.org Reporter: alfonsojon1997@gmail.com
Created attachment 49228 --> http://bugs.winehq.org/attachment.cgi?id=49228 RobloxStudio wininet log
Hi, it seems Roblox Studio cannot load games without using the winetricks wininet verb (which is bad because it causes a very long hang when loading), which is slightly frustrating. I've attached an error log which was executed with the wine debug channels "fixme-d3d,+wininet". Please let me know if any more information is needed. Thanks
http://bugs.winehq.org/show_bug.cgi?id=37046
Jonathan Alfonso alfonsojon1997@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alfonsojon1997@gmail.com Hardware|x86 |x86-64
http://bugs.winehq.org/show_bug.cgi?id=37046
--- Comment #1 from Jonathan Alfonso alfonsojon1997@gmail.com --- *** Bug 34121 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=37046
Jonathan Alfonso alfonsojon1997@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |michael@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=37046
Jonathan Alfonso alfonsojon1997@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|1.7.22 |1.7.31
https://bugs.winehq.org/show_bug.cgi?id=37046
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |NEW URL| |http://www.roblox.com/insta | |ll/setup.ashx CC| |focht@gmx.net Summary|Roblox Studio cannot load |Roblox Studio/Player fails |games due to issue in |to download games |wininet |('Accept-Encoding' header |(trace:wininet:DllMain |is valid for 'HTTP/1.0' |0x7dec0000,2,(nil)) |requests) Ever confirmed|0 |1
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
Useful Wiki/HOWTOs: http://roblox.wikia.com/wiki/Roblox_on_Linux
A list of games is available here: http://www.roblox.com/games/?SortFilter=default&TimeFilter=0&GenreFi...
http://www.roblox.com/JAWS-place?id=6798894 -> 6798894 = game id
--- snip --- $ pwd /home/focht/.wine/drive_c/users/focht/Local Settings/Application Data/RobloxVersions/version-0aae98b55b324621
$ WINEDEBUG=+tid,+seh,+relay,+wininet wine ./RobloxPlayerBeta.exe --id 6798894
log.txt 2>&1
... 0023:Call wininet.HttpOpenRequestA(00000002,00decd88 "GET",0016fbf0 "/Game/PlaceLauncher.ashx?request=RequestGame&placeId=6798894&isPartyLeader=false&gender=&isTeleport=true",00decd74 "HTTP/1.0",00e9951b "",00000000,00400010,00000000) ret=008551d5 0023:trace:wininet:HttpOpenRequestA (0x2, "GET", "/Game/PlaceLauncher.ashx?request=RequestGame&placeId=6798894&isPartyLeader=false&gender=&isTeleport=true", "HTTP/1.0", "", (nil), 00400010, 00000000) ... 0023:trace:wininet:HttpOpenRequestW (0x2, L"GET", L"/Game/PlaceLauncher.ashx?request=RequestGame&placeId=6798894&isPartyLeader=false&gender=&isTeleport=true", L"HTTP/1.0", L"", (nil), 00400010, 00000000) ... 0023:trace:wininet:HTTP_HttpOpenRequestW --> ... 0023:trace:wininet:HTTP_ProcessHeader --> L"Host": L"www.roblox.com" - 0x22000000 0023:trace:wininet:HTTP_InsertCustomHeader --> L"Host": L"www.roblox.com" ... 0023:trace:wininet:HTTP_HttpOpenRequestW <-- (0x16fd60) ... 0023:trace:wininet:HttpOpenRequestW returning 0x3 ... 0023:Ret wininet.HttpOpenRequestA() retval=00000003 ret=008551d5 ... 0023:Call wininet.HttpAddRequestHeadersA(00000003,019935f8 "Requester: Client\r\n",00000013,20000000) ret=008554f4 0023:trace:wininet:HttpAddRequestHeadersA 0x3, "Requester: Client\r\n", 19, 536870912 ... 0023:trace:wininet:HttpAddRequestHeadersW 0x3, L"Requester: Client\r\n", 19, 536870912 ... 0023:trace:wininet:HTTP_HttpAddRequestHeadersW copying header: L"Requester: Client\r\n" ... 0023:trace:wininet:HTTP_InterpretHttpHeader field(L"Requester") Value(L"Client") 0023:trace:wininet:HTTP_ProcessHeader --> L"Requester": L"Client" - 0x22000000 0023:trace:wininet:HTTP_InsertCustomHeader --> L"Requester": L"Client" ... 0023:trace:wininet:HTTP_HttpAddRequestHeadersW interpreting header L"" ... 0023:Ret wininet.HttpAddRequestHeadersA() retval=00000001 ret=008554f4 ... 0023:Call wininet.HttpAddRequestHeadersA(00000003,00decef4 "Accept-Encoding: gzip\r\n",00000017,20000000) ret=0085553a 0023:trace:wininet:HttpAddRequestHeadersA 0x3, "Accept-Encoding: gzip\r\n", 23, 536870912 ... 0023:trace:wininet:HttpAddRequestHeadersW 0x3, L"Accept-Encoding: gzip\r\n", 23, 536870912 ... 0023:trace:wininet:HTTP_HttpAddRequestHeadersW copying header: L"Accept-Encoding: gzip\r\n" ... 0023:trace:wininet:HTTP_HttpAddRequestHeadersW interpreting header L"Accept-Encoding: gzip" ... 0023:trace:wininet:HTTP_InterpretHttpHeader field(L"Accept-Encoding") Value(L"gzip") ... 0023:Ret wininet.HttpAddRequestHeadersA() retval=00000000 ret=0085553a 0023:Call KERNEL32.GetLastError() ret=0059fef2 0023:Ret KERNEL32.GetLastError() retval=00002f79 ret=0059fef2 0023:Call KERNEL32.FormatMessageA(00001000,00000000,00002f79,00000800,0033dbb8,00000100,00000000) ret=0059ff4c 0023:Ret KERNEL32.FormatMessageA() retval=00000000 ret=0059ff4c ... 0023:Call msvcr110._CxxThrowException(0033dcb8,01072300) ret=0059ff78 0023:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0033db54) ret=7e14dac1 0023:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b83b1d3 ip=7b83b1d3 tid=0023 0023:trace:seh:raise_exception info[0]=19930520 0023:trace:seh:raise_exception info[1]=0033dcb8 0023:trace:seh:raise_exception info[2]=01072300 0023:trace:seh:raise_exception eax=7b826e65 ebx=7b8be000 ecx=19930520 edx=0033daa4 esi=0033db50 edi=0033db10 0023:trace:seh:raise_exception ebp=0033dae8 esp=0033da84 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000283 ... 0023:Call KERNEL32.OutputDebugStringA(01993e20 "WARNING: httpGet http://www.roblox.com/Game/PlaceLauncher.ashx?request=RequestGame&placeI... failed. Trying again. Error: http://www.roblox.com/Game/PlaceLauncher.ashx?request=RequestGame&placeI...: Ht"...) ret=0041010e --- snip ---
0x2F79 -> 'ERROR_HTTP_INVALID_HEADER'
Debugger session:
--- snip --- Wine-dbg>s HTTP_VerifyValidHeader () at /home/focht/projects/wine/wine.repo/src/dlls/wininet/http.c:6354 6354 {
Wine-dbg>n 6356 if (!strcmpW(request->version, g_szHttp1_0) && !strcmpiW(field, szAccept_Encoding))
Wine-dbg>p *request {hdr={htype=WH_HHTTPREQ, vtbl=0x7e3c1740, hInternet=0x3, valid_handle=0x1, dwFlags=0x400010, dwContext=0, dwError=0, ErrorMask=0, dwInternalFlags=0, refs=0x2, lpfnStatusCB=(nil), entry={next=0x14cf54, prev=0x14cf54}, children={next=0x14d14c, prev=0x14d14c}}, session=0x14cf20, server=0x14f268, proxy=(nil), path="/Game/PlaceLauncher.ashx?request=RequestGame&placeId=6798894&isPartyLeader=false&gender=&isTeleport=true", verb="GET", netconn=(nil), security_flags=0, connect_timeout=0xea60, send_timeout=0xffffffff, receive_timeout=0xffffffff, version="HTTP/1.0", status_code=0, statusText=0x0(nil), bytesToWrite=0, bytesWritten=0, ...}
Wine-dbg>p field "Accept-Encoding" --- snip ---
Source: http://source.winehq.org/git/wine.git/blob/06afdda61777d43f6c7d5b78157b46517...
--- snip --- 6353 static BOOL HTTP_VerifyValidHeader(http_request_t *request, LPCWSTR field) 6354 { 6355 /* Accept-Encoding is stripped from HTTP/1.0 requests. It is invalid */ 6356 if (!strcmpW(request->version, g_szHttp1_0) && !strcmpiW(field, szAccept_Encoding)) 6357 return ERROR_HTTP_INVALID_HEADER; 6358 6359 return ERROR_SUCCESS; 6360 } --- snip ---
The specification: http://www.w3.org/Protocols/HTTP/1.0/spec.html#Accept-Encoding ("Hypertext Transfer Protocol -- HTTP/1.0")
http://www8.org/w8-papers/5c-protocols/key/key.html ("Key Differences between HTTP/1.0 and HTTP/1.1")
--- quote --- Compression ... HTTP/1.1 (unlike HTTP/1.0) carefully specifies the Accept-Encoding header, used by a client to indicate what content-codings it can handle, and which ones it prefers. One tricky issue is the need to support ``robot'' clients that are attempting to create mirrors of the origin server's resources; another problem is the need to interoperate with HTTP/1.0 implementations, for which Accept-Encoding was poorly specified. --- quote ---
Additionally I captured the session with Wireshark, showing native allows the header.
Request:
--- snip --- GET /Game/PlaceLauncher.ashx?request=RequestGame&placeId=6798894&isPartyLeader=false&gender=&isTeleport=true HTTP/1.0 Requester: Client Accept-Encoding: gzip User-Agent: Roblox/WinInet Host: www.roblox.com Connection: Keep-Alive --- snip ---
Answer:
--- snip --- HTTP/1.1 200 OK Cache-Control: no-cache, no-store Pragma: no-cache Content-Type: text/html; charset=utf-8 Expires: -1 Set-Cookie: ... Connection: keep-alive Content-Length: 979
{"jobId":...} --- snip ---
$ sha1sum RobloxPlayerLauncher.exe 1139b620baadace6ce6ee224c190ce0dee248146 RobloxPlayerLauncher.exe
$ du -sh RobloxPlayerLauncher.exe 628K RobloxPlayerLauncher.exe
$ wine --version wine-1.7.32
Regards
https://bugs.winehq.org/show_bug.cgi?id=37046
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=37046
--- Comment #3 from Michael Müller michael@fds-team.de --- Hi,
I added a patch to wine-staging, can you check whether it solves the problem for you?
https://github.com/wine-compholio/wine-staging/blob/master/patches/wininet-e...
Regards, Michael
https://bugs.winehq.org/show_bug.cgi?id=37046
Jacek Caban jacek@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jacek@codeweavers.com
--- Comment #4 from Jacek Caban jacek@codeweavers.com --- Please send the patch to Wine. There is no point in keeping a valid patch with tests outside main Wine repo.
https://bugs.winehq.org/show_bug.cgi?id=37046
--- Comment #5 from Jonathan Alfonso alfonsojon1997@gmail.com --- (In reply to Michael Müller from comment #3)
Hi,
I added a patch to wine-staging, can you check whether it solves the problem for you?
https://github.com/wine-compholio/wine-staging/blob/master/patches/wininet- encoding/0001-wininet-Allow-Accept-Encoding-for-HTTP-1.0-requests.patch
Regards, Michael
Testing now, will keep you updated.
https://bugs.winehq.org/show_bug.cgi?id=37046
--- Comment #6 from Jonathan Alfonso alfonsojon1997@gmail.com --- (In reply to Jonathan Alfonso from comment #5)
(In reply to Michael Müller from comment #3)
Hi,
I added a patch to wine-staging, can you check whether it solves the problem for you?
https://github.com/wine-compholio/wine-staging/blob/master/patches/wininet- encoding/0001-wininet-Allow-Accept-Encoding-for-HTTP-1.0-requests.patch
Regards, Michael
Testing now, will keep you updated.
Still not working, getting this: fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT/DATA_SEND_TIMEOUT 60000
https://bugs.winehq.org/show_bug.cgi?id=37046
Geoffrey De Belie computergeoffrey@zoho.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |computergeoffrey@zoho.com
https://bugs.winehq.org/show_bug.cgi?id=37046
Qian Hong fracting@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fracting@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=37046
--- Comment #7 from Sebastian Lackner sebastian@fds-team.de --- Patch was accepted on second attempt: http://source.winehq.org/git/wine.git/commit/7c8df7eb5e2eaf7db7bc71b0c1dfa45...
If there are additional problems (according to comment #6) I would suggest to open a new bug report for that.
https://bugs.winehq.org/show_bug.cgi?id=37046
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |7c8df7eb5e2eaf7db7bc71b0c1d | |fa455edb3200e Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #8 from Anastasius Focht focht@gmx.net --- Hello folks,
this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/7c8df7eb5e2eaf7db7bc71b0c1d...
Thanks Michael
The games load for me in clean WINEPREFIX.
--- snip --- $ WINEDEBUG=+tid,+seh,+loaddll,+wininet wine ./RobloxPlayerBeta.exe --id 6798894 --- snip ---
Regards
https://bugs.winehq.org/show_bug.cgi?id=37046
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.38.
https://bugs.winehq.org/show_bug.cgi?id=37046
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hillwoodroc@gmail.com
--- Comment #10 from Anastasius Focht focht@gmx.net --- *** Bug 34540 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=37046
Red kawaiikalliope@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |kawaiikalliope@gmail.com