-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTP Error 500 with substatus 1011/1013 and win32 error 109 (ERROR_BROKEN_PIPE) #57
Comments
Did you find the solution or workaround to this issue? |
We are also running into this problem. Any idea for a fix? |
Try change the setting for your node server: |
We've tried quickly tried this workaround, and it does seem to help. To confirm that this is the same problem; when we set the keepAliveTimeout to a very small value, such as 50, the problem triggers quite often, but not as often as we'd expect. I.e. in the test script, there is a processing delay of 1/8s. 50ms is less than that, so we'd expect every request to cause an error. However, most requests still work fine. Also, we are a bit hesitant to set the keepAliveTimeout to 0 (infinite). Will the problem still be solved if we set the keepAliveTimeout to a large value, such as 1 minute, or does it really need to be set to 0? |
see node documentation for this property (value of 0 just disable this new feature): |
@PG-Devs What did you decide to do? Disable server keep alive? I am in a similar situation. |
yes |
Yeah, same here (disabled the keep alive). |
I wasn't on a node version that had the 5 second bug, but disabling keep alive seemed to have solved the problem anyway (at least in the last 24 hrs). I wonder if this is a problem in iisnode or what? |
Can confirm that this workaround fixed mine app service HTTP Error 500 too. Our app runs on top of node.js 14.x and it's an Angular 12.x app. |
On some of our servers our users are experiencing occasional internal server errors which we are unable to explain. According to our logs some requests fail with a broken pipe, but these requests are no different from other requests which work fine. We have now implemented a retry-mechanism, and so far requests that failed do work on the first retry. This seems to confirm that there is nothing 'wrong' with the requests themselves.
We have tried to create a minimal example (see files below), and performed some tests:
I used the following minimal example, on an up-to-date Windows Server 2016 Version 1607 (OS Build 14393.2248) installation with IIS (Version 10.0.014393.0). The below files were placed in
C:\Error1013
. In this directory I placed 3 node executables with different versions (see above table). On a different PC werun the 'poll.sh' script to test concurrent requests.
The example web server is very simple, and consists only of a short delay (1/8th of a second) in order to simulate processing time otherwise taken by our service.
It is our understanding that with NODE_PENDING_PIPE_INSTANCES set to the default value of 5000, we should not run into resource limits regarding concurrent requests until we reach 5000 concurrent requests. However, are getting error 500.1013 / 500.1011 with as few as 50 concurrent requests. Is this a known issue (e.g. #50)? In our case it does not seem to be related to the processing time of a request, as each simulated request takes only 1/8th of a second.
web.config
package.json
hello.js
poll.sh
The text was updated successfully, but these errors were encountered: