docs: private void doBind() throws Exception {
          LOG.debug("Creating listener socket");
          try {
              m_selector = Selector.open();
          } catch (IOException e) {
              throw new RuntimeException(e);
          }
  
          ServerSocketChannel listenerSocket = ServerSocketChannel.open();
          InetSocketAddress inetsockaddr;
          if ((m_internalInterface == null) || (m_internalInterface.length() == 0)) {
              inetsockaddr = new InetSocketAddress(m_internalPort);
          }
          else {
              inetsockaddr = new InetSocketAddress(m_internalInterface, m_internalPort);
          }
          try {
              hostLog.info("Attempting to bind to internal ip " + inetsockaddr);
              listenerSocket.socket().bind(inetsockaddr);
              listenerSocket.configureBlocking(false);
              m_listenerSockets.add(listenerSocket);
          } catch (Exception e) {
              /*
               * If we bound to the leader address, the internal interface address  might not
               * bind if it is all interfaces
               */
              if (m_listenerSockets.isEmpty()) {
                  LOG.fatal("Failed to bind to " + inetsockaddr);
                  CoreUtils.printPortsInUse(hostLog);
                  throw e;
              }
          }
  
          for (ServerSocketChannel ssc : m_listenerSockets) {
              ssc.register(m_selector, SelectionKey.OP_ACCEPT);
          }
  
          if (LOG.isDebugEnabled()) {
              LOG.debug("Non-Primary Listening on:" + inetsockaddr.toString());
          }
      }