IM Gateway Plugin 1.1.0 Released!

So, i’m back with my odd problems (spark & gateway). If you remember i’ve had problem for a long time when some offline ICQ contact was appearing in General group. Cant say that this problem is gone. Is just this person is online everytime now. But now i got another problem (after installing 1.1.0) and it seems similar. Because it happens only after i launch Openfire and launch Spark for the first time. I see only Offline group, though my friend is saying i’m online. If i relogin everything is fine. This happens only after Openfire start and first Spark start.

Another one. If i logout in Spark and log back in, i get a lot of contacts in General group with Pending status. This problem dissapears after Openfire restart.

Openfire 3.3.2

Spark 2.5.5

IM Gateway 1.1.0

ICQ only

linuspoon wrote:

Hi,

Thanks for the 1.0.2 plugin. I’ll love to stay with release 1.1.0 to help you to debug and track down the problem. My problem is always when Pandion sets my status to auto-away due to inactivity, my MSN connection will disconnect (it should set my status as Idle but not disconnect). Even when I start using my system and Pandion’s status changes back to Available, my MSN connection do not come back.

Hrm. I will try out Pandion directly and see what I see. What OS and JRE are you running Openfire under?

Let me know how to start a debug for you to trace the problem.

The first step would be to enable debug logs from openfire and then send those logs to me (probably via email, jadestorm@nc.rr.com)

wroot wrote:

So, i’m back with my odd problems (spark & gateway). If you remember i’ve had problem for a long time when some offline ICQ contact was appearing in General group. Cant say that this problem is gone. Is just this person is online everytime now. But now i got another problem (after installing 1.1.0) and it seems similar. Because it happens only after i launch Openfire and launch Spark for the first time. I see only Offline group, though my friend is saying i’m online. If i relogin everything is fine. This happens only after Openfire start and first Spark start.

Yeah, like I said before, the transport itself has no control over whether contacts are put in the offline group or the general group. I think this is something that will need to be fixed/tracked down in Spark. I haven’t been able to reproduce it yet but maybe I should start using Spark more often to see if I can see it occur. … wait … back track. Are you saying the contact is appearing as if they are online? (ie not greyed out)

As for the new problem… man. Can you send me some debug logs from before you are logged in the first time and haven’t fired up Spark yet? Then maybe log out and log back in to where the groups are indeed filled in in their groups and send that log to me? Would you mind?

(BTW, I wonder if this is similar to what someone was talking about in one of the chats where the first time Spark was fired up it acted weird)

Another one. If i logout in Spark and log back in, i get a lot of contacts in General group with Pending status. This problem dissapears after Openfire restart.

Openfire 3.3.2

Spark 2.5.5

IM Gateway 1.1.0

ICQ only

Pending status? What the? I might be able to duplicate that. Let me try from home. (I need to start testing more with Spark I think, it sounds like a large portion of my user base uses Spark)

jadestorm wrote:

… wait … back track. Are you saying the contact is appearing as if they are online? (ie not greyed out)

No, this contact is offline, but appears in General group (there only online should be) and this contact doesnt have presence bubble next to it. It looks like offline contact, just for some reason put in General group.

As for the new problem… man. Can you send me some debug logs from before you are logged in the first time and haven’t fired up Spark yet? Then maybe log out and log back in to where the groups are indeed filled in in their groups and send that log to me? Would you mind?

have just send it to an address you have mentioned above

(BTW, I wonder if this is similar to what someone was talking about in one of the chats where the first time Spark was fired up it acted weird)

dont remember this chat, but i’m seeing this weird behaviour very often. Because at home i dont keep Openfire running all the time, it’s only for testing. So i’m launching it and then i launch Spark and see that behaviour, the next day i launch Openfire and launch Spark and see it again. Everytime i had to relogin. In normal environment (at work my server has month uptime sometimes) it wouldnt be so noticable.

Pending status? What the? I might be able to duplicate that. Let me try from home. (I need to start testing more with Spark I think, it sounds like a large portion of my user base uses Spark)

It shows some offline contacts in General group with “?” icon instead of presence and “Pending” next to nicknames. Maybe this contacts are waiting for authorisation or something, but i never saw such behaviour before.

