Interesting information regarding s2s/component problems

So I’‘ve been doing some testing with jive and it appears that the users that I imported are not able to use s2s or even talk to local components, whereas brand new users i create can get to everything just fine. I’‘ve been looking at the various mysql tables and I can not see anything that would cause such behavior . . . IE the accounts I imported look to be in a good state just like the brand new ones. Any information you think I might be able to provide to make this report more helpful? I thought the sheer behavior was interesting on it’'s own. =)

maybe thats because new users are holden in cache and imported are just inserted into db, so they are not immediately getting all “features”. I’‘m just guessing, i’'m not really familiar with JM work technics. Have you tried to test these imported users after some time, after server restart, machine restart?

This is strange… Caching shouldn’'t be an issue since the plugin uses the same Messenger API to import users that is used when a new user is created via the Admin Console or client registration. Are you seeing any sort of messages in the error logs?

I’'ll look into this and see if I can reproduce the problem.

Thanks,

Ryan

Follow-up:

With the latest nightly build (8/23) and the userImportExport plugin I was able to use s2s to establish connections between new users and users that were imported. So, I’‘m wondering if something isn’'t quite right with your import file. Would you be able to post a sample of the file (username and passwords changed, of course ) you created to see if I can reproduce the problem?

Thanks,

Ryan

I’'d be willing to give the file to a single person, but not post it. It has the jids of a lot of folk who may or may not want to have their existances published. I have compared my import file with an export, though, and they are “dead on”. =/

One thing I have -not- try is registering my “new user that works” with one of my transports. IT could have something to do with that. For example, on my roster there are a lot of entries that end in aim.jabber.vorpalcloud.org and there seems to be errors in my logs that act as if it can’'t resolve these addresses. Like this:

2005.08.13 23:47:53 [org.jivesoftware.messenger.server.ServerDialback.createOutg

oingSession(ServerDialback.java:194)] Error creating outgoing session to remote

server: aim.jabber.vorpalcloud.org(DNS lookup: aim.jabber.vorpalcloud.org)

nslookup aim.jabber.vorpalcloud.org

Server: 10.0.0.1

Address: 10.0.0.1#53

Name: aim.jabber.vorpalcloud.org

Address: 10.0.0.1

note that aim.jabber.vorpalcloud.org is the same server, and is definitely resolvable. On top of that, it’'s currently (temporarily) resolvable from the entire world. I tend t oget a -lot- of instances of this:

2005.08.23 23:23:04 [org.jivesoftware.messenger.net.SocketReader.run(SocketReade

r.java:145)] Connection closed before session established

Socket[addr=/10.0.0.1,port=50045,localport=5269]

So I’‘m going to test aim.jabber.vorpalcloud.org with the new user and see if that hoses the account. (especially when the transport is not running yet) I really don’‘t understand the DNS error since it’'s look-up-able. =/

I’'d be willing to give the file to a single person,

but not post it. It has the jids of a lot of folk

who may or may not want to have their existances

published.

I understand completely, we can save this option as a last result.

So I’'m going to test aim.jabber.vorpalcloud.org

with the new user and see if that hoses the account.

Sounds good, be sure to post your results.

Thanks,

Ryan

Ok! I have found the chain of events that cause this to happen. (at least for me)

  1. created new user “testninja”

  2. logged in and added some contacts that weren’'t on the local server and was able to

communicate just fine

  1. started up PyAIM, registered with it, can see all contacts and communicate just fine

  2. logged out and in of jive, reconnect just fine, can see and communicate

  3. logged out, killed PyAIM, logged back in… here’'s where the problem is

Basically it seems that jive is upset that aim.jabber.vorpalcloud.org is in my roster and yet it can’‘t talk to the associated “server”. So I can’'t even successfully log in at this point. I can see none of my jabber contacts that had nothing to do with aim.jabber.vorpalcloud.org, nor can I communicate with anyone. My session is effectively dead in the water.

If I start up PyAIMt again and resend my available presence, my jabber contacts become available but PyAIMt and jive don’'t seem to want to talk to each other.

I log out entirely from jive and log back in. This time PyAIM is stuck in some sort of a loop. I don’‘t know what’'s up with that exactly.

PyTransport: Sending unavailable presence to non-logged in user "testninja@jabber.vorpalcloud.org"

This happens over and over again:

127.000.000.001.05347-127.000.000.001.60721:

127.000.000.001.05347-127.000.000.001.60721:

127.000.000.001.60721-127.000.000.001.05347:

Basically, at this point jive seems to hate aim.jabber and refuse to work with it. (unless I start up a brand new user and register again)

