bug in spdy - 499 response code on long running requests

bahaa nginx-forum at nginx.us
Sun Dec 22 12:12:05 UTC 2013


I noticed the same behavior when sending long running requests (>10secs)
from chrome with nginx running as a reversy proxy with spdy enabled. What
happens is that chrome sends a PING frame, then sends the request, then if
it doesn't get a PING reply it will close the connection and resend the
request.
You can see the handling of PING failure here:
http://git.chromium.org/gitweb/?p=chromium/src/net.git;a=blob;f=http/http_network_transaction.cc;h=a6d50699c0f1854036772b67c2a0ea1b1e62ae63;hb=HEAD#l1409

The reason chrome isn't getting a PING reply within 10secs is because nginx
queues the ping reply and doesn't send it until it gets a response from
upstream.
I added a call to ngx_http_spdy_send_output_queue() in
ngx_http_spdy_state_ping() to send the PING reply immediately and it solved
the problem.

Bahaa Aidi

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,240278,245759#msg-245759



More information about the nginx mailing list