mirror of
https://github.com/aspnet/JavaScriptServices.git
synced 2025-12-23 01:58:29 +00:00
Performance: after TCP connection timeout on nodejs response gets delayed by 1000 ms #120
Closed
opened 2025-08-09 17:15:05 +00:00 by fergalmoran
·
0 comments
No Branch/Tag Specified
master
rybrande/masterToSrc
pakrym/no-console-fb
release/2.2
pakrym/remove-obsole-api-usage
maestro/release/2.2
maestro/master
release/2.1
release/2.0
rybrande/MergeRelease21IntoDev
rel/2.0.0-extensions
angular-animations-example
fix-angular-material-publishing
rel/2.0.0-templates
httpwithstatetransfer-example
rel/2.0.0-preview2-templates
aspnet-webpack-react-2.x
angular4-prerender-data-example
version-1.x
angular2-lazy-loading-example
581-isomorphic-react-cookies-example
example-using-typescript-paths-for-494
v1.0.x
angular2-materialize-example
redux-typed-1-x
primeng-example
font-awesome-example
karma-testing-example
2.2.0
2.2.0-preview3
2.2.0-preview2
2.2.0-preview1
2.1.1
2.1.0
2.0.4
2.1.0-rc1-final
2.1.0-preview2-final
2.0.3
2.1.0-preview1-final
2.0.2
2.0.1
rel/2.0.0
rel/2.0.0-preview2
Labels
Clear labels
2 - Working
2 - Working
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
3 - Done
angular
angular
angular
angular
angular
bug
bug
bug
bug
bug
bug
bug
bug
bug
core
core
core
core
core
core
core
duplicate
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
enhancement
external
external
P1
P1
P1
P1
P1
P1
P2
P2
P2
P2
P2
P2
P2
P2
P2
PRI: 1 - Required
react
react
task
task
up-for-grabs
up-for-grabs
up-for-grabs
waiting
waiting
waiting
waiting
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
fergalmoran
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github/JavaScriptServices#120
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @CoolerIV on 3/22/2018
Setup
While testing our software, we started observing that after 120 seconds of inactivity since last request, next response time increases by 1000ms. Upgraded node version to latest LTS which is 8.x, and it became even worse: it was reproducible each 5 seconds of inactivity.
This delay is not affected by SPA framework used - tested it with angular 5.x, and it is exactly the same.
Also as a matter of fact delay entirely depends of which client is being used (in this case it's http client of net core - 1000ms; postman adds - 500ms etc).
Findings
Problem arises when .net core process tries to do a http post on
http://localhost:portto a http server running on nodejs listening on IPv4 address resolved out oflocalhost. As long as localhost loopback address in nodejs is resolved to IPv4 format (127.0.0.1) and network configuration preferes IPv6 (::1), each time .net core process has to resolvelocalhostto do a http post to nodejs, it results in IPv6. It fails to reach nodejs listening on IPv4 and after 1000ms of timeout it falls back to IPv4 version, succeeds and we have extra 1000ms added to this response time.Summary:
Solution would be quite simple: once starting nodejs process .net core side should listen not only to port printed to stdout stream, but also to a resolved address when starting server on
localhost. Then .netcore side should do a http post not to alocalhost:portbut to resolvedip:port.Tested this configuration, works quite fine. I can do a PR for this, if it looks feasible for you guys.