Robert Krüger created SOLR-7884:
-----------------------------------

             Summary: Omit reverse lookups in SystemInfoHandler
                 Key: SOLR-7884
                 URL: https://issues.apache.org/jira/browse/SOLR-7884
             Project: Solr
          Issue Type: Improvement
    Affects Versions: 5.2.1
            Reporter: Robert Krüger


The method SystemInfoHandler.init contains this code:

{code:java}
  try {
      InetAddress addr = InetAddress.getLocalHost();
      hostname = addr.getCanonicalHostName();
    } catch (UnknownHostException e) {
      //default to null
    }
  }
{code}

The call to getCanonicalHostName triggers a DNS reverse lookup, that on Mac OSX 
times out after 30 seconds if the current network setup has a problem with 
reverse lookup and then returns the IP address as host name. In our product 
this leads to a hang of 2x30 seconds (one for the SystemInfoHandler of the 
container and another one for that of the core) during startup under these 
conditions. Unfortunately I have found no way to make this reproducible by 
simulating it as it depends on local network config, os and whatever else.

As Solr is shipped bundled with a desktop application, there is currently no 
workaround because the user network configuration is beyond our reach.

The suggested fix for this is to replace the call to getCanonicalHostName by 
one to getHostName(), which is done for exactly this purpose (obtaining a host 
string for logging) in the popular Logback framework (see 
http://logback.qos.ch/xref/ch/qos/logback/core/util/ContextUtil.html, how they 
do it).

Otherwise Solr has been working perfectly in this setup (bundled with a desktop 
app) for a long time and it would be great to remove that last obstacle to make 
it a nicer citizen bundlingwise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to