EHC ❯ Localhost interface alias
-
Bug
-
Status: In Progress
-
2 Major
-
Resolution:
-
ehcache-core
-
-
reinra
-
Reporter: reinra
-
May 16, 2011
-
0
-
Watchers: 3
-
March 28, 2013
-
Description
Environment: ColorCache sample application Java 1.6.0_24 Mac OS X 10.6.7
Error stacktrace:
java.lang.ArrayIndexOutOfBoundsException: 0
at java.net.InetAddress.getLocalHost(InetAddress.java:1356)
at com.tc.config.schema.dynamic.ParameterSubstituter.getIpAddress(ParameterSubstituter.java:173)
at com.tc.config.schema.dynamic.ParameterSubstituter.substitute(ParameterSubstituter.java:52)
at com.tc.object.config.schema.L2DSOConfigObject.initializeNameAndHost(L2DSOConfigObject.java:216)
at com.tc.object.config.schema.L2DSOConfigObject.initializeServers(L2DSOConfigObject.java:135)
at com.tc.config.schema.setup.StandardXMLFileConfigurationCreator.getConfigFromSourceStream(StandardXMLFileConfigurationCreator.java:495)
at com.tc.config.schema.setup.StandardXMLFileConfigurationCreator.loadConfigurationData(StandardXMLFileConfigurationCreator.java:405)
at com.tc.config.schema.setup.StandardXMLFileConfigurationCreator.loadConfigDataFromSources(StandardXMLFileConfigurationCreator.java:218)
at com.tc.config.schema.setup.StandardXMLFileConfigurationCreator.loadConfigAndSetIntoRepositories(StandardXMLFileConfigurationCreator.java:116)
at com.tc.config.schema.setup.StandardXMLFileConfigurationCreator.createConfigurationIntoRepositories(StandardXMLFileConfigurationCreator.java:98)
at com.tc.config.schema.setup.BaseConfigurationSetupManager.runConfigurationCreator(BaseConfigurationSetupManager.java:122)
at com.tc.config.schema.setup.L2ConfigurationSetupManagerImpl.
Steps to reproduce:
- Add an alias to your localhost interface: sudo ifconfig lo0 alias 10.1.1.1
- Turn AirPort Off: sudo ifconfig en1 down
- Start the Sample Server: ehcache-2.4.2/samples/colorcache/bin/start-sample-server.sh
Comments
Tim Eck 2011-05-16
Fiona OShea 2011-05-17
Please review Tim’s comments
Rein Raudjarv 2011-05-18
Thanks for a quick response and sorry for my delay!
I understand that the particular error comes from the JDK library code. However I am interested in using EHCache when I’m offline (e.g. in a plane) and using a localhost interface alias. Is there an option I could for example skip this failing JDK invocation?
The actual problem I have is related to Play framework which uses EHCache: http://play.lighthouseapp.com/projects/57987/tickets/813-unexpected-error-with-localhost-interface-aliases If there’s a good way to configure EHCache to be used offline it could solve the issue.
Tim Eck 2011-05-18
Okee doke. Well it seem there are maybe 3 unique issues at hand.
The first is the problem inherit in the JDK code. Not sure if that is bug for apple or oracle or both, but obviously not for terracotta.
The ticket on the play site is actually a different code path than the one reported here. This one has to do with the terracotta server whereas the other one is the ehcache-core library.
You should be able to workaround the terracotta server issue by providing a tc-config.xml where the
The code in ehcache-core [net.sf.ehcache.Cache.
In general I’m not too wild about adding too many workarounds and would rather concentrate on getting the core problem fixed in the JDK or finding a way to avoid it.
Eugene Shelestovich 2013-03-28
Looks like a known bug on Mac OS X Lion (http://stackoverflow.com/questions/7892609/inetaddress-getlocalhost-resolution-on-osx-lion-when-offline). A temporary workaround is to run:
sudo ifconfig en0 alias 127.0.0.1
on a client machine.
It is fixed in rev 22522 by substituting a localhost IP address in case of ArrayIndexOutOfBoundsException.
Eugene Shelestovich 2013-03-28
For some reason I cannot put the ticket in a resolved state.
I don’t quite understand why this would be considered a ehcache/terracotta bug.
I suppose we could fail with a more meaningful exception, but the problem lies in the core JDK library code and/or your local configuration. You don’t need anything related to ehcache to reproduce the exception.