Yeah, you should test more with Spark. Cause here at Jive people usually use Spark

wroot wrote:
jadestorm wrote:

… wait … back track. Are you saying the contact is appearing as if they are online? (ie not greyed out)

No, this contact is offline, but appears in General group (there only online should be) and this contact doesnt have presence bubble next to it. It looks like offline contact, just for some reason put in General group.

Ok, I believe that’s a Spark issue. I can’t answer why it’s a Spark issue, but… hell, how easy is it to reproduce? I might even look at Spark and offer a patch. 'cause I mean all I can tell Derek right now is that “something is causing an offline contact not to be moved to the offline group in Spark” but that’s not all that helpful unless I provide him with some more info.

As for the new problem… man. Can you send me some debug logs from before you are logged in the first time and haven’t fired up Spark yet? Then maybe log out and log back in to where the groups are indeed filled in in their groups and send that log to me? Would you mind?

have just send it to an address you have mentioned above

Awesome. Ok, so here’s what I saw in your logs. Both times the exact same things were sent via XMPP to your client. So it sounds like something is going on during the initialization process of Spark that first time that’s causing it not to pay attention or something. I can see all of the proper things being sent over to Spark though. =/ (at least from the perspective of the transport, the only grey area I can think of is that I don’t know that the actual “here’s your roster” traffic is properly being sent from Openfire to Spark… but I do know I’ve never seen this with Psi or Adium)

(BTW, I wonder if this is similar to what someone was talking about in one of the chats where the first time Spark was fired up it acted weird)

dont remember this chat, but i’m seeing this weird behaviour very often. Because at home i dont keep Openfire running all the time, it’s only for testing. So i’m launching it and then i launch Spark and see that behaviour, the next day i launch Openfire and launch Spark and see it again. Everytime i had to relogin. In normal environment (at work my server has month uptime sometimes) it wouldnt be so noticable.

This was related to logging in though. Something about first time it always failed to log in. None-the-less it might be a part of a bigger “soemthing isn’t getting loaded” problem. I really don’t know though. =/

Pending status? What the? I might be able to duplicate that. Let me try from home. (I need to start testing more with Spark I think, it sounds like a large portion of my user base uses Spark)

It shows some offline contacts in General group with “?” icon instead of presence and “Pending” next to nicknames. Maybe this contacts are waiting for authorisation or something, but i never saw such behaviour before.

I did add the ability for the transport to display pending ICQ contacts. ( known in the icq world as “awaiting authorization”) Is that what you are seeing?

Yeah, you should test more with Spark. Cause here at Jive people usually use Spark

hehehe yeah. It’s quite a nice client, I just have a lot of XMPP accounts. I could build myself a custom im gateway plugin that has like 8 copies of the XMPP transport. ;D ;D ;D

jadestorm wrote:

Ok, I believe that’s a Spark issue. I can’t answer why it’s a Spark issue, but… hell, how easy is it to reproduce? I might even look at Spark and offer a patch. 'cause I mean all I can tell Derek right now is that “something is causing an offline contact not to be moved to the offline group in Spark” but that’s not all that helpful unless I provide him with some more info.

Ah, never mind, that friend is 24/7 online now (away mostly) so it’s not bugging me now. just weird that this is happening only to ICQ contact, and only that one. But if i delete that contact then another offline contact will jump into General group. It’s like some spot in roster is damaged or what and every contact getting in that spot is taken to inpropriate place. Maybe i dont have to delete that contact though. Just add another contact, so all roster will push a little and other contact will get in that spot. I remember i have a thread about this in Spark Support forum, maybe even with Spark logs or debug log. Maybe some day i will bump it up.

I can see all of the proper things being sent over to Spark though. =/ (at least from the perspective of the transport, the only grey area I can think of is that I don’t know that the actual “here’s your roster” traffic is properly being sent from Openfire to Spark… but I do know I’ve never seen this with Psi or Adium)

