Details
-
Bug
-
Resolution: Won't Fix
-
Critical
-
None
-
4.6.4, 5.1.2, 5.5.0, 5.5.1
-
None
-
Untriaged
-
Unknown
Description
We have see a bug in the Erlang VM name resolution logic. It's quite rare, but if it happens the symptoms are unpleasant. The symptoms are:
- Erlang name resolution hangs (i.e. this function: http://erlang.org/doc/man/inet.html#getaddr-2)
- ns_server is not able to create new connections to memcached (as ns_server resolves "127.0.0.1" as part of opening a connection to the local memcached) - which among other things will cause compaction to stop
We have evidence that there definitely is a bug in Erlang - most likely in the Erlang ports native code in the way that the name resolution requests are passed by the port logic to the subprocesses that Erlang starts to do the actual name resolution.
A simple, low-risk way to reduce the pressure on the name resolution subsystem and to probably make this bug less likely to be hit is to use pre-resolved addresses instead of asking Erlang to resolve them in the case of loopback addresses like "127.0.0.1" and "::1".
Attachments
For Gerrit Dashboard: MB-31272 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
99581,1 | MB-31272: Convert address strings to IP tuple ... | alice | ns_server | Status: ABANDONED | 0 | +1 |