Server attempts S2S connections for unavailable registered ext. components

Synopsis[/b]

Even though an external component is registered to handle a specific subdomain, the server seems to intent S2S Connections when the component is not available. Given that there is prior knowledge (the component registration), the server should probably not intend to make such connections.

Configuration[/b]

Wildfire 2.5.0

An external component is registered for the subdomain “terminal”.

Problem Details[/b]

I have an external component that provides information to subscribed users. If a user logs in to

Wildfire and the component is down for whatever reason (in this case it is for reproduction

of the problem), the implementation will attempt to open an S2S connection to route a presence probe and fails.

Given that the registration information of external components is available I think the server should not attempt such S2S connections for component registered domains. I am not sure whether it is just a bug or it would be as well an enhancement (e.g. additional logic for handling unavailable but registered external components). At least it would be good to take a look.

Related Log Entries[/i]

From ERROR and DEBUG (in that order):

2006.03.13 12:34:50 org.jivesoftware.wildfire.server.OutgoingServerSession.createOutgoingSession(Out goingServerSession.java:258) Error trying to connect to remote server: terminal.grisu.local(DNS lookup: terminal.grisu.local:5269)

java.net.UnknownHostException: terminal.grisu.local

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:428)

at java.net.Socket.connect(Socket.java:507)

at org.jivesoftware.wildfire.server.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:253)

at org.jivesoftware.wildfire.server.OutgoingServerSession.authenticateDomain(Outgo ingServerSession.java:139)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.createSessionAndSendPac ket(OutgoingSessionPromise.java:126)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.access$300(OutgoingSess ionPromise.java:37)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise$1$1.run(OutgoingSession Promise.java:91)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

at java.lang.Thread.run(Thread.java:613)

2006.03.13 12:34:38 OS - Trying to connect to terminal.grisu.local:5269

2006.03.13 12:34:50 Error sending packet to remote server:

java.lang.Exception: Failed to create connection to remote server

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.createSessionAndSendPac ket(OutgoingSessionPromise.java:139)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.access$300(OutgoingSess ionPromise.java:37)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise$1$1.run(OutgoingSession Promise.java:91)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java: 650)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

at java.lang.Thread.run(Thread.java:613)

Best regards,

Dieter