Funny. I have done this again (launching Openfire, then launching Spark), and i’m seeing only offline group. It was collapsed. But now i had expanded it and i see my online contacts in there Somehow Spark is not creating General group to put these contacts in there. But with jabbers contacts everything is fine. And this new problem started after upgrading to 1.1.0. Maybe this is Spark problem. But i cant add anything else to that. There is nothing in Spark log. Maybe Openfire problem… But if i mention in Openfire forum, that this is happening only with transport contacts, Gato will send me to you

I did add the ability for the transport to display pending ICQ contacts. ( known in the icq world as “awaiting authorization”) Is that what you are seeing?

Maybe (though i cant do anything with them in Spark (no Authorize option). But i’m seeing this only after log out - log in. Just checked. I have never expanded offline group, and now i see these pending contacts in offline group. So this is similar to “offline contact” problem, just his time it happend after relogin, and not after the first launch after server launch.

hehehe yeah. It’s quite a nice client, I just have a lot of XMPP accounts. I could build myself a custom im gateway plugin that has like 8 copies of the XMPP transport. ;D ;D ;D

Yes. I’m still keeping Psi for all my xmpp accounts. But they are not realy important, so i’m going to leave only Spark. But i dont know how to check what version of gateway say igniterealtime.org server is using. Can i check it with Spark?

wroot wrote:
jadestorm wrote:

Ok, I believe that’s a Spark issue. I can’t answer why it’s a Spark issue, but… hell, how easy is it to reproduce? I might even look at Spark and offer a patch. 'cause I mean all I can tell Derek right now is that “something is causing an offline contact not to be moved to the offline group in Spark” but that’s not all that helpful unless I provide him with some more info.

Ah, never mind, that friend is 24/7 online now (away mostly) so it’s not bugging me now. just weird that this is happening only to ICQ contact, and only that one. But if i delete that contact then another offline contact will jump into General group. It’s like some spot in roster is damaged or what and every contact getting in that spot is taken to inpropriate place. Maybe i dont have to delete that contact though. Just add another contact, so all roster will push a little and other contact will get in that spot. I remember i have a thread about this in Spark Support forum, maybe even with Spark logs or debug log. Maybe some day i will bump it up.

Hehehe, well I would like to get to the bottom of it. That’s almost amusing though. So there’s like a slot that “must be filled” of a bad contact?

I can see all of the proper things being sent over to Spark though. =/ (at least from the perspective of the transport, the only grey area I can think of is that I don’t know that the actual “here’s your roster” traffic is properly being sent from Openfire to Spark… but I do know I’ve never seen this with Psi or Adium)

Funny. I have done this again (launching Openfire, then launching Spark), and i’m seeing only offline group. It was collapsed. But now i had expanded it and i see my online contacts in there Somehow Spark is not creating General group to put these contacts in there. But with jabbers contacts everything is fine. And this new problem started after upgrading to 1.1.0. Maybe this is Spark problem. But i cant add anything else to that. There is nothing in Spark log. Maybe Openfire problem… But if i mention in Openfire forum, that this is happening only with transport contacts, Gato will send me to you

lol well GATE-305 lets see what we can’t figure out. so they were all hidden in offline huh. The reverse of what’s going on above! weiiiiird! it almost sounds like the group … updating… something or other… in Spark isn’t keeping up.

I did add the ability for the transport to display pending ICQ contacts. ( known in the icq world as “awaiting authorization”) Is that what you are seeing?

Maybe (though i cant do anything with them in Spark (no Authorize option). But i’m seeing this only after log out - log in. Just checked. I have never expanded offline group, and now i see these pending contacts in offline group. So this is similar to “offline contact” problem, just his time it happend after relogin, and not after the first launch after server launch.

They’re not yours to authorize though. =) They’d be once you theoretically added/asked to auth and ICQ is waiting on them to accept you.

hehehe yeah. It’s quite a nice client, I just have a lot of XMPP accounts. I could build myself a custom im gateway plugin that has like 8 copies of the XMPP transport. ;D ;D ;D

Yes. I’m still keeping Psi for all my xmpp accounts. But they are not realy important, so i’m going to leave only Spark. But i dont know how to check what version of gateway say igniterealtime.org server is using. Can i check it with Spark?

Hrm. I really don’t know! There’s a hidden disco browser (F7 or somehting? one of the function keys I think) that lets you do a disco browse but there’s not a lot of information it gives back to you. ponder you might actually be able to go into Psi and send a packet as follows:

And see what that sends back.

It seems that i cant do anything with that pending contacts. Because it’s me waiting for an authorisation. And they can stay in Pending status forever. I dont mind if they will stay such, but after relogin they all jump to General group and mess it up (3 online and 8 pending).

jadestorm wrote:

Hehehe, well I would like to get to the bottom of it. That’s almost amusing though. So there’s like a slot that “must be filled” of a bad contact?

One of that two

but i think these logs are not very useful

lol well GATE-305 lets see what we can’t figure out. so they were all hidden in offline huh. The reverse of what’s going on above! weiiiiird! it almost sounds like the group … updating… something or other… in Spark isn’t keeping up.

argh, there is no automatic link to JIRA… am almost getting lost between dozens of threads, and i want to check few things and report 3 things and it’s late and i want to sleep ok, i have found it. [GATE-305] - Ignite Realtime Jira

They’re not yours to authorize though. =) They’d be once you theoretically added/asked to auth and ICQ is waiting on them to accept you.

