Project

General

Profile

is a shared database needed for clustering?

Justin Karneges
Added almost 4 years ago

I'm running Tigase without a shared database. Probably Derby is being used but really there is nothing in it. I use --vhost-repo-class to supply domains, and only anonymous user auth is supported. There are no rosters nor offline messages.

However, I'm having trouble with cluster mode. There are two servers, each have their own hostname, and I'm specifying both nodes (and passwords) with --cluster-nodes in the init.properties files on each server.

I've noticed that a message sent to one tigase instance but destined for a user connected on the other tigase instance will return a recipient-unavailable error response. Just wanted to check if this problem might result from having no shared database (in case it is used for node coordination).

(running 5.2.3 in case it makes a difference)

Thanks!


Replies (12)

Added by Wojciech Kapcia TigaseTeam almost 4 years ago

In case you specify nodes manually and enforce passwords then you would not need shared repository. Please make sure, that the cluster nodes hostnames match the FQDN hostnames of the machines, that they are resolvable and Tigase instances can and do establish connection.

Added by Justin Karneges almost 4 years ago

Yep, the hostnames ('s12' and 's13') are resolvable to each other (they are in /etc/hosts of each node), and running 'hostname' on each node returns the correct name. Config looks like this:

--cluster-mode=true

--cluster-nodes=s12:password,s13:password

I'm not sure if Tigase is listening on its cluster port. By using netstat, before and after launch, I can determine that Tigase is listening on ports 5222, 5223, 5269, 5280, and 5290. But these ports all have other meanings. Notably it is not listening on port 5277, which I believe is the default cluster port?

Added by Justin Karneges almost 4 years ago

Possibly relevant:

2014-12-22 18:53:54.328 [main]             ClusterConnectionManager.getDefaults()  SEVERE: Can not instantiate items repository for class: null
java.lang.NullPointerException
        at java.util.regex.Matcher.getTextLength(Matcher.java:1234)
        at java.util.regex.Matcher.reset(Matcher.java:308)
        at java.util.regex.Matcher.<init>(Matcher.java:228)
        at java.util.regex.Pattern.matcher(Pattern.java:1088)
        at java.util.regex.Pattern.matches(Pattern.java:1129)
        at tigase.db.RepositoryFactory.getRepoClass(RepositoryFactory.java:492)
        at tigase.cluster.ClusterConnectionManager.getDefaults(ClusterConnectionManager.java:620)
        at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:553)
        at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:183)
        at tigase.conf.Configurator.componentAdded(Configurator.java:50)
        at tigase.conf.Configurator.componentAdded(Configurator.java:33)
        at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116)
        at tigase.server.MessageRouter.addComponent(MessageRouter.java:108)
        at tigase.server.MessageRouter.addRouter(MessageRouter.java:145)
        at tigase.server.MessageRouter.setProperties(MessageRouter.java:807)
        at tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:580)
        at tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:183)
        at tigase.conf.Configurator.componentAdded(Configurator.java:50)
        at tigase.conf.Configurator.componentAdded(Configurator.java:33)
        at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:116)
        at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:131)
        at tigase.server.MessageRouter.setConfig(MessageRouter.java:700)
        at tigase.server.XMPPServer.start(XMPPServer.java:142)
        at tigase.server.XMPPServer.main(XMPPServer.java:112)

Added by Wojciech Kapcia TigaseTeam almost 4 years ago

Care to share your init.properties file? Are there any other exceptions?

Added by Justin Karneges almost 4 years ago

Alright it seems there was some problem elsewhere in my config. For testing purposes, I've reduced to a minimal config that works:

config-type=--gen-config-def
--virt-hosts=anon.example.com:+anon
--tls-jdk-nss-bug-workaround-active=true
--cluster-mode=true
--cluster-nodes=s12:password,s13:password
--debug=server
--vhost-anonymous-enabled=false
--vhost-register-enabled=false
message-router/components/msg-receivers/ext-comp.active[B]=false

Now each Tigase listens on port 5277 and clustered routing works. I can connect a client to each node (anonymous login) and send between them.

Next to figure out why the additional config breaks clustering.

Added by Wojciech Kapcia TigaseTeam almost 4 years ago

You've seemed to strip repository configuration, and this is the part that breaks the clustering. Have you made changes in that area?

Added by Justin Karneges almost 4 years ago

I have several customizations. First, I had actually patched Tigase itself:

https://github.com/fanout/tigase-server/compare/route_fix

