-
-
Notifications
You must be signed in to change notification settings - Fork 33.8k
Description
I'm running node 8.4.0 with the experimental flag --expose-http2 set and am running a server. Currrently running on my desktop which is linux on Intel
This is a server supporting both the serving of static files via res.stream.respondWithFile() and an api. I am routing using the npm router module.
I am invoking the compat layer (I think) because my server create includes a callback
this.server = require('http2').createSecureServer(certs,async (req,res) => {
...
I have been mainly working on the client side app which is served by this server, which is definitely (when it is running) making an api call every 60 seconds. I frequently reload the whole app (by clicking the browser reload button) which normally causes an error (8) to be omitted on both req and res. I have listeners for both of these errors which just logs them.
I have noticed occassionally that I am not doing much other allowing the client to run that the following error occurs.
internal/http2/compat.js:72
stream.resume();
^
TypeError: Cannot read property 'resume' of undefined
at Http2ServerRequest.onRequestResume (internal/http2/compat.js:72:9)
at emitNone (events.js:105:13)
at Http2ServerRequest.emit (events.js:207:7)
at resume_ (_stream_readable.js:830:10)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
I don't think that is the result of any client action by me. Because the reload causes serveral hundred calls for static files to the server (which may respond with a 304) before the regular heartbeat api call gets started.
The browser console log is showing a an initial failure of the regular api call (connection reset) followed by a string of connection refused for each of the subsequent attempts.
The server log shows the api call that failed output a debug message just before a call res.end() (which is the last thing that particular api call does.). So the either the above error happened during res.end() or sometime after it, but before the next request happens.