I'm currently working on a webapp that's generating many (500+) xhr requests to a nginx server. I've enabledHTTP/2 there in order to speed things up, but unfortunately in certain cases this seem to be causing weird issues, requests seem to be cancelled at random moments. On once specific use case I seem to be able to consistently trigger this issue, after a lot of xhr requests on one page chrome seems to say: enough is enough, we no longer do this and it starts cancelling requests. The net-internals say:t=25825 [st= 262] +URL_REQUEST_START_JOB [dt=16156]
--> load_flags = 33024 (MAYBE_USER_GESTURE | VERIFY_EV_CERT)
--> method = "POST"
--> upload_id = "0"
--> url = "https://some.website/action/retrieve"
t=25825 [st= 262] URL_REQUEST_DELEGATE [dt=0]
t=25825 [st= 262] HTTP_CACHE_GET_BACKEND [dt=0]
t=25825 [st= 262] +HTTP_STREAM_REQUEST [dt=183]
t=25825 [st= 262] HTTP_STREAM_JOB_CONTROLLER_BOUND
--> source_dependency = 2524657 (HTTP_STREAM_JOB_CONTROLLER)
t=26008 [st= 445] HTTP_STREAM_REQUEST_BOUND_TO_JOB
--> source_dependency = 2524658 (HTTP_STREAM_JOB)
t=26008 [st= 445] -HTTP_STREAM_REQUEST
t=41981 [st=16418] -URL_REQUEST_START_JOB
--> net_error = -3 (ERR_ABORTED)
t=41981 [st=16418] URL_REQUEST_DELEGATE [dt=0]
t=41981 [st=16418] -REQUEST_ALIVE
--> net_error = -3 (ERR_ABORTED)
But no real "cause" as in: why is it aborted. For a working request I see that after the HTTP_STREAM_REQUEST you get output of the actual HTTP request being send. In this case just nothing.
As soon as I disable HTTP/2 this page starts to work normally again, but much slower.
Besides fixing the enormous amount of HTTP requests (for the specific case the page generates almost 1200 requests), I would like to figure out why this is failing in chrome with http2. This specific page only fails consistently in Chrome, not in Safari. But also in Safari I can trigger the issue after "navigating" within the webapp. With Firefox I've not, yet, been able to do that. So my best guess is that this is a webkit specific issue.
Any pointers in where I should look and how I should be able to find what is causing this issue?