default pooling behavior is fundamentally incompatible with composibility #465

Closed
substack opened this Issue Mar 8, 2013 · 3 comments

Comments

Projects
None yet
2 participants
Contributor

substack commented Mar 8, 2013

The current default behavior in request and core's http.request() is just about the most insidious kind of bug-riddled behavior possible. Once you have 5 or more extant open connections, any additional outgoing connections will just HANG FOREVER until one of the other connections finally dies. Now the behavior of your program is dependent on what other pieces of code in your program are doing and might hang inexplicably at ANY TIME.

More ranting: https://github.com/substack/hyperquest#pooling-is-evil

@isaacs is fixing most of my objections in node 0.10 but it would be great if we didn't have to wait as long for request to do the right thing here.

Until this issue is fixed I'll ripping out every instance of request in all of my modules to use hyperquest because the current behavior of request's horrible connection pooling behavior is fundamentally incompatible with composing behavior from lots of tiny pieces.

Owner

mikeal commented Mar 8, 2013

does hyperquest just pass an Agent that doesn't actually pool?

Owner

mikeal commented Mar 8, 2013

why don't you just use request.defaults({agent:false}) until core is fixed or we replace core pooling in request?

mikeal closed this Aug 28, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment