Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-31272

Use pre-resolved localhost IPs instead of requiring Erlang inet to resolve names like "127.0.0.1" and "::1"

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • Critical
    • None
    • 4.6.4, 5.1.2, 5.5.0, 5.5.1
    • ns_server
    • 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

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Abhijeeth.Nuthan Abhijeeth Nuthan
            dfinlay Dave Finlay
            Votes:
            0 Vote for this issue
            Watchers:
            12 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty