--
---
You received this message because you are subscribed to the Google Groups "spdy-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to spdy-dev+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
+akalinI should be very surprised if this were actually true for Chrome. If you have a server we can test at, we can verify this.On Fri, Jun 7, 2013 at 1:59 PM, Simone Bordet <sbo...@intalio.com> wrote:
Hi,
Really ? Seems a nasty bug.
On Fri, Jun 7, 2013 at 10:56 PM, <gw...@litespeedtech.com> wrote:
> Hi,
>
> We are adding SPDY support to OpenLiteSpeed Web server 1.1, it will support
> both SPDY2/3.
>
> When we test SPDY3 against Chrome 27.0.1453.93, chrome send
> SETTINGS_INITIAL_WINDOW_SIZE=10M, but never send any WINDOW_UPDATE frame
> when download from server, if the file size is larger than 10MB, download
> will stall by server when windows size reach 0.
t=1370650090115 [st= 1486] SPDY_SESSION_RECV_DATA
--> fin = false
--> size = 1393
--> stream_id = 1
t=1370650090115 [st= 1486] SPDY_SESSION_SENT_WINDOW_UPDATE_FRAME
--> delta = 5243351
--> stream_id = 1
t=1370650090115 [st= 1486] SPDY_SESSION_RECV_DATA
--> fin = false
--> size = 2786
--> stream_id = 1...
t=1370650091409 [st= 2780] SPDY_SESSION_RECV_DATA
--> fin = false
--> size = 1393
--> stream_id = 1
t=1370650091409 [st= 2780] SPDY_SESSION_SENT_WINDOW_UPDATE_FRAME
--> delta = 5244273
--> stream_id = 1
t=1370650091410 [st= 2781] SPDY_SESSION_RECV_DATA
--> fin = false
--> size = 1393
--> stream_id = 1> Is there an option to turn on SPDY3 flow control in chrome?Jetty's SPDYClient fully supports flow control, you can use it in testing.
There is some confusion about SETTINGS_INITIAL_WINDOW_SIZE, chrome send SETTING frame with SETTINGS_INITIAL_WINDOW_SIZE=10M,
our server send SETTINGS_INITIAL_WINDOW_SIZE=640K when connection establishes, probably at the same time.
So, what is the correct behavior?
BTW: Firefox
In the case of no window updates, the server should send up to 10MB of data before stalling on an empty flow control window. There is not a race condition here as the client SETTINGS frame is sent before the client SYN_STREAM that is being replied to with the data.
In the case of no window updates, the client should send up to 640KB of data before stalling on an empty flow control window. There is a race condition here because the DATA frames for the stream could be sent before the 640KB setting arrives. in that case the client would stall at 64KB and resume sending when the 640KB setting arrived.
Obviously any receiver (the client or the server) should generate window_updates when its buffering situation looks good and in a manner timely enough that the other end will receive the update before the window becomes empty. It appears chrome thinks that 5MB is enough buffering to make that happen (sounds like plenty to me too).
Assuming normal buffering, Firefox will generate WINDOW_UPDATEs after 64KB of data is received (using a 256MB window). That's probably too aggressive in some ways, but1] they're quite small and are piggybacked onto TCP acks that are sent more frequently anyhow
2] If a sending implementation is buggy and only uses the default 64KB window, this is will at least keep the session alive.its not better or worse than chrome. just different.
Please do not workaround buggy clients. In the development of a new protocol, it's nice if people are strict about interoperability and break peers who misbehave. Let's not let people get away with sloppy implementations which we need to support long-term.