Hi,
I'm having a problem with OpenFire 3.9.1 on a Debian7 System running with Java 1.7.0_40 Oracle Corporation -- Java HotSpot(TM) 64-Bit Server VM (more details provideable).
My Server uses a dualstack setup with IPv4 and IPv6. The file /etc/resolv.conf contains several IPv4 DNS Servers and two IPv6 servers as well.
# nameserver config
nameserver 2xx.xxx.yyy.99
nameserver 2xx.xxx.yyy.100
nameserver 2xx.xxx.yyy.98
nameserver 8.8.8.8
nameserver 8.8.4.4
#nameserver 2axx:yyy:0:zzzz::add:9898
#nameserver 2axx:yyy:0:zzzz::add:9999
#nameserver 2axx:yyy:0:zzzz::add:1010
(x, y and z's inserted for obfuscation of real IPs )
This gives the following errors in the error.log file:
2014.02.20 19:18:39 org.jivesoftware.openfire.session.LocalOutgoingServerSession - Error authenticating domain with remote server: gmail.com
java.lang.NumberFormatException: For input string: "yyy:0:zzzz::add:9898"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at com.sun.jndi.dns.DnsClient.<init>(DnsClient.java:122)
at com.sun.jndi.dns.Resolver.<init>(Resolver.java:61)
at com.sun.jndi.dns.DnsContext.getResolver(DnsContext.java:570)
at com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:430)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContex t.java:231)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompos iteDirContext.java:139)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompos iteDirContext.java:127)
at javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:1 42)
at org.jivesoftware.openfire.net.DNSUtil.srvLookup(DNSUtil.java:192)
at org.jivesoftware.openfire.net.DNSUtil.resolveXMPPDomain(DNSUtil.java:124)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSess ion(LocalOutgoingServerSession.java:270)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain (LocalOutgoingServerSession.java:167)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:261)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:238)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
So, the first part of the address is missing - it seems the IPv6 address is being interpreted as IPv4 + Port or something like that.
After I removed the IPv6 addresses from resolv.conf, everything works as expected - but thats not a real solution for me.
Is this a bug? How can this behaviour be fixed?
Thanks!