yes, as you see i have found out that.

it seems that there is no working gateway at igniterealtime.org, Spark is not showing transport icons when i login to it.

wow, ive just noticed some massive problems on the gateway, im using all the lastest stuff.

  1. yahoo gives constant fatal errors so i am no longer able to use the Yahoo! transport

  2. when MSN connects it sends Spark a packet that then causes the client to disconnect

  3. when signing out of MSN it removes every contact. no matter what protcol the contacts are on, they all get removed…

Im not entirely sure what the logs show, maybe i can email you them? I havent actually been able to reproduce the last 2 but the first one is easy to reproduce…

winsrev wrote:

wow, ive just noticed some massive problems on the gateway, im using all the lastest stuff.

  1. yahoo gives constant fatal errors so i am no longer able to use the Yahoo! transport

Can you be more specific?

  1. when MSN connects it sends Spark a packet that then causes the client to disconnect

Again, more specific? What packet is being sent and where are you seeing the packet that you know it’s causing a disconnect?

  1. when signing out of MSN it removes every contact. no matter what protcol the contacts are on, they all get removed…

That’s bizarre. There’s no mechanism in the plugin for removing contacts on logout at all. Only upon unregistration.

Im not entirely sure what the logs show, maybe i can email you them? I havent actually been able to reproduce the last 2 but the first one is easy to reproduce…

Please do. I’ve not seen a single one of these events occur with 1.1.0 on my multiple installs (including my primary account).

Anyone else seeing any of these?

for the last two, i pulled this from spark:

spark:

11-Aug-2007 03:17:17 org.jivesoftware.spark.util.log.Log error

SEVERE:

No response from the server.:

at org.jivesoftware.smackx.ServiceDiscoveryManager.discoverInfo(ServiceD

iscoveryManager.java:410)

at org.jivesoftware.smackx.ServiceDiscoveryManager.discoverInfo(ServiceD

iscoveryManager.java:379)

at org.jivesoftware.sparkplugin.JinglePlugin.getPhoneActions(JinglePlugi

n.java:182)

at org.jivesoftware.spark.phone.PhoneManager$2.construct(PhoneManager.ja

va:112)

at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:129)

at java.lang.Thread.run(Unknown Source)

11-Aug-2007 03:17:18 org.jivesoftware.spark.util.log.Log error

as for yahoo, i got this from Wildfire:

at java.lang.Thread.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:132)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:231)

at org.jivesoftware.openfire.net.ClientStanzaHandler.processPresence(ClientStanzaH andler.java:85)

at org.jivesoftware.openfire.net.StanzaHandler.processPresence(StanzaHandler.java: 306)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:139)

at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponent. process(InternalComponentManager.java:490)

at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:173)

at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:387)

at org.jivesoftware.openfire.gateway.session.TransportSessionManager.removeSession (TransportSessionManager.java:166)

java.lang.NullPointerException

] Exception while processing packet:

