[
https://issues.apache.org/jira/browse/SOLR-5043?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hoss Man updated SOLR-5043:
---------------------------
Attachment: SOLR-5043.patch
bq. For situations like SOLR-7884 i think an advanced, seriously expert, system
property that says "hey solr, under no circumstances should you try to do any
DNS lookups because i know my DNS is busted" would be a good idea, and should
be implemented by a generic helper method for use both here and in the various
parts of the disributed update/search logic in the cloud code. (with forbidden
API checks to prevent any future code other then this helper method from doing
DNS related methods)
I spent a little time looking into this, and it appears to be somewhat
intractable. There are too many InetAddress methods that _may_ do reverse DNS
lookups under the covers to try and write our own wrappers and suppress direct
calls with forbidden-API -- particularly since many of those methods are the
same ones that just return the local hostname configuration if available (when
dealing with {{InetAddress.getLocalHost()}}) or the previously specified
hostname (when dealing with {{InetAddress.getByName(String)}})
So instead I punted on trying to solve the general problem of a sysprop to say
"Don't ever do any DNS lookups" and just kept the problem constrained to
sysprop that says "Don't ever do _this_ DNS lookup" .. leaving open the
possibility of refactoring it later if there are other places where we decide
we want it to apply as well.
Robert: can you try out this patch on a machine with a configuration you know
currently causes you long delays in starting up solr, and confirm you get a
helpful WARN message instructing you to set the
{{solr.dns.prevent.reverse.lookup}} .. and then test out adding that to your
startup params and confirm it eliminates the problem?
> hostanme lookup in SystemInfoHandler should be refactored to not block core
> (re)load
> ------------------------------------------------------------------------------------
>
> Key: SOLR-5043
> URL: https://issues.apache.org/jira/browse/SOLR-5043
> Project: Solr
> Issue Type: Improvement
> Reporter: Hoss Man
> Attachments: SOLR-5043-lazy.patch, SOLR-5043.patch, SOLR-5043.patch
>
>
> SystemInfoHandler currently lookups the hostname of the machine on it's init,
> and caches for it's lifecycle -- there is a comment to the effect that the
> reason for this is because on some machines (notably ones with wacky DNS
> settings) looking up the hostname can take a long ass time in some JVMs...
> {noformat}
> // on some platforms, resolving canonical hostname can cause the thread
> // to block for several seconds if nameservices aren't available
> // so resolve this once per handler instance
> //(ie: not static, so core reload will refresh)
> {noformat}
> But as we move forward with a lot more multi-core, solr-cloud, dynamically
> updated instances, even paying this cost per core-reload is expensive.
> we should refactoring this so that SystemInfoHandler instances init
> immediately, with some kind of lazy loading of the hostname info in a
> background thread, (especially since hte only real point of having that info
> here is for UI use so you cna keep track of what machine you are looking at)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]