I've reverted to the official tigase-server.jar and that was enough to fix clustering. So this patch must break cluster setup somehow.

There is also a custom VHostRepository class and the zrouter component. These don't seem to impact clustering ability, but unfortunately zrouter is unable to send messages to clients across nodes. Messages between clients across nodes works fine.

Here is the complete config:

config-type=--gen-config-def
--virt-hosts=api.example.com:comps=zrouter,pubsub.example.com:comps=zrouter,anon.example.com:+anon
--tls-jdk-nss-bug-workaround-active=true
--cluster-mode=true
--cluster-nodes=s12:password,s13:password
--debug=server
--debug-packages=fanout.tigase.ZmqRouter,fanout.tigase.VHostFileRepository
--vhost-anonymous-enabled=false
--vhost-register-enabled=false
--vhost-repo-class=fanout.tigase.VHostFileRepository
--vhost-file=/opt/tigase/etc/domains
--vhost-file-interval=30
--vhost-file-comp=zrouter
message-router/components/msg-receivers/ext-comp.active[B]=false
--comp-name-1=zrouter
--comp-class-1=fanout.tigase.ZmqRouter
zrouter/num-threads[I]=10
zrouter/in-spec=tcp://127.0.0.1:9200
zrouter/out-spec=tcp://127.0.0.1:9201
--tigase.xmpp.elements_number_limit=50000

VHostFileRepository reads a text file of domains on an interval, and adds/removes domains within tigase as necessary. The --vhost-file-comp part is significant. It means that every domain in this list is handled by zrouter.

The intent with this config is that the api domain, pubsub domain, and all domains discovered by VHostFileRepository should be handled by zrouter. The earlier route_fix patch makes it so Tigase doesn't hijack disco packets. This way zrouter can respond to disco packets on its own.

So I think the first issue to figure out is why zrouter can't send messages across the cluster. Code for the component is here:

https://github.com/fanout/tigase-zmq

https://github.com/fanout/tigase-zmq/blob/master/src/ZmqRouter.java

For example, if a client connects to s13, and the zrouter of s12 tries to send a stanza with from="pubsub.example.com", then the tigase on s12 returns recipient unavailable rather than routing to s13.

Added by Justin Karneges almost 4 years ago

I even tried removing the :comps=zrouter suffix on the pubsub.example.com domain and it had no effect.

Here's a log of zrouter on s12 trying to send a stanza (with from="pubsub.example.com") to a client on s13:

2014-12-22 21:11:22.534 [Thread-155]       ZmqRouter.processOutboundPacket()  FINEST:   outbound packet: from=null, to=null, DATA=<message xmlns="jabber:client" from="pubsub.example.com" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therez</body></message>, SIZE=160, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null
2014-12-22 21:11:22.534 [in_3-message-router]  MessageRouter.processPacket()  FINEST:   Processing packet: from=null, to=null, DATA=<message xmlns="jabber:client" from="pubsub.example.com" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therez</body></message>, SIZE=160, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null
2014-12-22 21:11:22.535 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Called for : 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1
2014-12-22 21:11:22.535 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: None compId matches (fast lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {c2s@s12=tigase.cluster.ClientConnectionClustered@12a9a994, s2s@s12=tigase.cluster.S2SConnectionClustered@3b837834, ws2s@s12=tigase.cluster.WebSocketClientConnectionClustered@72e99437, basic-conf@s12=tigase.conf.Configurator@10786bdf, stats@s12=tigase.stats.StatisticsCollector@1f6aa236, sess-man@s12=tigase.cluster.SessionManagerClustered@5bf196f2, cl-comp@s12=tigase.cluster.ClusterConnectionManager@d8e2489, bosh@s12=tigase.cluster.BoshConnectionClustered@5d30cd23, zrouter@s12=fanout.tigase.ZmqRouter@31350c67, vhost-man@s12=tigase.cluster.VHostManagerClustered@51f205eb, cluster-contr@s12=tigase.cluster.ClusterController@23aaa07f, amp@s12=tigase.server.amp.AmpComponent@40f3a5a5, monitor@s12=tigase.cluster.MonitorClustered@30d091c0}
2014-12-22 21:11:22.562 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Still no comp name matches (VHost lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, for all VHosts: {3}
2014-12-22 21:11:22.562 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Component match failed: 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for comp: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, basename: example.com
2014-12-22 21:11:22.562 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Called for : 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1
2014-12-22 21:11:22.563 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: None compId matches (fast lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {c2s@s12=tigase.cluster.ClientConnectionClustered@12a9a994, s2s@s12=tigase.cluster.S2SConnectionClustered@3b837834, ws2s@s12=tigase.cluster.WebSocketClientConnectionClustered@72e99437, basic-conf@s12=tigase.conf.Configurator@10786bdf, stats@s12=tigase.stats.StatisticsCollector@1f6aa236, sess-man@s12=tigase.cluster.SessionManagerClustered@5bf196f2, cl-comp@s12=tigase.cluster.ClusterConnectionManager@d8e2489, bosh@s12=tigase.cluster.BoshConnectionClustered@5d30cd23, zrouter@s12=fanout.tigase.ZmqRouter@31350c67, vhost-man@s12=tigase.cluster.VHostManagerClustered@51f205eb, cluster-contr@s12=tigase.cluster.ClusterController@23aaa07f, amp@s12=tigase.server.amp.AmpComponent@40f3a5a5, monitor@s12=tigase.cluster.MonitorClustered@30d091c0}
2014-12-22 21:11:22.564 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Still no comp name matches (VHost lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, for all VHosts: {3}
2014-12-22 21:11:22.564 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Component match failed: 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for comp: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, basename: example.com
2014-12-22 21:11:22.564 [in_3-message-router]  MessageRouter.processPacket()  FINEST:   2. Packet will be processed by: sess-man@s12, from=null, to=null, DATA=<message xmlns="jabber:client" from="pubsub.example.com" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therez</body></message>, SIZE=160, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null
2014-12-22 21:11:22.565 [in_7-sess-man]    SessionManager.getXMPPResourceConnection()  FINEST: Searching for resource connection for: 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1
2014-12-22 21:11:22.566 [in_7-sess-man]    SessionManager.processPacket()     FINEST:   processing packet: from=null, to=sess-man@s12, DATA=<message xmlns="jabber:client" from="pubsub.example.com" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>CData size: 12</body></message>, SIZE=160, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null, connection: null
2014-12-22 21:11:22.566 [in_7-sess-man]    SessionManager.walk()              FINEST:   XMPPProcessorIfc: MessageAmp (amp)Request: from=null, to=sess-man@s12, DATA=<message xmlns="jabber:client" from="pubsub.example.com" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therez</body></message>, SIZE=160, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null, conn: null
2014-12-22 21:11:22.567 [in_7-sess-man]    SessionManager.walk()              FINEST:   XMPPProcessorIfc: MessageCarbons (message-carbons)Request: from=null, to=sess-man@s12, DATA=<message xmlns="jabber:client" from="pubsub.example.com" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therez</body></message>, SIZE=160, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null, conn: null
2014-12-22 21:11:22.568 [in_7-sess-man]    SessionManager.processPacket()     FINEST:   Packet processed by: [amp, message-carbons]
2014-12-22 21:11:22.568 [in_3-message-router]  MessageRouter.processPacket()  FINEST:   Processing packet: from=sess-man@s12, to=pubsub.example.com, DATA=<message from="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1" to="pubsub.example.com" xmlns="jabber:client" type="error"><body>hello therez</body><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">The recipient is no longer available.</text></error></message>, SIZE=387, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error
2014-12-22 21:11:22.569 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Called for : pubsub.example.com
2014-12-22 21:11:22.569 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: None compId matches (fast lookup): pubsub.example.com, for map: {c2s@s12=tigase.cluster.ClientConnectionClustered@12a9a994, s2s@s12=tigase.cluster.S2SConnectionClustered@3b837834, ws2s@s12=tigase.cluster.WebSocketClientConnectionClustered@72e99437, basic-conf@s12=tigase.conf.Configurator@10786bdf, stats@s12=tigase.stats.StatisticsCollector@1f6aa236, sess-man@s12=tigase.cluster.SessionManagerClustered@5bf196f2, cl-comp@s12=tigase.cluster.ClusterConnectionManager@d8e2489, bosh@s12=tigase.cluster.BoshConnectionClustered@5d30cd23, zrouter@s12=fanout.tigase.ZmqRouter@31350c67, vhost-man@s12=tigase.cluster.VHostManagerClustered@51f205eb, cluster-contr@s12=tigase.cluster.ClusterController@23aaa07f, amp@s12=tigase.server.amp.AmpComponent@40f3a5a5, monitor@s12=tigase.cluster.MonitorClustered@30d091c0}
2014-12-22 21:11:22.570 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Still no comp name matches (VHost lookup): pubsub.example.com, for map: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, for all VHosts: {3}
2014-12-22 21:11:22.570 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Component match failed: pubsub.example.com, for comp: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, basename: example.com
2014-12-22 21:11:22.570 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Called for : pubsub.example.com
2014-12-22 21:11:22.571 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: None compId matches (fast lookup): pubsub.example.com, for map: {c2s@s12=tigase.cluster.ClientConnectionClustered@12a9a994, s2s@s12=tigase.cluster.S2SConnectionClustered@3b837834, ws2s@s12=tigase.cluster.WebSocketClientConnectionClustered@72e99437, basic-conf@s12=tigase.conf.Configurator@10786bdf, stats@s12=tigase.stats.StatisticsCollector@1f6aa236, sess-man@s12=tigase.cluster.SessionManagerClustered@5bf196f2, cl-comp@s12=tigase.cluster.ClusterConnectionManager@d8e2489, bosh@s12=tigase.cluster.BoshConnectionClustered@5d30cd23, zrouter@s12=fanout.tigase.ZmqRouter@31350c67, vhost-man@s12=tigase.cluster.VHostManagerClustered@51f205eb, cluster-contr@s12=tigase.cluster.ClusterController@23aaa07f, amp@s12=tigase.server.amp.AmpComponent@40f3a5a5, monitor@s12=tigase.cluster.MonitorClustered@30d091c0}
2014-12-22 21:11:22.571 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Still no comp name matches (VHost lookup): pubsub.example.com, for map: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, for all VHosts: {3}
2014-12-22 21:11:22.571 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Component match failed: pubsub.example.com, for comp: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, basename: example.com
2014-12-22 21:11:22.571 [in_3-message-router]  MessageRouter.processPacket()  FINEST:   2. Packet will be processed by: sess-man@s12, from=sess-man@s12, to=pubsub.example.com, DATA=<message from="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1" to="pubsub.example.com" xmlns="jabber:client" type="error"><body>hello therez</body><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">The recipient is no longer available.</text></error></message>, SIZE=387, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error
2014-12-22 21:11:22.572 [in_3-sess-man]    SessionManager.getXMPPResourceConnection()  FINEST: Searching for resource connection for: pubsub.example.com
2014-12-22 21:11:22.572 [in_3-sess-man]    SessionManager.processPacket()     FINEST:   processing packet: from=sess-man@s12, to=sess-man@s12, DATA=<message from="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1" to="pubsub.example.com" xmlns="jabber:client" type="error"><body>CData size: 12</body><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">CData size: 37</text></error></message>, SIZE=387, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error, connection: user_jid=sess-man@s12, packets=0, connectioId=null, domain=s12, authState=NOT_AUTHORIZED, isAnon=false, isTmp=false
2014-12-22 21:11:22.573 [in_3-sess-man]    SessionManager.walk()              FINEST:   XMPPProcessorIfc: MessageAmp (amp)Request: from=sess-man@s12, to=sess-man@s12, DATA=<message from="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1" to="pubsub.example.com" xmlns="jabber:client" type="error"><body>hello therez</body><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">The recipient is no longer available.</text></error></message>, SIZE=387, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error, conn: user_jid=sess-man@s12, packets=1, connectioId=null, domain=s12, authState=NOT_AUTHORIZED, isAnon=false, isTmp=false
2014-12-22 21:11:22.573 [amp Queue Worker 0]  Message.process()               WARNING:  NotAuthorizedException for packet: from=sess-man@s12, to=sess-man@s12, DATA=<message from="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1" to="pubsub.example.com" xmlns="jabber:client" type="error"><body>hello therez</body><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">The recipient is no longer available.</text></error></message>, SIZE=387, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error
2014-12-22 21:11:22.574 [amp Queue Worker 0]  SessionManager$ProcessorWorkerThread.process()  INFO: Already error packet, ignoring: from=sess-man@s12, to=sess-man@s12, DATA=<message from="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1" to="pubsub.example.com" xmlns="jabber:client" type="error"><body>CData size: 12</body><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">CData size: 37</text></error></message>, SIZE=387, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error
2014-12-22 21:11:22.575 [in_3-sess-man]    SessionManager.walk()              FINEST:   XMPPProcessorIfc: MessageCarbons (message-carbons)Request: from=sess-man@s12, to=sess-man@s12, DATA=<message from="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1" to="pubsub.example.com" xmlns="jabber:client" type="error"><body>hello therez</body><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">The recipient is no longer available.</text></error></message>, SIZE=387, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error, conn: user_jid=sess-man@s12, packets=1, connectioId=null, domain=s12, authState=NOT_AUTHORIZED, isAnon=false, isTmp=false
2014-12-22 21:11:22.576 [in_3-sess-man]    SessionManager.processPacket()     INFO:     Impossible happened, please report to developer packet: from=sess-man@s12, to=sess-man@s12, DATA=<message from="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1" to="pubsub.example.com" xmlns="jabber:client" type="error"><body>hello therez</body><error code="404" type="wait"><recipient-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">The recipient is no longer available.</text></error></message>, SIZE=387, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error, connection: user_jid=sess-man@s12, packets=1, connectioId=null, domain=s12, authState=NOT_AUTHORIZED, isAnon=false, isTmp=false.
2014-12-22 21:11:22.576 [in_3-sess-man]    SessionManager.processPacket()     FINEST:   Packet processed by: [amp, message-carbons]

"Impossible happened"... That sounds fun. ;)

To be clear, this is with the official tigase, not my patched version.

Added by Justin Karneges almost 4 years ago

For comparison, here is a client from s12 sending to a client on s13, which does work:

2014-12-22 21:12:10.777 [in_0-message-router]  MessageRouter.processPacket()  FINEST:   Processing packet: from=c2s@s12/0:0:0:0:0:0:0:1_5222_0:0:0:0:0:0:0:1_31683, to=sess-man@s12, DATA=<message xmlns="jabber:client" xml:lang="en" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therey</body></message>, SIZE=148, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null
2014-12-22 21:12:10.777 [in_0-message-router]  MessageRouter.getLocalComponent()  FINEST: Called for : 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1
2014-12-22 21:12:10.777 [in_0-message-router]  MessageRouter.getLocalComponent()  FINEST: None compId matches (fast lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {c2s@s12=tigase.cluster.ClientConnectionClustered@12a9a994, s2s@s12=tigase.cluster.S2SConnectionClustered@3b837834, ws2s@s12=tigase.cluster.WebSocketClientConnectionClustered@72e99437, basic-conf@s12=tigase.conf.Configurator@10786bdf, stats@s12=tigase.stats.StatisticsCollector@1f6aa236, sess-man@s12=tigase.cluster.SessionManagerClustered@5bf196f2, cl-comp@s12=tigase.cluster.ClusterConnectionManager@d8e2489, bosh@s12=tigase.cluster.BoshConnectionClustered@5d30cd23, zrouter@s12=fanout.tigase.ZmqRouter@31350c67, vhost-man@s12=tigase.cluster.VHostManagerClustered@51f205eb, cluster-contr@s12=tigase.cluster.ClusterController@23aaa07f, amp@s12=tigase.server.amp.AmpComponent@40f3a5a5, monitor@s12=tigase.cluster.MonitorClustered@30d091c0}
2014-12-22 21:12:10.778 [in_0-message-router]  MessageRouter.getLocalComponent()  FINEST: Still no comp name matches (VHost lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, for all VHosts: {3}
2014-12-22 21:12:10.778 [in_0-message-router]  MessageRouter.getLocalComponent()  FINEST: Component match failed: 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for comp: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, basename: example.com
2014-12-22 21:12:10.778 [in_0-message-router]  MessageRouter.getLocalComponent()  FINEST: Called for : sess-man@s12
2014-12-22 21:12:10.778 [in_0-message-router]  MessageRouter.processPacket()  FINEST:   1. Packet will be processed by: sess-man@s12, from=c2s@s12/0:0:0:0:0:0:0:1_5222_0:0:0:0:0:0:0:1_31683, to=sess-man@s12, DATA=<message xmlns="jabber:client" xml:lang="en" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therey</body></message>, SIZE=148, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null
2014-12-22 21:12:10.779 [in_0-sess-man]    SessionManager.processPacket()     FINEST:   processing packet: from=c2s@s12/0:0:0:0:0:0:0:1_5222_0:0:0:0:0:0:0:1_31683, to=sess-man@s12, DATA=<message xmlns="jabber:client" xml:lang="en" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>CData size: 12</body></message>, SIZE=148, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null, connection: user_jid=e2da883c-f0e1-41a5-957a-9f723b4794d3@anon.example.com/tigase-1, packets=4, connectioId=c2s@s12/0:0:0:0:0:0:0:1_5222_0:0:0:0:0:0:0:1_31683, domain=anon.example.com, authState=AUTHORIZED, isAnon=true, isTmp=false
2014-12-22 21:12:10.779 [in_0-sess-man]    PacketDefaultHandler.preprocess()  FINEST:   Setting correct from attribute: e2da883c-f0e1-41a5-957a-9f723b4794d3@anon.example.com/tigase-1
2014-12-22 21:12:10.780 [in_0-sess-man]    SessionManager.walk()              FINEST:   XMPPProcessorIfc: MessageAmp (amp)Request: from=c2s@s12/0:0:0:0:0:0:0:1_5222_0:0:0:0:0:0:0:1_31683, to=sess-man@s12, DATA=<message xmlns="jabber:client" xml:lang="en" from="e2da883c-f0e1-41a5-957a-9f723b4794d3@anon.example.com/tigase-1" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therey</body></message>, SIZE=218, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null, conn: user_jid=e2da883c-f0e1-41a5-957a-9f723b4794d3@anon.example.com/tigase-1, packets=5, connectioId=c2s@s12/0:0:0:0:0:0:0:1_5222_0:0:0:0:0:0:0:1_31683, domain=anon.example.com, authState=AUTHORIZED, isAnon=true, isTmp=false
2014-12-22 21:12:10.781 [in_3-message-router]  MessageRouter.processPacket()  FINEST:   Processing packet: from=sess-man@s12, to=null, DATA=<message xmlns="jabber:client" xml:lang="en" from="e2da883c-f0e1-41a5-957a-9f723b4794d3@anon.example.com/tigase-1" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therey</body></message>, SIZE=218, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=ANONYM, TYPE=null
2014-12-22 21:12:10.781 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Called for : 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1
2014-12-22 21:12:10.782 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: None compId matches (fast lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {c2s@s12=tigase.cluster.ClientConnectionClustered@12a9a994, s2s@s12=tigase.cluster.S2SConnectionClustered@3b837834, ws2s@s12=tigase.cluster.WebSocketClientConnectionClustered@72e99437, basic-conf@s12=tigase.conf.Configurator@10786bdf, stats@s12=tigase.stats.StatisticsCollector@1f6aa236, sess-man@s12=tigase.cluster.SessionManagerClustered@5bf196f2, cl-comp@s12=tigase.cluster.ClusterConnectionManager@d8e2489, bosh@s12=tigase.cluster.BoshConnectionClustered@5d30cd23, zrouter@s12=fanout.tigase.ZmqRouter@31350c67, vhost-man@s12=tigase.cluster.VHostManagerClustered@51f205eb, cluster-contr@s12=tigase.cluster.ClusterController@23aaa07f, amp@s12=tigase.server.amp.AmpComponent@40f3a5a5, monitor@s12=tigase.cluster.MonitorClustered@30d091c0}
2014-12-22 21:12:10.782 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Still no comp name matches (VHost lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, for all VHosts: {3}
2014-12-22 21:12:10.782 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Component match failed: 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for comp: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, basename: example.com
2014-12-22 21:12:10.782 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Called for : 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1
2014-12-22 21:12:10.783 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: None compId matches (fast lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {c2s@s12=tigase.cluster.ClientConnectionClustered@12a9a994, s2s@s12=tigase.cluster.S2SConnectionClustered@3b837834, ws2s@s12=tigase.cluster.WebSocketClientConnectionClustered@72e99437, basic-conf@s12=tigase.conf.Configurator@10786bdf, stats@s12=tigase.stats.StatisticsCollector@1f6aa236, sess-man@s12=tigase.cluster.SessionManagerClustered@5bf196f2, cl-comp@s12=tigase.cluster.ClusterConnectionManager@d8e2489, bosh@s12=tigase.cluster.BoshConnectionClustered@5d30cd23, zrouter@s12=fanout.tigase.ZmqRouter@31350c67, vhost-man@s12=tigase.cluster.VHostManagerClustered@51f205eb, cluster-contr@s12=tigase.cluster.ClusterController@23aaa07f, amp@s12=tigase.server.amp.AmpComponent@40f3a5a5, monitor@s12=tigase.cluster.MonitorClustered@30d091c0}
2014-12-22 21:12:10.783 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Still no comp name matches (VHost lookup): 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for map: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, for all VHosts: {3}
2014-12-22 21:12:10.783 [in_3-message-router]  MessageRouter.getLocalComponent()  FINEST: Component match failed: 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1, for comp: {cl-comp=tigase.cluster.ClusterConnectionManager@d8e2489, c2s=tigase.cluster.ClientConnectionClustered@12a9a994, basic-conf=tigase.conf.Configurator@10786bdf, s2s=tigase.cluster.S2SConnectionClustered@3b837834, cluster-contr=tigase.cluster.ClusterController@23aaa07f, bosh=tigase.cluster.BoshConnectionClustered@5d30cd23, vhost-man=tigase.cluster.VHostManagerClustered@51f205eb, sess-man=tigase.cluster.SessionManagerClustered@5bf196f2, ws2s=tigase.cluster.WebSocketClientConnectionClustered@72e99437, message-router=tigase.server.MessageRouter@6862b154, stats=tigase.stats.StatisticsCollector@1f6aa236, amp=tigase.server.amp.AmpComponent@40f3a5a5, monitor=tigase.cluster.MonitorClustered@30d091c0, zrouter=fanout.tigase.ZmqRouter@31350c67}, basename: example.com
2014-12-22 21:12:10.784 [in_3-message-router]  MessageRouter.processPacket()  FINEST:   2. Packet will be processed by: sess-man@s12, from=sess-man@s12, to=null, DATA=<message xmlns="jabber:client" xml:lang="en" from="e2da883c-f0e1-41a5-957a-9f723b4794d3@anon.example.com/tigase-1" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therey</body></message>, SIZE=218, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=ANONYM, TYPE=null
2014-12-22 21:12:10.784 [in_0-sess-man]    SessionManager.walk()              FINEST:   XMPPProcessorIfc: MessageCarbons (message-carbons)Request: from=c2s@s12/0:0:0:0:0:0:0:1_5222_0:0:0:0:0:0:0:1_31683, to=sess-man@s12, DATA=<message xmlns="jabber:client" xml:lang="en" from="e2da883c-f0e1-41a5-957a-9f723b4794d3@anon.example.com/tigase-1" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therey</body></message>, SIZE=218, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=null, conn: user_jid=e2da883c-f0e1-41a5-957a-9f723b4794d3@anon.example.com/tigase-1, packets=5, connectioId=c2s@s12/0:0:0:0:0:0:0:1_5222_0:0:0:0:0:0:0:1_31683, domain=anon.example.com, authState=AUTHORIZED, isAnon=true, isTmp=false
2014-12-22 21:12:10.784 [in_0-sess-man]    SessionManager.processPacket()     FINEST:   Packet processed by: [amp, message-carbons]
2014-12-22 21:12:10.785 [in_7-sess-man]    SessionManager.getXMPPResourceConnection()  FINEST: Searching for resource connection for: 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1
2014-12-22 21:12:10.786 [in_5-cl-comp]     ConnectionManager.writePacketToSocket()  FINEST: null, type: connect, Socket: nullSocket[addr=s13/10.0.1.110,port=5277,localport=33943], jid: null, Writing packet: from=null, to=null, DATA=<cluster id="cl-3" xmlns="tigase:cluster" from="sess-man@s12" to="sess-man@s13" type="set"><control><visited-nodes><node-id>sess-man@s12</node-id></visited-nodes><method-call name="packet-forward-sm-cmd"/><first-node>sess-man@s12</first-node></control><data><message xmlns="jabber:client" xml:lang="en" from="e2da883c-f0e1-41a5-957a-9f723b4794d3@anon.example.com/tigase-1" to="50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1"><body>hello therey</body></message></data></cluster>, SIZE=493, XMLNS=tigase:cluster, PRIORITY=CLUSTER, PERMISSION=NONE, TYPE=set
2014-12-22 21:12:10.800 [out_5-cl-comp]    SessionManager.getXMPPResourceConnection()  FINEST: Searching for resource connection for: 50726231-9cb6-4615-98f2-3c2d8e99cf53@anon.example.com/tigase-1

Added by Wojciech Kapcia TigaseTeam almost 4 years ago

  • on the s13 you send message without from hence it assigns another anon JID and both are valid hence no error is being returned

  • on s12 you set from=pubsub, there is no pubsub configured (and if it were then you would need to user either clustered pubsub or virtual component) therefore you recieve error;

  • The exception you recieved previously (not sure if it's the case later on as you don't mention it) is the result of missing --user-repo configuration therefore ClusterConnectionManager initialization fails (which would confirm your suspicion Notably it is not listening on port 5277, which I believe is the default cluster port?); my suggestion would be to create dummy derby repository and provide it in configuration (or you could try using @tigase.db.DummyRepository@).

Added by Justin Karneges almost 4 years ago

I'm not using Tigase's pubsub component, but my own custom component. In this case it is simply zrouter. This is what the configuration "pubsub.example.com:comps=zrouter" in --virt-hosts means. So it should be a valid address to use.

The exception I received earlier went away after I stopped using my patch to the server. So it seems --user-repo is not needed for clustering to work. Interestingly, I have a "tigase-derbydb" directory in my tigase directory. I don't remember setting this up. Maybe it is automatically created and used by default?

FWIW, I am now getting this exception though:

2014-12-23 19:05:15.219 [pool-12-thread-3]  SessionManager.walk()             FINEST:   XMPPProcessorIfc: MessageCarbons (message-carbons)Request: from=null, to=sess-man@s12, DATA=<message xmlns="jabber:client" type="normal" from="sess-man@api.example.com:comps=zrouter" id="sess-man1" to="admin@localhost"><body>Cluster node 's13' connected (Tue Dec 23 19:05:15 UTC 2014)
s13 connected to s12</body><subject>New cluster node connected: s13</subject><thread>xyz</thread></message>, SIZE=300, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=normal, conn: null
2014-12-23 19:05:15.220 [pool-12-thread-3]  ClusterConnectionManager.processHandshake()  SEVERE: Handshaking error.
java.lang.NullPointerException
        at tigase.xmpp.impl.OfflineMessages.savePacketForOffLineUser(OfflineMessages.java:300)
        at tigase.xmpp.impl.MessageAmp.postProcess(MessageAmp.java:193)
        at tigase.server.xmppsession.SessionManager.processPacket(SessionManager.java:1952)
        at tigase.cluster.SessionManagerClustered.processPacket(SessionManagerClustered.java:344)
        at tigase.cluster.SessionManagerClustered.processPacket(SessionManagerClustered.java:319)
        at tigase.server.xmppsession.SessionManager.sendToAdmins(SessionManager.java:2165)
        at tigase.cluster.SessionManagerClustered.sendAdminNotification(SessionManagerClustered.java:708)
        at tigase.cluster.SessionManagerClustered.nodeConnected(SessionManagerClustered.java:221)
        at tigase.cluster.ClusterController.nodeConnected(ClusterController.java:156)
        at tigase.cluster.ClusterConnectionManager.serviceConnected(ClusterConnectionManager.java:962)
        at tigase.cluster.ClusterConnectionManager.processHandshake(ClusterConnectionManager.java:1150)
        at tigase.cluster.ClusterConnectionManager.processSocketData(ClusterConnectionManager.java:459)
        at tigase.server.ConnectionManager.packetsReady(ConnectionManager.java:408)
        at tigase.server.ConnectionManager.packetsReady(ConnectionManager.java:63)
        at tigase.net.IOService.call(IOService.java:267)
        at tigase.net.IOService.call(IOService.java:104)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        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)

Looks like it's trying to save a cluster notification message to the admin user account. Seems harmless to me, though it would be nice to not have it appear.

Added by Wojciech Kapcia TigaseTeam almost 4 years ago

Justin Karneges wrote:

I'm not using Tigase's pubsub component, but my own custom component. In this case it is simply zrouter. This is what the configuration "pubsub.example.com:comps=zrouter" in --virt-hosts means. So it should be a valid address to use.

It depends. It's a vhost address so Tigase to match it either against .VHost or any user within such VHost (@VHost, in session manager). Given it's bare address without any user session you receive odd error when sending message (it's valid to send IQ to such address, but it's special case and it will be process within user session that has send the IQ).

The exception I received earlier went away after I stopped using my patch to the server. So it seems --user-repo is not needed for clustering to work. Interestingly, I have a "tigase-derbydb" directory in my tigase directory. I don't remember setting this up. Maybe it is automatically created and used by default?

No, Tigase doesn't create databases on it's own. There is a default Tigase tries to use when nothing is configured but it won't create it.

FWIW, I am now getting this exception though:

Looks like it's trying to save a cluster notification message to the admin user account. Seems harmless to me, though it would be nice to not have it appear.

You don't have database and you've configured admin account, and such accounts receive information about cluster connections. Given the admin is offline, there's an attempt to store such notification to offline storage, which fails.

    (1-12/12)