Da fummle ich gerade mit dem Jabber / XMPP Server Openfire herum und stoße auf einen etwas nervigen Bug. Das Teil hat nämlich ein kleines Problem, wenn man als Nameserver in seinem System den localhost als IPv6 Adresse eingetragen hat.

Zur besseren Identifikation, im ErrorLog (/var/log/openfire/error.log)von Openfire finden sich dann Meldungen wie diese:

2014.06.15 22:48:35 org.jivesoftware.openfire.session.LocalOutgoingServerSession - Error authenticating domain with remote server: jabber.ccc.de
java.lang.NumberFormatException: For input string: ":1"
        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:125)
        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(ComponentDirContext.java:231)
        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:139)
        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:127)
        at javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:142)
        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.createOutgoingSession(LocalOutgoingServerSession.java:270)
        at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain(LocalOutgoingServerSession.java:167)
        at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPacket(OutgoingSessionPromise.java:261)
        at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(OutgoingSessionPromise.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:745)

Zum lösen muss also nur in die /etc/resolf.conf der Nameserver von ::1 auf 127.0.0.1 umgestellt werden.

Immer diese Kackbugs hinsichtlich IPv6. Hoffentlich arbeiten so langsam mal mehr mit IPv6, damit die Fehler schneller gefunden und gefixt werden. Ich hasse es an so etwas hängen zu bleiben, da ich es so unnötig finde!

Fertig…