The while loop to process the pending data requests was not a good idea, because having a new pending request doesn't mean we have more data available, but that more data was requested.
Created attachment 300804 [details] Patch
I can confirm that this fixes the issue that we originally saw in Evolution
Committed r211816: <http://trac.webkit.org/changeset/211816>