What steps will reproduce the problem?
1. Make a page with a lot of large content, such as large .swf and .js files.
2. Make the request.
What is the expected output? What do you see instead?
Expect to see the webpage finish loading. Instead, the page stops loading, and
depending on which file Chrome is stuck reading from the server, that
particular Chrome tab or ALL Chrome tabs become unresponsive. (.js results in
one tab becoming unresponsive, .swf results in all tabs becoming unresponsive)
What version of the product are you using? On what operating system?
3.0 and 3.1, on Windows 7.
Please provide any additional information below.
By patching in asynchronous calls to the push() function, I was able to see
that send() is constantly returning with error code 10035 (through
WSAGetLastError()). Granted that normally 10035 could return if we flood the
send/receive buffer, but this isn't the case. Instead, send permanently returns
10035 (I've modified the code to keep trying), even when I put the thread to
sleep.
I've since patched in setsockopt's SO_RCVBUF and SO_SNDBUF to a much larger
value (64*1024), and haven't been able to reproduce the problem. According to
the MSDN docs, my default should be 12*1460 (~17k). I also reversed course and
it definitely does look like setting that value to 1024 bytes readily causes a
problem (although pages do sometimes complete their load successfully).
I don't really know what the issue is, but I'm inclined to not believe it's a
Winsock/Windows issue...and the Mongoose code looks pretty solid in that
regard. I'm itching to point my fingers at Chrome...but I haven't found a
smoking gun yet.
Original issue reported on code.google.com by chester....@gmail.com on 14 Sep 2011 at 10:22
Original issue reported on code.google.com by
chester....@gmail.com
on 14 Sep 2011 at 10:22