And again, note that I could not interact with any other jabber servers at all either until PyAIM was running and it was capable of talking to aim.jabber.vorpalcloud.org. (or at least acknowledging that aim.jabber.vorpalcloud.org is a component to itself)

My real account has many different transports registered with it, as well as a looot of other jabber servers on it’‘s roster. I would wager that many of them don’'t even exist anymore.

jive logs indicate this over and over again:

2005.08.23 23:04:03 [org.jivesoftware.messenger.net.SocketReader.run(SocketReade

r.java:145)] Connection closed before session established

Socket[addr=/10.0.0.1,port=48922,localport=5269]

Nothing else in error logs from this stream of time. Nothing in debug log. Though honestly I may have forgotten to turn that on. =/

From previous attempts, I can see a lot of messages in the error log such as this:

2005.08.23 22:53:24 [org.jivesoftware.messenger.server.ServerDialback.createOutg

oingSession(ServerDialback.java:194)] Error creating outgoing session to remote

server: is-a-geek.org(DNS lookup: is-a-geek.org)

java.net.ConnectException: Connection refused

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.(Unknown Source)

at javax.net.DefaultSocketFactory.createSocket(Unknown Source)

at org.jivesoftware.messenger.server.ServerDialback.createOutgoingSessio

n(ServerDialback.java:130)

at org.jivesoftware.messenger.server.OutgoingServerSession.authenticateD

omain(OutgoingServerSession.java:157)

at org.jivesoftware.messenger.spi.RoutingTableImpl.getRoutes(RoutingTabl

eImpl.java:133)

at org.jivesoftware.messenger.roster.Roster.broadcastPresence(Roster.jav

a:444)

at org.jivesoftware.messenger.handler.PresenceUpdateHandler.broadcastUpd

ate(PresenceUpdateHandler.java:239)

at org.jivesoftware.messenger.handler.PresenceUpdateHandler.process(Pres

enceUpdateHandler.java:90)

at org.jivesoftware.messenger.handler.PresenceUpdateHandler.process(Pres

enceUpdateHandler.java:141)

at org.jivesoftware.messenger.PresenceRouter.handle(PresenceRouter.java:

at org.jivesoftware.messenger.PresenceRouter.route(PresenceRouter.java:6

at org.jivesoftware.messenger.PacketRouter.route(PacketRouter.java:73)

at org.jivesoftware.messenger.net.SocketReader.processPresence(SocketRea

der.java:301)

at org.jivesoftware.messenger.net.ClientSocketReader.processPresence(Cli

entSocketReader.java:49)

at org.jivesoftware.messenger.net.SocketReader.readStream(SocketReader.j

ava:208)

at org.jivesoftware.messenger.net.SocketReader.run(SocketReader.java:111

)

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

From servers that aren’‘t answering at that particular time. It’‘s almost as if, once it hits a jabber domain in your roster that it can’'t talk to “right this moment”, it gets stuck in some sort of infinite wait or deadend or something and nothing else wants to work at that point.

Hi Daniel,

My network environment doesn’‘t allow me to use PyAIM but I was able to generate the same “Error creating outgoing session to remote server…” error message by taking down the “remote” server my contacts are on. The only difference is that once I bring that “remote” server back online and resend my presence I’‘m able to see all my contacts again. So, the problem maybe more external component related than s2s related. I’'ll see if I can get PyAIM hooked up over the weekend and report back what I find (unless someone else is able to jump in with a solution in the before then).

Thanks,

Ryan

Well the thing is, if I just ignore PyAIM, I simply can’‘t use my normal account. Without PyAIM running, there’‘s no reason why jive should be having an attitude with letting me log in. As far as I understand, jive -should- just go "i can’‘t talk to aim.jabber.vorpalcloud.org… oh well". I imagine treating it as s2s at that point. There’‘s nothing in the roster that I’‘m aware of that says “this is an external transport”. The weird unavailable presence retries are probably something odd that PyAIM is doing, but my primary concern right now is that when folk on my roster’‘s servers are not up, I can not “finish logging in”. In fact, when someone tried to send me some messages after I had logged in, they went into the offline queue. (which does indicate that there is -some- communication with the outside world) I was speaking to mysticone about this not so long ago and he theorized that java or jive or something, in it’‘s efforts to talk to all of the servers listed in your roster, gets stuck in some sort of never never land when it gets to one that doesn’‘t talk back. I see a couple of bug reports about s2s and about presence routing with external components, so honestly, I’‘m just trying to submit as much information as possible to aid in the repair of those issues. =) Basically, I believe that the current state of jive is not usable by my setup and that those bug reports are exactly why. They are listed as high priority and y’'all seem to be wonderful folk so I have no doubt that they will be resolved! =)

My absolute biggest concern is not that AIM is upset with Jive… that I can handle. It’‘s that, the transports aren’‘t running at the moment, I can’‘t use jive period. I’‘m not even really logged in. Another interesting thing with that is, I do get listed as having an active session in the web admin interface, but when I disconnect I’‘m not removed. (in fact I’'ve never seen myself get removed from the list until I restart the server) This is part of why I believe this ‘‘going into never never land’’ theory is accurate. =)

I’‘m perfectly willing to work with someone live and “in person” (over im) on this if anyone would like to do some live debugging. My jid is daniel@jabber.vorpalcloud.org. I’‘m actively running my ejabberd server so s2s is working. I’‘m also jadestorm@jabber.org since we would need to talk via that if I’'m going to be taking my server up and down. If no one is available for that, no worries, just offering. =)

BTW, I did see another report that there were issues with “subdomains” if they weren’‘t built in components. Does jive currently assume that, if it’‘s jabber.vorpalcloud.org, that anything beyond that (aim.jabber.vorpalcloud.org, etc) is jive’'s to handle?

Well the thing is, if I just ignore PyAIM, I simply

can’'t use my normal account. Without PyAIM running,

there’'s no reason why jive should be having an

attitude with letting me log in. As far as I

understand, jive -should- just go "i can’'t talk to

aim.jabber.vorpalcloud.org… oh well".

Right, that’‘s what I’‘m seeing with Messenger if I’'m just doing “pure” s2s.

I imagine treating it as s2s at that point. There’'s nothing

in the roster that I’'m aware of that says "this is an

external transport". The weird unavailable presence

retries are probably something odd that PyAIM is

doing, but my primary concern right now is that when

folk on my roster’'s servers are not up, I can not

“finish logging in”. In fact, when someone tried to

send me some messages after I had logged in, they

went into the offline queue. (which does indicate

that there is -some- communication with the outside

world) I was speaking to mysticone about this not so

long ago and he theorized that java or jive or

something, in it’'s efforts to talk to all of the

servers listed in your roster, gets stuck in some

sort of never never land when it gets to one that

doesn’'t talk back. I see a couple of bug reports

about s2s and about presence routing with external

components, so honestly, I’'m just trying to submit as

much information as possible to aid in the repair of

those issues. =) Basically, I believe that the

current state of jive is not usable by my setup and

that those bug reports are exactly why. They are

listed as high priority and y’'all seem to be

wonderful folk so I have no doubt that they will be

resolved! =)

The more info the better.

My absolute biggest concern is not that AIM is upset

with Jive… that I can handle. It’'s that, the

transports aren’‘t running at the moment, I can’'t use

jive period. I’'m not even really logged in.

I think I can speak for all the developers when I say we want as many people to use Messenger as possible so resolving these sorts of issues are important to us.

Another interesting thing with that is, I do get listed as

having an active session in the web admin interface,

but when I disconnect I’‘m not removed. (in fact I’'ve

never seen myself get removed from the list until I

restart the server) This is part of why I believe

this ‘‘going into never never land’’ theory is

accurate. =)

I’'ve seen similiar reports of Messenger not always detecting when a client has disconnected. Which client do you use?

I’'m perfectly willing to work with someone live and

“in person” (over im) on this if anyone would like to

do some live debugging. My jid is

daniel@jabber.vorpalcloud.org. I’'m actively running

my ejabberd server so s2s is working. I’'m also

jadestorm@jabber.org since we would need to talk via

that if I’'m going to be taking my server up and down.

If no one is available for that, no worries, just

offering. =)

I appreciate your offer and I may take you up on it in the near future.

BTW, I did see another report that there were issues

with “subdomains” if they weren’'t built in

components. Does jive currently assume that, if it’'s

jabber.vorpalcloud.org, that anything beyond that

(aim.jabber.vorpalcloud.org, etc) is jive’'s to handle?

Working with the component portion of Messenger is something I don’‘t have a lot of experience with so I can’'t really answer that off the top of my head, but it certainly sounds as if it could be related. Maybe someone who is a bit more familiar with components can jump in and answer this one.

Thanks,

Ryan

I think I can speak for all the developers when I say

we want as many people to use Messenger as possible

so resolving these sorts of issues are important to

us.

And I’‘m certainly looking forward to using it. =D I’'m even considering beefing up my java knowledge and maybe writing a plugin or two. (that is, if i can come up with something that could be written lol)

I’'ve seen similiar reports of Messenger not always

detecting when a client has disconnected. Which

client do you use?

Lots really. Psi, Gaim, Adium (yeah ok, Gaim), iChat. I have seen the lack of disconnect detection occur with Psi and Adium.

This appears to be solved in 2.3.0 beta1