I've seen two sources of memory leaks in Erlang based systems: 1) unbounded process message queues, and 2) passing binaries across process (pid) boundaries.
Many beginning erlangers run into these, and they're relatively easy to identify and correct. With a little practice, these become easy patterns to recognize and avoid.
As far as httpc, I'm unaware of that bug -- but I can say that I recently worked on a commercial product that leveraged httpc as a core component of the service, and it worked fine.
As far as httpc, I'm unaware of that bug -- but I can say that I recently worked on a commercial product that leveraged httpc as a core component of the service, and it worked fine.
Comments
2 or 3 years ago I hit memory leak in Erlang's stdlib's httpc... just saying.
This is impressive work by the Joyent team!
I've seen two sources of memory leaks in Erlang based systems: 1) unbounded process message queues, and 2) passing binaries across process (pid) boundaries.
Many beginning erlangers run into these, and they're relatively easy to identify and correct. With a little practice, these become easy patterns to recognize and avoid.
As far as httpc, I'm unaware of that bug -- but I can say that I recently worked on a commercial product that leveraged httpc as a core component of the service, and it worked fine.
It was fixed soon after discovered.
Don't forget non tail-call methods and funky parse_transforms!
I wouldn't recommend httpc to anyone... It's really slow and doesn't scale at all. There's plenty of better alternatives: lhttpc, ibrowse, hackney.
is inet part of stdlib?
Well, it's a part of OTP, which is, I believe, "the true" stdlib of Erlang.