[
https://issues.apache.org/jira/browse/BROOKLYN-579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16488924#comment-16488924
]
ASF GitHub Bot commented on BROOKLYN-579:
-----------------------------------------
GitHub user tbouron opened a pull request:
https://github.com/apache/brooklyn-dist/pull/121
[BROOKLYN-579] Add DNS TTL configuration via envvar
Before, java was not refreshing the DNS records, ever. This is due to the
default `networkaddress.cache.ttl` set to `-1`, i.e. cache forever.
This PR updates the system property `sun.net.inetaddr.ttl` to `60` by
default. It uses `sun.net.inetaddr.ttl` because `networkaddress.cache.ttl` **is
not** a system property. But this has the desirable effect (see:
https://stackoverflow.com/a/17219327)
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/tbouron/brooklyn-dist feature/dns-ttl
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/brooklyn-dist/pull/121.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #121
----
commit 2962a166979bbead588a172a378bac0678c12ba0
Author: Thomas Bouron <thomas.bouron@...>
Date: 2018-05-24T12:44:46Z
Add DNS TTL configuration via envvar
----
> DNS lookups cached for too long
> -------------------------------
>
> Key: BROOKLYN-579
> URL: https://issues.apache.org/jira/browse/BROOKLYN-579
> Project: Brooklyn
> Issue Type: Bug
> Reporter: Alex Heneveld
> Priority: Major
>
> I've had issues where DNS values are changed but Brooklyn doesn't see those.
> I think Java caches hostnames forever by default, ignoring DNS TTL.
> (Controlling Route 53 from Brooklyn is one obvious such example!)
> We should consider overriding this.
> Oracle Cloud describe how
> (https://docs.us-phoenix-1.oraclecloud.com/Content/API/SDKDocs/javasdk.htm):
>
> {quote}The JVM uses the
> [networkaddress.cache.ttl|http://docs.oracle.com/javase/8/docs/technotes/guides/net/properties.html]
> property to specify the caching policy for DNS name lookups. The value is an
> integer that represents the number of seconds to cache the successful lookup.
> The default value for many JVMs, {{-1}}, indicates that the lookup should be
> cached forever.
> Because resources in Oracle Cloud Infrastructure use DNS names that can
> change, we recommend that you change the the TTL value to 60 seconds. This
> ensures that the new IP address for the resource is returned on next DNS
> query. You can change this value globally or specifically for your
> application:
> {quote} *
> {quote}To set TTL globally for all applications using the JVM, add the
> following in the {{$JAVA_HOME/jre/lib/security/java.security}} file:
> {{networkaddress.cache.ttl=60}}{quote}
> *
> {quote}To set TTL only for your application, set the following in your
> application's initialization code:
> {{java.security.Security.setProperty("networkaddress.cache.ttl" ,
> "60");}}{quote}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)