2007.08.11 03:17:15 [org.jivesoftware.openfire.gateway.util.Log4JToOpenfireAppender.append(Log4JToO penfireAppender.java:49)

at java.lang.Thread.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(Execut orFilter.java:326)

at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java :266)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecF ilter.java:200)

at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimplePr otocolDecoderOutput.java:62)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:800)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:362)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived (AbstractIoFilterChain.java:703)

at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandl er.java:132)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:153)

at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:231)

at org.jivesoftware.openfire.net.ClientStanzaHandler.processPresence(ClientStanzaH andler.java:85)

at org.jivesoftware.openfire.net.StanzaHandler.processPresence(StanzaHandler.java: 306)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:123)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:151)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:88)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:114)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUnavailableFor DirectedPresences(PresenceUpdateHandler.java:435)

at org.jivesoftware.openfire.component.InternalComponentManager$RoutableComponent. process(InternalComponentManager.java:490)

at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:173)

at org.jivesoftware.openfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:387)

at org.jivesoftware.openfire.gateway.session.TransportSessionManager.removeSession (TransportSessionManager.java:166)

java.lang.NullPointerException

] Exception while processing packet:

Message was edited by: winsrev

Hrm. Well the Spark one looks like it’s got something to do with voice chat/voice over IP support so it shouldn’t be related.

As for the Yahoo stuff, what appears to be happening is that the buddy manager or the session is becoming null before that action is taken. That is most definitely not supposed to happen since there’s still a reference to it. That said, I am getting a duplicate of this behavior in my logs so I have something to work with! GATE-306 Thanks!

Glad i could help , i’ll keep a look out for any more bugs, thanks!

Ever since installing 1.1.0, my entire environment has been experiencing a problem where AIM contacts do not appear in the roster when Spark (2.5.3 and 2.5.5, win32 and OS X) is initially started. Apparently the gateway connection is active as many users have reported that they will receive messages from AIM contacts even if they don’t appear in the roster. The only workaround I have come across is closing Spark and restarting it.

I love the nickname!

We’ve been tracking this issue for about a week now. (see various threads that are like “for those seeing…”) It appears that Spark is having issues handling the roster updates properly. Previously, you got double the roster update notices because of a flaw in my code. Apparently that flaw was making Spark happy? For all practical purposes, I was sending a “hey I have this contact that you aren’t subscribed to” and then right after “hey i have this contact that you are subscribed to” … now I only do the second step, the only required step, but for some reason it isn’t working right with Spark. I’m trying to track down a few issues but I’m probably going to put out a 1.1.2 release in the near future that goes back to the old bloated method for the time being until things can be resolved in Spark.

The annoying thing is, I can’t reproduce it myself. Not entirely sure why. I have a running theory that it’s because I have a lot of groups that are not only used with the transports, but also with XMPP users, so the group is “already there” before the gateway plugin comes along and adds in contacts to them. Just a theory.

My bad. Google sent me straight to this thread. Thanks for the information. Let me know if there’s anything I can do to help. I have no idea how to accomplish this, but do you think that adding a delay for transport activation would be a possible solution to this issue?

Well, i have only noticed this sometimes but what i have noticed too is that the gateways are getting connection issues? like connection timed out to blah.google.com, also i noticed a strange one but i dont see it anymore, was ICQ would send you a message saying “You have attempted to login to ICQ too many times and you may not login for another 15 minutes” even though i logged in once. Not entirely sure if they can be reproduced because ive only seen them once or twice…

Thanks anyway.

TheAngryPenguin wrote:

My bad. Google sent me straight to this thread. Thanks for the information. Let me know if there’s anything I can do to help. I have no idea how to accomplish this, but do you think that adding a delay for transport activation would be a possible solution to this issue?

After talking with Derek this morning, it looks like he figured out what was going wrong so I believe that this will be fixed in Spark 2.5.6!

If you do see them occur, could you send me your debug logs? ICQ was “down for maintenance” recently and there’s a chance I wasn’t catching the error message properly and kept trying to retry, after which point ICQ said “go away”. As for google, I’ve been seeing lack of ability to connect issues with them on and off lately as well.