Skip to content
William Chan edited this page Oct 17, 2013 · 5 revisions

Things we have learned and common mistakes - todo

  • The spec notes that stream ids must be increasing, but this can be easy to accidentally violate. If after frame generation, you insert the frame into a priority queue, then it's possible for a higher priority frame to move ahead. Therefore, stream ids must be generated/committed later in processing in order to ensure correct stream id ordering.

  • Implementations need to make sure they are always pumping data from the underlying transport to the HTTP/2 layer, otherwise there can be hangs. This is because a sender may be blocked on a zero flow control window. If it doesn't keep reading data from the socket, it may not pick up the WINDOW_UPDATE frame that reopens the flow control window.

Clone this wiki locally