You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Hoss Man (JIRA)" <ji...@apache.org> on 2013/07/23 03:05:50 UTC

[jira] [Updated] (SOLR-5043) hostanme lookup in SystemInfoHandler should be refactored to not block core (re)load

     [ 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

Here's a quick and drity patch that spins up background thread to resolve the hostname.

in practice, this works fine -- startup and core reload times are short, and an error eventually gets logged by the background thread if/when the JVM gives up on resolving the hostname.

the hitch is: if we assume people might have bad DNS when running solr, we should probably also assume they might have bad DNS when running solr tests.  As things stand on trunk today, that just means your tests run dog ass slow -- with this patch, the test will finish fast, but then the runner will fail because it treats this background DNS thread as a leak.

probably need to figure out a better way of dealing with this.
                
> 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.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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org