[JDEV] Jabber Test Suite compiles on more platforms now..
Jabber Test Suite The Jabber Test Suite, a testing harness for Jabber servers that tests message throughput and connection rates, has been updated to be portable on most UNIX systems. As of version 1.0.2 the source code has been compiled on Linux, FreeBSD, Solaris, and SunOS. URL: http://jabbertest.sourceforge.net --- Dustin Puryear [EMAIL PROTECTED] Puryear Information Technology Windows, UNIX, and IT Consulting http://www.puryear-it.com ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] Minor notes about JabberTest
This is just a quick note to let everyone know that I uploaded a source tgz of JabberTest to www.sf.net/projects/jabbertest. I have received a very large number of requests recently for a source package since most people seem to prefer to avoid CVS. In addition, I made some very minor modifications to the documentation, including adding an INSTALL document. On a related note, I will be performing a number of updates to the test suite in the coming months. If you have any wishes you would like to see addressed, then don't hesitate in letting me know. So what is JabberTest? JabberTest is a GPL'd testing harness for Jabber to test performance and delivery. The software includes several tools to perform various tests, including timing of account creation, message delivery, and concurrent session limits. Any combination of tests can be performed at the same time to test different characteristics of the Jabber.org or Jabber.com servers and the hardware infrastructure. If anyone has any questions then let me know. I can be reached at [EMAIL PROTECTED] FYI, I am not subscribed to jdev or jadmin due to high list traffic. Regards, Dustin --- Dustin Puryear [EMAIL PROTECTED] Puryear Information Technology Windows, UNIX, and IT Consulting http://www.puryear-it.com ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] setting presence generates odd error?
We are working with Jabber 1.4 under AIX thanks to Matt Diez. I am setting my presense using: presence statusonline/status showonline/show/presence In error.log I get: 20010830T20:12:42: [warn] (-internal): jsm: Invalid Recipient, returning data presence from='[EMAIL PROTECTED]/Receive' statusonline/status showonline/showx xmlns='jabber:x:delay' from='[EMAIL PROTECTED]/Receive' stamp='20010830T20:12:42'//presence 20010830T20:12:44: [warn] (-internal): jsm: Invalid Recipient, returning data presence from='[EMAIL PROTECTED]/Sender' statusonline/status showonline/showx xmlns='jabber:x:delay' from='[EMAIL PROTECTED]/Sender' stamp='20010830T20:12:44'//presence This doesn't happen under Jabber 1.4 on a Linux box, at least not that I can see. At first I was using Available instead of online, but Matt suggested I try online. Both generate the above error. Am I doing something wrong, or is jabberd burping? Before I started working on this I was also using the show/ tag: int xml_set_presence(char *buf, int maxlen, char *status, char *show) { snprintf(buf, maxlen, presence status%s/status show%s/show /presence, status, show); return 1; } Pretty simple, eh? I'm curious what I am doing wrong, if anything. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] User logins slow down?
We are playing with jabberd under AIX. I was running pasvlogin from the jabbertest tools and noticed that as the number of logged in users increases the login time increases. Under both Jabber 1.4 under Linux and AIX it grows from .1 seconds to .7 seconds as n = 1 - 1000. Is that expected? Should login time increase as the number of online users increases? Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] jabber.org setup?
How is jabber.org setup? What about the maximum concurrent users? Special configuration? It would be nice if you documented how you have everything setup since you seem to be the benchmark for using jabber.org's jabberd. Information please! :) Some nice perty diagrams would be nice too. Maybe time for http://www.jabber.org/how-we-do-it.html? We would like to see how others are implementing jabberd in their organization, and what tools/tricks/special-setups they use. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] Help: jabber server Admin
On 29 Aug 2001 13:01:28 +0100, Dillip Kumar Swain wrote: Hi Dustin.. I want to know ..is there any tools from which I can extract below : 1 no. of users connected to jabber server 2 Time Date of Login etc. How did I get pulled into this? :) Anyway, when running jabberd in debug mode I know it will show you the number of connected users. Also, you could write a script to watch the jabberd log files since they are pretty darn detailed for this stuff. I think I heard of someone else working on this? Regards, Dustin Any admin module for it? I am eagerly waiting your reply Thanx regards Dillip Do You Yahoo!? Get your free @yahoo.co.uk address at http://mail.yahoo.co.uk or your free @yahoo.ie address at http://mail.yahoo.ie ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
RE: [JDEV] do we have jabberserver for windows
And there is the always-ready-to-roll Cygwin solution to this type of problem. Has anyone tested jabberd under Cygwin? Regards, Dustin On 29 Aug 2001 14:02:27 -0500, Matt Diez wrote: I want to say the JabCast kids have a commercial version for Windows. And the cats at Tipic also have one. I think just http://www.jabcast.com and http://www.tipic.com Of course, I think these will be out in mid-September Matthew D. Diez Systems Engineer Vedalabs, Inc. [EMAIL PROTECTED] -Original Message- From: ravindra bommineni [mailto:[EMAIL PROTECTED]] Sent: Wednesday, August 29, 2001 1:51 PM To: [EMAIL PROTECTED] Subject: [JDEV] do we have jabberserver for windows hi all do we have jabber server for windows.if not, is any body working on that. Thanks ravindra __ Do You Yahoo!? Get email alerts NEW webcam video instant messaging with Yahoo! Messenger http://im.yahoo.com ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] Jabber Test Suite
John Hebert (Vedalabs) mentioned that several people at JabberCon noted difficulties in using the tools. I wrote a USING document and it is available via CVS or in the binary downloads. If that doesn't clear things up let me know and I will write some more documentation and possible a few more scripts. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] re: jabbertest
On 20 Aug 2001 17:27:06 -0600, Peter Millard wrote: Dustin - If you're using mozilla, it automagically unzips tarballs, but it doesn't change the extension :) I ran into this the other day. Had me totally stumped. Ah, that's it then. Regards, Dustin Peter M. - Original Message - From: Dustin Puryear [EMAIL PROTECTED] Also, anyone know why SourceForge funks up my tar.gz files? I upload as a tar.gz, but after a download the files won't uncompress with gunzip. Rather, I have to do a simple untar: tar xvfz ... FAILS tar xvf ... WORKS ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] re: jabbertest
On 21 Aug 2001 00:33:28 -0100, Bart Verwilst wrote: On Monday 20 August 2001 20:54, you wrote: || I wrote a USING file for the jabbertest tools available via CVS or the || binary distributions. I've had a number of personal emails wondering how || best to use the tools, so I hope this helps. || || Also, anyone know why SourceForge funks up my tar.gz files? I upload as || a tar.gz, but after a download the files won't uncompress with gunzip. || Rather, I have to do a simple untar: || || tar xvfz ... FAILS try tar -xvzf Then why would it work _BEFORE_ I posted it to sf.net? Anyway, someone else let me know that Mozilla unarchives a tar file for some odd reason. That was the reason. Thanks. Regards, Dustin || tar xvf ... WORKS || || Wierd. || || Regards, Dustin Bart ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] re: jabbertest
On 21 Aug 2001 10:09:53 -0400, Benjamin Reed wrote: Dustin Puryear [[EMAIL PROTECTED]] wrote: try tar -xvzf Then why would it work _BEFORE_ I posted it to sf.net? Anyway, someone else let me know that Mozilla unarchives a tar file for some odd reason. That was the reason. Thanks. It most likely didn't work the way you think it did. the f in xvzf takes an argument, it has to have a filename after it. tar xvfz filename.tar.gz tries to extract the file ./filename.tar.gz from a non-gzipped tarball called z. And next you will be telling me the sky is blue. ;) The problem ended up being Mozilla. Thanks. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] re: jabbertest
I wrote a USING file for the jabbertest tools available via CVS or the binary distributions. I've had a number of personal emails wondering how best to use the tools, so I hope this helps. Also, anyone know why SourceForge funks up my tar.gz files? I upload as a tar.gz, but after a download the files won't uncompress with gunzip. Rather, I have to do a simple untar: tar xvfz ... FAILS tar xvf ... WORKS Wierd. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] Sparse considerations about server status
I had some time yesterday and today to play with jabbertest and jabberd 1.4.1 and here are my results. First, my changes to jabbertest: both the msgloadsnd and msgloadrec clients are now checking for closed sockets. In addition, msgloadsnd is watching for bounced messages. Okay, so I first tested my socket handling code by running jabbertest with 5 user pairs sending 3 messages/sec for 60 seconds. Once the test begins I manually kill jabberd. Both the msgloadsnd and msgloadrec clients report that their sockets were closed and then abort. So that works. I then restart jabberd and run jabbertest with 200 user pairs sending 2 messages/sec for 60 seconds, which gives me the following stats: UserPs Rate Duration MinDelTime MaxDelTime AvgDelTime MsgCnt ExpMsg MsgLossRate 2002 60 0.01704440.68959 151.83634 14322 24000 0.40325 That's a 40% loss rate for a 400 messages/sec test. I look in error.log and see a lot of: 20010816T18:17:36: [notice] (elavil): bouncing a packet to test_77@elavil/Receiver from test_76@elavil/Sender: Socket Error to Client 20010816T18:17:36: [notice] (elavil): bouncing a packet to test_77@elavil/Receiver from test_76@elavil/Sender: Socket Error to Client 20010816T18:17:36: [notice] (elavil): bouncing a packet to test_77@elavil/Receiver from test_76@elavil/Sender: Socket Error to Client 20010816T18:17:36: [notice] (elavil): bouncing a packet to test_77@elavil/Receiver from test_76@elavil/Sender: Socket Error to Client 20010816T18:17:36: [notice] (elavil): bouncing a packet to test_77@elavil/Receiver from test_76@elavil/Sender: Socket Error to Client ... This happens to several test_ users, not just test_76. Ok.. so does this must mean the sockets are getting closed somewhere? I checked both ends and none of my clients have reported a socket closed condition. Must be something else. However, I do find a [very] few of the following reported from msgloadsnd, which is catching bounce messages: [dpuryear@zoloft dpuryear]$ head s.test_76 msg: 7 997985807 901646 I think it is about time to say bye-bye to ICQ, AIM, and MSN! msg: Offline Storage msg: Socket Error to Client msg: Socket Error to Client msg: 8 997985808 411677 I think it is about time to say bye-bye to ICQ, AIM, and MSN! msg: Offline Storage msg: Socket Error to Client msg: Socket Error to Client msg: 9 997985808 921620 Are you serious? You want to do what with Jabber? msg: Offline Storage I assume the int int int string messages are bounces? Regarding Offline Storage I assume that just means jabberd is putting the message into offline storage because it lost contact with the receiving client, as I confirmed by looking at the test_77.xml file: [root@elavil jabber-1.4.1]# ll spool/elavil/test_77.xml -rw---1 jabber jabber 15110 Aug 16 13:19 spool/elavil/test_77.xml (Odds are receivers and evens are senders, so test_76 sends to test_77.) But notice that I got an Offline Storage message _before_ a Socket Error to Client message. What happened there? And why isn't my receiving client getting a socket closed condition? None of the clients ever report that their socket has been closed. Also, I don't always get warnings or notices from jabberd. For example, examine the following: 20010816T18:24:06: [notice] (elavil): bouncing a packet to test_391@elavil/Receiver from test_390@elavil/Sender: Socket Error to Client 20010816T18:24:06: [notice] (elavil): bouncing a packet to test_391@elavil/Receiver from test_390@elavil/Sender: Socket Error to Client But I have nothing in s.test_390, which contains stderr from my test_390 sending client: [dpuryear@zoloft dpuryear]$ ll s.test_390 -rw-r--r--1 dpuryear dpuryear0 Aug 16 13:16 s.test_390 So sometimes bounces get through, and sometimes not? Not sure what is going on. BTW, I ran jabberd on another machine and swapped the client machines and get similar results. Temas, thoughts? I archived all of the data from this test, including the jabberd log files. Let me know if you want them. Regards, Dustin On 10 Aug 2001 11:56:55 -0500, Dustin Puryear wrote: FYI, I plan on building checks for bounced messages within a few days into the tools. Is this feature documented? On 09 Aug 2001 14:11:49 -0500, Thomas Muldowney wrote: Yeah I think sheath is doing stuff with them. The reason I ask about bounces, is because most of the queues that have set lenght or sizes will bounce back to sender if they are overflowed (as far as I'm to understand). So although there isn't guaranteed delivery, there is a response if it can't be. That's why I say clients shouldn't need ACK's. Although IQ msgs are always discussed. --temas On Wed, Aug 08, 2001 at 02:51:34PM -0500, Dustin Puryear wrote: On 08 Aug 2001 12:16:08 -0500, Thomas Muldowney wrote: Like I posted earlier I need more specifics to investigate this. Having clients build in safeguards is ridiculous! This would be a server bug by far if no Well, I
[JDEV] jabbertest
Lo and behold I finally uploaded some jabbertest binaries to the site. http://www.sf.net/projects/jabbertest Regards, dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] dropped messages?
On 08 Aug 2001 11:45:56 -0500, Thomas Muldowney wrote: I guess that's a possiblity (your guess at the bottom). Also, do you check for bounces? Some of them could be doing that for one reason or another? re: bad XML parsing I had someone scan the code and it looks good. I don't think the problem is mine. re: bounces Bounces? Maybe, but I don't see how. My test programs send from user A to user B, and I always know who user B is since it's hardcoded into the testing applications (more or less). The code is pretty short: msgloadsnd and msgloadrec are each about 500 lines of code, excluding some outside code they rely on. Want to take a look? It is always possible I did something stupid. Regards, Dustin --temas On Fri, Jul 13, 2001 at 01:29:52PM -0500, Dustin Puryear wrote: I am trying to determine why messages appear to be dropped when jabberd is under a heavy load. I'm not sure if it's my code or jabberd, so I'm looking for ideas. I have multiple user pairs, where each pair is composed of a sending client A and receiving client B. Under a high load not all messages sent from A appear to arrive at B. I find this odd because I would think that the delivery time would be the only thing affected under high load, not actual message delivery. Thus, I suspect my code, but can't rule out jabberd. Following are Jabber Test Suite results generating my concern, and then a review of what is going on: UserPs Rate Duration MinDelTime MaxDelTime AvgDelTime MsgCnt ExpMsg MsgLossRate 10 1 60 0.003100.107960.004716006000.0 20 1 60 0.004840.154780.009301200 1200 0.0 30 1 60 0.006680.163200.019481800 1800 0.0 40 1 60 0.008440.170750.027292400 2400 0.0 50 1 60 0.010260.215040.042673000 3000 0.0 60 1 60 0.006080.215950.059803600 3600 0.0 70 1 60 0.005320.366350.054744200 4200 0.0 80 1 60 0.011970.197570.039244800 4800 0.0 90 1 60 0.009840.238450.045085400 5400 0.0 1001 60 0.002330.330650.061566000 6000 0.0 1101 60 0.003260.486420.055146600 6600 0.0 1201 60 0.005186.021320.072966960 7200 0.0 1301 60 0.009006.108750.101117380 7800 0.05385 1401 60 0.010315.986670.099687980 8400 0.05000 1501 60 0.013586.163240.104937980 9000 0.11333 1601 60 0.015396.239720.147958280 9600 0.13750 Notice that at = 120 user pairs (240 connected users), which equates to 120 msg/sec in this test, my message loss rate varies from 3% to 13%. The average delivery also climbs to .14 seconds, but I don't consider that a problem. (However, the worst case delivery times are bad: 6 seconds for 150 and 160 user pairs.) There are only two places that I feel messages could be getting lost: in jabberd and in msgloadrec, the receiving client. If it's in jabberd then I have to wonder why this is happening. If in msgloadrec, I'm also a bit bewildered. Perhaps I am not handling my XML parsing correctly with expat? My XML character data handler is: void char_data_hdlr(void *userdata, const XML_Char *s, int len) { user_data_t *ud = userdata; char buf[MAX_XML_BUFSZ+1]; struct timeval tv; reply_data_t *reply; int id; memcpy(buf, s, len); buf[len] = '\0'; DPRINT(found message: %s\n, buf); /* scan for our start times at the beginning of the message */ if (sscanf(buf, %d %ld %ld , id, (tv.tv_sec), (tv.tv_usec)) == 3) { reply = malloc(sizeof(reply_data_t)); if (reply == NULL) { perror(malloc()); exit(EXIT_FAILURE); } DPRINT(char_data_hdlr(): adding buf = %s with sec = %ld and usec = %ld\n, buf, tv.tv_sec, tv.tv_usec); reply-begin.tv_sec = tv.tv_sec; reply-begin.tv_usec = tv.tv_usec; reply-id = id; list_add((ud-reply_list), (void *) reply); } } All character data has the form: decimal float float. Hmm, should I not be assuming that I will get the entire character data at once? Perhaps it is being split across multiple invocations of char_data_hdlr() by expat? Any ideas? Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams
Re: [JDEV] Sparse considerations about server status
On 08 Aug 2001 12:16:08 -0500, Thomas Muldowney wrote: Like I posted earlier I need more specifics to investigate this. Having clients build in safeguards is ridiculous! This would be a server bug by far if no Well, I spoke with Colin (we are both with Vedalabs) about this and he mentioned that Jabber does not guarantee delivery. Is this true? If so then any application that requires all messages to be delivered will have to include some type of ACK feature.. I would think. bounce is happening and it is actually getting lost somehow. It has high priority in my books, but I need info, debug logs, incoming/outgoing XML for both parties involved, and anything else that will help. I can do this. Note however that jabberd has to be under a high load for the problem to occur. That means you can expect _a lot_ of debug and log data. Perhaps you would like to run the test suite on a personal test box? It may be easier for you to see what data you need? Otherwise you can expect a 50MB email from me. :) Hmm, a while ago a guy from the OSDN asked for developer access to the testing tools. It would be nice if he could run it on his test boxes as well, but I'm not sure what happened to him. Regards, Dustin --temas On Thu, Aug 02, 2001 at 12:04:56PM -0500, Dustin Puryear wrote: On 29 Jul 2001 23:19:30 +0200, Gian Filippo Pinzari wrote: Notice that at = 120 user pairs (240 connected users), which equates to 120 msg/sec in this test, my message loss rate varies from 3% to 13%. The average delivery also climbs to .14 seconds, but I don't consider that a problem. (However, the worst case delivery times are bad: 6 seconds for 150 and 160 user pairs.) We've just developed a project (client+server) for one of the biggest ISP in Italy. We found since the beginning that each Jabber server was not able to handle more than a couple hundreds client, so we implemented an architecture that load balances the traffic among many concurrent servers running on the same or different hosts. We also encountered message losses, but we didn't care much :-). As Dustin, we thought this was due to client problems. Well, now that I know someone else has had a similar experience I can only assume the problem is with jabberd. I had hoped that jabber.org would confirm this to either be a problem or something they had built into jabberd, but that information hasn't been very forthcoming. In the end I suppose developers using jabberd need to realize that it only works in low to medium load environments where message delivery is not a big issue. Unfortunately, I am not sure if the same is true of the jabber.com server since they didn't present any information on this topic either. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] re: dropped messages
re: jabberd seems to be dropping messages under a high load I had another developer at Vedalabs review my Jabber Test Suite code to ensure that I was properly handling the XML in msgloadrec. We seem pretty confident that I am not losing messages on my end, which indicates that either Linux or jabberd is dropping entire messages going from the sender to the receiver on the Jabber server when the machine is under a high load. As I mentioned in my first post I had expected message delivery time to increase rather than a flat-out dropping of messages. Is this or is this not known, correct behavior? Can I get a confirmation from someone on the Jabber.org or Jabber.com team? As of right now we get a rate of 100 msg/sec through jabberd on a Pentium III 600 before the loss rate becomes unacceptable (greater than 2%). Is this outcome similar to anyone elses situation? Has anyone else tested how jabberd or jabberd/Linux behave under high loads? What is the expected behavior? If you are building clients to use Jabber for routing messages how are you handling this? Do your sending Jabber clients require ACKs from your receiving Jabber clients? (Well, obviously this isn't a serious situation for chat clients, but it probably is for most other types.) Jabber.com, we have numbers from you regarding limits on concurrent users, but what about message throughput rates? Can we get some information? This is arguably as important as concurrent user limits. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] dropped messages?
I am trying to determine why messages appear to be dropped when jabberd is under a heavy load. I'm not sure if it's my code or jabberd, so I'm looking for ideas. I have multiple user pairs, where each pair is composed of a sending client A and receiving client B. Under a high load not all messages sent from A appear to arrive at B. I find this odd because I would think that the delivery time would be the only thing affected under high load, not actual message delivery. Thus, I suspect my code, but can't rule out jabberd. Following are Jabber Test Suite results generating my concern, and then a review of what is going on: UserPs Rate Duration MinDelTime MaxDelTime AvgDelTime MsgCnt ExpMsg MsgLossRate 10 1 60 0.003100.107960.004716006000.0 20 1 60 0.004840.154780.009301200 1200 0.0 30 1 60 0.006680.163200.019481800 1800 0.0 40 1 60 0.008440.170750.027292400 2400 0.0 50 1 60 0.010260.215040.042673000 3000 0.0 60 1 60 0.006080.215950.059803600 3600 0.0 70 1 60 0.005320.366350.054744200 4200 0.0 80 1 60 0.011970.197570.039244800 4800 0.0 90 1 60 0.009840.238450.045085400 5400 0.0 1001 60 0.002330.330650.061566000 6000 0.0 1101 60 0.003260.486420.055146600 6600 0.0 1201 60 0.005186.021320.072966960 7200 0.0 1301 60 0.009006.108750.101117380 7800 0.05385 1401 60 0.010315.986670.099687980 8400 0.05000 1501 60 0.013586.163240.104937980 9000 0.11333 1601 60 0.015396.239720.147958280 9600 0.13750 Notice that at = 120 user pairs (240 connected users), which equates to 120 msg/sec in this test, my message loss rate varies from 3% to 13%. The average delivery also climbs to .14 seconds, but I don't consider that a problem. (However, the worst case delivery times are bad: 6 seconds for 150 and 160 user pairs.) There are only two places that I feel messages could be getting lost: in jabberd and in msgloadrec, the receiving client. If it's in jabberd then I have to wonder why this is happening. If in msgloadrec, I'm also a bit bewildered. Perhaps I am not handling my XML parsing correctly with expat? My XML character data handler is: void char_data_hdlr(void *userdata, const XML_Char *s, int len) { user_data_t *ud = userdata; char buf[MAX_XML_BUFSZ+1]; struct timeval tv; reply_data_t *reply; int id; memcpy(buf, s, len); buf[len] = '\0'; DPRINT(found message: %s\n, buf); /* scan for our start times at the beginning of the message */ if (sscanf(buf, %d %ld %ld , id, (tv.tv_sec), (tv.tv_usec)) == 3) { reply = malloc(sizeof(reply_data_t)); if (reply == NULL) { perror(malloc()); exit(EXIT_FAILURE); } DPRINT(char_data_hdlr(): adding buf = %s with sec = %ld and usec = %ld\n, buf, tv.tv_sec, tv.tv_usec); reply-begin.tv_sec = tv.tv_sec; reply-begin.tv_usec = tv.tv_usec; reply-id = id; list_add((ud-reply_list), (void *) reply); } } All character data has the form: decimal float float. Hmm, should I not be assuming that I will get the entire character data at once? Perhaps it is being split across multiple invocations of char_data_hdlr() by expat? Any ideas? Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] Commercial Success
Colin Madere wrote: Well, we have a few things we're working on that _could_ involve Jabber and would be making a profit on it assuming all the appropriate deals went through, but we aren't currently making money from those apps :( Ask again in about 4 months :) Always the optimist.. Regards, Dustin Colin Madere Vedalabs, Inc. -Original Message- From: Andy Riedel [mailto:[EMAIL PROTECTED]] Sent: Wednesday, June 27, 2001 11:02 AM To: [EMAIL PROTECTED] Subject: RE: [JDEV] Commercial Success Any answers to this question, please? No one making any money doing this? Thanks, Andy -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Andy Riedel Sent: Monday, June 25, 2001 11:53 PM To: [EMAIL PROTECTED] Subject: [JDEV] Commercial Success Hello everyone, I'm interested in hearing any true commercial success stories (other than Jabber.com please) based on the Jabber platform. Is anyone out there working for a company that is making $$$ using the Jabber platform? This would include derivative products, integrators, or infrastructure hosters. Thanks, Andy Riedel CEO XadrA LLC ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] testing tools
I've made a few changes to the testing suite. One affects performance of the tools on the clients. In addition, I recently added nusers2.sh, which automates the testing of testing n clients on two hosts passing x messages per second for t seconds. It will also invoke sar on the Jabber server if possible. As always you can grab the testing suite's source code at http://www.sf.net/projects/jabbertest. If you want the binaries then email me. Note that I will send you binaries compiled with the expat library, so each binary will be about 1MB. Here is some sample data gathered using nusers2.sh using 128 users passing 2 messages/sec (test messages 128 bytes) for 60 seconds: $ ./nusers2.sh crack 128 2 60 test_ Start time: 14:28:58 *** Copying clients.. *** Starting sar on server.. --- Sleeping 5 * 4 seconds for idle data.. *** Starting receivers.. *** Testing start.. *** Starting senders.. $ sar -f /home/dpuryear/jabber_sar.dat Linux 2.2.14-6.1.1 (crack) 06/14/01 02:29:03 PM CPU %user %nice %system %idle 02:29:08 PM all 0.20 0.00 0.60 99.20 02:29:13 PM all 0.00 0.00 0.40 99.60 02:29:18 PM all 0.00 0.00 0.40 99.60 02:29:23 PM all 0.20 0.00 0.40 99.40 02:29:28 PM all 73.20 0.00 19.60 7.20 02:29:33 PM all 85.40 0.00 14.60 0.00 02:29:38 PM all 85.40 0.00 14.60 0.00 02:29:43 PM all 86.60 0.00 13.40 0.00 02:29:48 PM all 85.20 0.00 14.80 0.00 02:29:53 PM all 90.40 0.00 9.60 0.00 02:29:58 PM all 84.60 0.00 15.40 0.00 02:30:03 PM all 85.40 0.00 14.60 0.00 02:30:08 PM all 91.20 0.00 8.80 0.00 02:30:13 PM all 84.00 0.00 16.00 0.00 02:30:18 PM all 88.20 0.00 11.80 0.00 02:30:23 PM all 84.40 0.00 15.60 0.00 02:30:28 PM all 88.20 0.00 11.80 0.00 02:30:33 PM all 84.60 0.00 11.40 4.00 02:30:38 PM all 58.00 0.00 5.40 36.60 02:30:43 PM all 8.40 0.00 3.40 88.20 02:30:48 PM all 2.20 0.00 1.40 96.40 02:30:53 PM all 1.80 0.00 1.80 96.40 02:31:08 PM all 2.40 0.00 2.40 95.20 02:31:13 PM all 0.00 0.00 0.40 99.60 02:31:18 PM all 2.00 0.00 1.00 97.00 02:31:23 PM all 0.00 0.00 0.40 99.60 ... Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] Jabber - Scripting Language
John Alex Hebert wrote: We would miss out on some potential good ideas, like Al's above, by influencing developers to use an official scripting language (Javascript anyone?) rather than approaching the problem with a beginner's mind. Hmm.. I think Colin mentioned something about VB? ;-) Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] testing tools
I had a few spare minutes the past couple of days so I made some pretty significant changes to the Jabber testing tools if you are interesting in taking a look. I removed msgblast and replaced with msgload. msgload separates the sending and receiving client, which lets the test take place across multiple clients easily (or the same one), as well as being able to specify multiple users. In addition, by using the throttling code you can easily test n users sending x messages per second, which can be used to build an effective testing framework (ie., server load or karma settings). If you are using active_jab (an unsupported prototype for the project) you may want to drop it and try the new release. You can retrieve via CVS, and I may release a tarball with the binaries sometime today or tomorrow on the site. Until then you can email me and I'll send you a tarball of the tools. Currently included are: msgload - message load testing pasvlogin - login testing, simple and digest based userreg - user registration speed http://www.sf.net/projects/jabbertest Note: for obvious reasons if you are using msgload across machines and printing out the timing data your clocks need to be synced. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] dpsm going boom!
I started toying with dpsm again and it's segfaulting. From what I've seen this seems to be a unique situation, so I thought I'd bring it here. I have jabberd running with the dpsm settings, and when I run dpsm I get: $ ./dpsm Starting up... configure()... init()... orMask(4, 4): new mask 5 start_listener()... Done Event fd(4) client(0x804e378) xorMask(4, 4): new mask 1 Event fd(4) client(0x804e378) The moment I connect to port 5222 however dpsm segfaults: somehost$ telnet jabberserver 5222 dpsm: $ ./dpsm Starting up... configure()... init()... orMask(4, 4): new mask 5 start_listener()... Done Event fd(4) client(0x804e378) xorMask(4, 4): new mask 1 Event fd(4) client(0x804e378) Event fd(5) client(0x804f268) conn_add()... Segmentation fault (core dumped) temas, any clues? I found that the line causing this segfault seems to be client.c:conn_add() line 195: DPRINT(Checking rate, points: %d\n, cl-rate-points); Benoit, I know you mentioned you had dpsm working at some level. Did you have any problems? Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] guarantee of order?
Peter Saint-Andre wrote: Nope. At least not yet, anyway. :) Well, I can see this being necessary at some point, at least for some applications. I suppose the clients could handle this in some fashion, but I would think it would be more efficient for the server to do so. Perhaps the server should not guarantee message order unless the client specifically request it? Regards, Dustin Dustin Puryear wrote: Is there a guarantee that if I send messages in the order of a, b, c that the recipient will receive the messages in that order? Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] guarantee of order?
Max Horn wrote: It might be worth to conside if this should be guranteed; or if at least some means could be established to allow for guranteed order of certain messages/iqs... As I mentioned earlier a good solution may be to allow the client to specify whether ordering is necessary. Hmm, I'm thinking though that it would become standard for all clients to specify this as just a default behaviour. Most client developers would probably think, why not? I would think that the only advantage for clients to choose non-ordered behaviour is delivery speed. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] guarantee of order?
Jens Alfke wrote: Dustin Puryear wrote: Is there a guarantee that if I send messages in the order of a, b, c that the recipient will receive the messages in that order? Regards, Dustin But in practice wouldn't this happen anyway? Your messages go out in the XML stream in sequence, the server processes them in sequence and relays them to the recipient's server in sequence, that server processes them in sequence and sends them to the recipient. It may or may not happen, depending on how the server developers approach the problem. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] guarantee of order?
David Iodice wrote: messages are delivered in any particular order. Load balancing, as Max H stated, is certainly a possibility to be considered in server design and that might affect message ordering. Have we beat this dead horse enough? Poor Dustin asked a simple yes/no question. I'm satisfied. :) Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] guarantee of order?
David Iodice wrote: The underlying set-up of the internet does not guarantee the ordered delivery of data. Protocols like RTP provide mechanisms within their protocol headers to manage ordering of packets received. True, but that has nothing to do with the Jabber protocol. Out of order *packets* will be handled at a lower layer on the stack. Regards, Dustin David -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of David Waite Sent: Thursday, May 24, 2001 8:09 PM To: [EMAIL PROTECTED] Subject: Re: [JDEV] guarantee of order? IMHO it shouldn't be guaranteed, and that order should be represented in the packets (such as with a sequence identifier in the packet) can be used to delay processing for sequences that require in-order delivery. -David Waite Max Horn wrote: At 15:32 Uhr -0700 24.05.2001, Jens Alfke wrote: On Thursday, May 24, 2001, at 02:44 PM, Peter Saint-Andre wrote: Nope. At least not yet, anyway. :) Dustin Puryear wrote: Is there a guarantee that if I send messages in the order of a, b, c that the recipient will receive the messages in that order? Regards, Dustin But in practice wouldn't this happen anyway? Your messages go out in the XML stream in sequence, the server processes them in sequence and relays them to the recipient's server in sequence, that server processes them in sequence and sends them to the recipient. That is true currently, but not guranteed. It is possible to think of future setups where this is not the case - e.g. if a message can take multiple paths (say due to load balancing) - then the order could get disrupted. It might be worth to conside if this should be guranteed; or if at least some means could be established to allow for guranteed order of certain messages/iqs... Max ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] guarantee of order?
Max Horn wrote: At 12:32 Uhr -0400 25.05.2001, Thomas Charron wrote: From: Jens Alfke Subject: Re: [JDEV] guarantee of order? Instead of making up new mechanisms like sequence numbers, why not just have the server add a timestamp to every message via the jabber:x:delay namespace? THAT would be a great idea, and provide much better message tracking.. Uhm, no. Think of time sync isssues. This is not that great after Would it be a real issue though? I would think the stamp would take place at c2s. As long as a given cluster of Jabber servers servicing a client population kept their time synced then the ORDER of time could be relied on, even if the actual time on the initial server differed from the target clients. Still, I do like the sequencing idea better. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] removing a user account
temas wrote: Flag in our XMLish realm means a tag with no attributes and no children. In this case you want to use remove/ in the IQ. Per an earlier posting remove/ doesn't actually remove the account. Is this true? I attempted it using userreg and received an error: $ ./userreg -h crack -u 5 -m unregister opening connection to crack on port 5222 sending '?xml version='1.0' encoding='UTF-8'? stream:stream to='crack' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' ' received ?xml version='1.0'?stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='3B13C73C' xmlns='jabber:client' from='crack' sending iq type='set' id='3B13C73C' query xmlns='jabber:iq:register' remove/ usernametest_0/username passwordpassword/password /query /iq received iq type='error' id='3B13C73C' query xmlns='jabber:iq:register' remove/ usernametest_0/username passwordpassword/password /query error code='409'Username Not Available/error/iq registration failed Regards, Dustin --temas On 24 May 2001 13:17:21 -0500, Dustin Puryear wrote: Under Registration Requests of the draft standard (http://docs.jabber.org/proto/html/jabber:iq:register.html) it notes to use the remove flag to remove an account. I assume this means to use set='remove'? Anyway, I tried that and I am getting the error Username Not Available. I know the account exists and am using the correct password. Am I using this incorrectly? Here is a short sequence of registering and then trying to unregister, or remove, the account: $ ./userreg --hostname crack --users 1 --mode register opening connection to crack on port 5222 sending '?xml version='1.0' encoding='UTF-8'? stream:stream to='crack' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' ' received ?xml version='1.0'?stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='3B0D4F70' xmlns='jabber:client' from='crack' sending iq type='set' id='3B0D4F70' query xmlns='jabber:iq:register' usernametest_0/username passwordpassword/password /query /iq received iq type='result' id='3B0D4F70'/ sending /stream:stream 0 990728048.920311 990728048.952428 0.032117 $ ./userreg --hostname crack --users 1 --mode unregister opening connection to crack on port 5222 sending '?xml version='1.0' encoding='UTF-8'? stream:stream to='crack' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' ' received ?xml version='1.0'?stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='3B0D4F76' xmlns='jabber:client' from='crack' sending iq type='remove' id='3B0D4F76' query xmlns='jabber:iq:register' usernametest_0/username passwordpassword/password /query /iq received iq type='error' id='3B0D4F76' query xmlns='jabber:iq:register' usernametest_0/username passwordpassword/password /query error code='409'Username Not Available/error/iq failed Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] registering a new user
Just to confirm what I think is true: during registration your only option is to send the password in plain-text using password/? Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] registering a new user
Jens Alfke wrote: Assuming a non-SSL client, wouldn't this make the use of digest authentication a bit too little, too late in many situations? Any mechanism that could allow the client to securely transmit a password to the server in the absence of any prior shared secrets, would have to involve some sort of public-key crypto. This would make it nearly as complex as SSL, so why not just use SSL, which provides the additional benefit of encrypting the entire session including message contents? I was getting to that. I wonder what the real point of supporting digest based authentication is when it can be circumvented before it's ever used? I suppose it could be considered a weak backup to having the entire stream encrypted from the beginning. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] guarantee of order?
Is there a guarantee that if I send messages in the order of a, b, c that the recipient will receive the messages in that order? Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] [jadmin] performance numbers.. questions
Ignore the email below.. mail client problems. Regards, Dustin Dustin Puryear wrote: I am actually now getting some hard numbers from the jabbertest tools. One test I ran connected 1000 users to a Jabber server running on a Pentium III 600 with 192MB of RAM. I saw some odd results. But first, here is how the test works: active_jab basically connects 1..n users serially, and sends x messages when each user connects. It does NOT send messages concurrently for each connected user. (Although that would be an excellent feature--to be added soon!) Instead, if you want to simulate multiple users sending messages at the same time to the same server then you just run muliple instances of active_jab on the same or different client machines. (Very simple.) The basic idea is: for user 1..n do connect user to jabber send x messages and track delivery times done for user 1..n do disconnect user from jabber done Memory === First of all, I assumed that Jabber would consume a lot of memory, which turned out to be a wrong assumption. I saw my %memused jump from a rough minimum of 81% to maybe 95%. My %swpused did not change significantly, which indicates that I had enough core memory for the job. (Remember Linux always uses as much memory as it can for buffers, so the starting value of 81% isn't surprising.) The big issue here is that there was only a small jump--around 14%. CPU === Big surprise here. Jabber seems to *quickly* begin eating CPU cycles as the number of connected users increases. Here is some data: users idle user sys 0 99% 1%0% 200 70% 24% 3% 500 45% 50% 5% 800 30% 64% 6% 100020% 70% 10% (Yes, the totals may be more or less that 100%. I am getting these numbers from graphs and quickly jotting them down.) Note that Jabber is consuming 24% of the CPU at 200 users on a Pentium III 600. I also noticed that as more users are connected the message delivery time decreased. The progession was slow.. usually going from 0 seconds to 2 seconds as the number of users went from 0..1000. But still.. why is that? Remember I am not sending message concurrently. Instead, as each user connects active_jab sends x messages (defaults to 5), and then proceeds to the next user. I would like some feedback on this data. Does this look like what everyone else has been experiencing? Are my numbers out of wack?! What other numbers would be useful? I think the next logical step is to run active_jab on several machines at once. That way we can test how many *concurrent* users can connect and send messages. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jadmin mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jadmin ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] digest authentication
Max Horn wrote: Despite me using a phoney password, I know that Gabber is producing proper output since I can login using the correct password. Ah! You are mixing up 0k-auth and digest-auth ;) I guess your hash string is correct, but what you generate is data for the digest element. The hash element in Gabber's output is for the 0k-auth mechansim For more information on digest-auth, check out http://docs.jabber.org/proto/html/jabber:iq:auth.html For more information on 0k-auth, check out http://docs.jabber.org/draft-proto/html/zerok.html Well darn. I was reading strictly from Protocol - Standard:Simple Client Authentication (which, oddly enough, includes both simple and digest client authentication--shouldn't this be renamed Client Authentication). Since Jabber is relatively new I suppose I need to delve into Protocol - Draft more often. So.. what I am doing is correct then. I am taking the session ID, concatenating the password to it, passing it to shahash(), and I should use that as the digest value. Ok then. Thanks Max. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] test suite
The original release of the test suite was a working prototype. Naturally, I have scratched it and am now building the suite proper. Please feel free to check it out from CVS and make contributes, test the code, or just use it. Currently, I only have a working version of msgblast (send as many messages as possible and time return delivery for ONE user) in CVS. I have the following remaining to complete: 1 message delivery with x logged-on passive users 2 message delivery with x logged-on active users 3 user creation time 4 roster request time 5 authentication time for given authentication method 6 filters? Colin, the 'max users before message latency becomes noticable' and 'max registered users before auth process takes too long' of your request doc are obviously covered by 1, 2, and 5. Oh, the snapshot release on SourceForge is NOT updated. I need to figure out how to automated the process on SourceForge at some point. So for now it's only CVS. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] trouble compiling dpsm
Benoit Orihuela wrote: You also need to make modifications to the Makefile. I've added -I../jabberd in the CFLAGS sections. I've also had to remove connection.o from the objects list and add client.o After that, dpsm should compile well ... I found I also needed ../jabberd/lib/karma.o to compile it. Dunno about getting it to work, but at least it compiles now. Ahh, the hazards of working with a pet project that has only just begun. Anyway, for anyone else trying to compile dpsm, my final Makefile that *seems* to work is: CC=gcc CFLAGS=-Wall -g `libxode-config --cflags` `jabber-config --cflags` -I./ -DDEBUG=1 -I../jabberd LIBS=`libxode-config --libs` `jabber-config --libs` LDFLAGS=`libxode-config --ldflags` `jabber-config --ldflags` dpsm_OBJECTS= \ client.o \ dpsm.o \ listener.o \ master.o \ sockets.o \ ../jabberd/lib/karma.o dpsm_CFLAGS=-I../ -I./ all: $(dpsm_OBJECTS) $(CC) -g -o dpsm $(dpsm_OBJECTS) $(LDFLAGS) $(LIBS) clean: rm -f $(dpsm_OBJECTS) dpsm I'm sure I broke something somewhere though. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] using dpsm..
Okay, one more question about dpsm. I have removed the c2s section in jabber.xml and replaced it with: service id='dpsm' accept ip/ port5225/port secretdp5m/secret /accept /service I then try and run dpsm, but get the error: Starting up... configure()... init()... Could not create connection to jabberd ?xml version='1.0'?stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='3B02E9D4' xmlns='jabber:component:accept' to='dpsm' Ok.. so dpsm can't connect to jabberd apparently. I dig a little and find that jabberd is listening on port 5222, not 5225: tcp 0 0 *:5269 *:* LISTEN 4282/jabberd tcp 0 0 *:5222 *:* LISTEN 4282/jabberd I assume jabberd should be listening on port 5225 and dpsm on 5222, correct? Anyway, I played with mio.c and found that mio_listen() is using port 5222 regardless of the port/ tag. This happens even with the original c2s service: service id=c2s load pthsock_client./pthsock/pthsock_client.so/pthsock_client /load pthcsock xmlns='jabber:config:pth-csock' authtime/ karma heartbeat2/heartbeat init64/init max64/max inc6/inc dec0/dec penalty0/penalty restore64/restore /karma ip port=5999/ !-- The ssl/ tag acts just like the ip/ tag. Except SSL is used on the ports and ips specified. You must specify an IP here, or the connections will fail. ssl port='5223'127.0.0.1/ip ssl port='5224'192.168.1.100/ip -- /pthcsock /service Notice I am using port 5999, but jabberd continues to listen on ports 5269 and 5222 (instead of 5999). Am I doing something wrong? Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] trouble compiling dpsm
temas wrote: Well I didn't really intend for this to link with jabberd, it doesn't make a lot of sense. I originally intended for it to work with Good, since that wasn't what I was doing. :) libjabber and libxode 1.2.x. The libraries before they were absorbed into the server. I'll check the stuff in cvs, sounds like the connection.c/client.c stuff is messy in the build setup. I will also put in an INSTALL file to give some better info. Thanks. I'm going to try the fix posted earlier as well. Regards, Dustin --temas On 11 May 2001 15:33:56 -0500, Dustin Puryear wrote: I am trying to compile dpsm to test it and having problems. The compiler is not finding the declaration for 'struct karma' or for the various KARMA_ macros. I take a look and dpsm.h is including jabber/jabber.h, which was installed by libjabber 1.2 as far as I can tell since jabber 1.4 includes the library in the source install, correct? Actually, now that I look there isn't even a jabber.h in jabber 1.4. I dug a little and found the karma stuff in jabberd/lib/lib.h, which is definately NOT be included by dpsm.h, or at least I don't see where. What's the deal? Am I doing something wrong, or more likely, stupid? If I can get this compiled and working I'll rework temas' README into an INSTALL. Fair trade. ;-) Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] trouble compiling dpsm
I am trying to compile dpsm to test it and having problems. The compiler is not finding the declaration for 'struct karma' or for the various KARMA_ macros. I take a look and dpsm.h is including jabber/jabber.h, which was installed by libjabber 1.2 as far as I can tell since jabber 1.4 includes the library in the source install, correct? Actually, now that I look there isn't even a jabber.h in jabber 1.4. I dug a little and found the karma stuff in jabberd/lib/lib.h, which is definately NOT be included by dpsm.h, or at least I don't see where. What's the deal? Am I doing something wrong, or more likely, stupid? If I can get this compiled and working I'll rework temas' README into an INSTALL. Fair trade. ;-) Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] performance numbers.. questions
I am actually now getting some hard numbers from the jabbertest tools. One test I ran connected 1000 users to a Jabber server running on a Pentium III 600 with 192MB of RAM. I saw some odd results. But first, here is how the test works: active_jab basically connects 1..n users serially, and sends x messages when each user connects. It does NOT send messages concurrently for each connected user. (Although that would be an excellent feature--to be added soon!) Instead, if you want to simulate multiple users sending messages at the same time to the same server then you just run muliple instances of active_jab on the same or different client machines. (Very simple.) The basic idea is: for user 1..n do connect user to jabber send x messages and track delivery times done for user 1..n do disconnect user from jabber done Memory === First of all, I assumed that Jabber would consume a lot of memory, which turned out to be a wrong assumption. I saw my %memused jump from a rough minimum of 81% to maybe 95%. My %swpused did not change significantly, which indicates that I had enough core memory for the job. (Remember Linux always uses as much memory as it can for buffers, so the starting value of 81% isn't surprising.) The big issue here is that there was only a small jump--around 14%. CPU === Big surprise here. Jabber seems to *quickly* begin eating CPU cycles as the number of connected users increases. Here is some data: users idle user sys 0 99% 1%0% 200 70% 24% 3% 500 45% 50% 5% 800 30% 64% 6% 100020% 70% 10% (Yes, the totals may be more or less that 100%. I am getting these numbers from graphs and quickly jotting them down.) Note that Jabber is consuming 24% of the CPU at 200 users on a Pentium III 600. I also noticed that as more users are connected the message delivery time decreased. The progession was slow.. usually going from 0 seconds to 2 seconds as the number of users went from 0..1000. But still.. why is that? Remember I am not sending message concurrently. Instead, as each user connects active_jab sends x messages (defaults to 5), and then proceeds to the next user. I would like some feedback on this data. Does this look like what everyone else has been experiencing? Are my numbers out of wack?! What other numbers would be useful? I think the next logical step is to run active_jab on several machines at once. That way we can test how many *concurrent* users can connect and send messages. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] test suite released as tarball
You can now download and use the Jabber test suite without using CVS. Simply download the tarball located at http://www.sourceforge.net/projects/jabbertest. Note that there is a script named run_test.sh that will run sar on the Jabber server and run active_jab, the primary testing tool, locally. It will then collect the remote sar stats. If you do not have sar download sysstats for Linux or build your own scripts to use vmstat and so forth. Also, the tool uses ssh, but you can easily replace with rsh if you are insane enough to use it. You do NOT have to be able to use run_test.sh to use the package. You can easily run active_jab alone if that is adequate for your task. Finally, there is a limited README included that should give a overview of how to use the package. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] Jabber Test Suite on hold
DJ Adams wrote: logins (may need less, but I am only using second-resolution at this point) or I get errors. Also, I ended ripping out the karma code in Could this be the rate/ ? Doesn't seem to affect it. Also, I am experiencing problems even with the default rate setting: rate points=5 time=25/ What happens is that _usually_ by the third time I open a stream and start sending data Jabber does NOT send the messages I send back to me. I just use a select() to time-out after a second or so in order to abort a read(), which would just hang. If I introduce a 1-second delay (maybe shorter, but this is the value I'm using now) then I have no problems. I can connect X times and each message I send is sent back to me. You can see the problem by running active_jab, from the test suite, as: $ ./active_jab -s localhost -j crack -t 5 This produces the time-outs. If I use: $ ./active_jab -s localhost -j crack -t 5 -w 1 Then I get no time-outs. Anyone have any suggestions? Regards, Dustin dj ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] register then reconnect?
Peter Saint-Andre wrote: That's pretty much what we do -- we don't want to keep the stream/socket open after a session ends because we don't know when someone is going to reauthenticate on that socket. Keeping sockets open with no active sessions would cause more overhead than opening and closing closing sockets as you suggest. Or so it seems to me. True enough. I can advantages for both. However, in an enterprise environment I see the advantage leaning toward a stream being independent of a session. Yap, yap. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] Jabber Test Suite on hold
Dustin Puryear wrote: Colin Madere wrote: I believe I have active_jab, the main component of the test suite, pretty much working. However, I noticed I need a 1-second delay between logins (may need less, but I am only using second-resolution at this point) or I get errors. Also, I ended ripping out the karma code in Jabber 1.4 since I could never get it to turn off via jabber.xml. Anyway, here is some sample output for those that are curious: $ bin/active_jab -s localhost -j crack -t 1000 -w 1 3/30/2001 17:7:1 0 1 0 0 0 0 0 0 1 3/30/2001 17:7:3 1 2 0 1 0 0 0 0 1 3/30/2001 17:7:4 2 3 0 0 0 0 0 0 1 3/30/2001 17:7:5 3 4 0 0 0 0 0 0 1 3/30/2001 17:7:6 4 5 0 0 0 0 0 0 1 ... The output is: connection total-connections time-to-connect in seconds time-to-establish-stream in seconds time-to-logon in seconds min-message-delivery time max-message-delivery time avg-message-delivery time self-impose wait-time in seconds You will probably want to run sar or a similar tool on the server to watch performance on that end as well. The goal is to eventually get active_jab to run on several clients at once and to either have them pool their response data, or use a heartbeat to sync them and then use a spreadsheet to do the same. Comments, suggestions, help? Regards, Dustin Hey JDEV, Our guy Dustin Puryear is out for a bit (in case you emailed him and didn't get a repsonse) and will be for a few more weeks. I am back. There are a few things I will be working on for the next day or so. Currently, the test suite runs on a single machine. The next step will implement a network heartbeat so that the software can run on multiple machines. Feel free to download and play. Temas, did you get a chance to play with it? Regards, Dustin If you're interested in the Jabber Test Suite project he is/was working on, see http://sourceforge.net/projects/jabbertest/ If you're interested in contributing, please dload it and check it out. Mail me if you have questions, although I'm not the developer or maintainer (although I do work for the same company). Anything I can't answer I'll let you know and fwd to him for when he gets back. -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] setting presence kills 1.4 and 1.4.1
I am trying to set my presence from my client and it is segfaulting the server (both 1.4 and 1.4.1). I AM running jabber on an internal server that does not have a public DNS name. Following is a telnet session that causes a crash. Following that is the last output of jabberd -D. Any clues? The output may get reformated slightly by your mail client. telnet localhost 5222 Trying 127.0.0.1... Connected to crack. Escape character is '^]'. ?xml version='1.0'? stream:stream to='crack' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' ?xml version='1.0'?stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='3AD5D737' xmlns='jabber:client' from='crack' iq type='set' id='3AD5D737' query xmlns='jabber:iq:auth' usernametest_0/username passwordpassword/password resourcework/resource /query /iq iq type='result' id='3AD5D737'/ presencestatusavailable/status/presence Connection closed by foreign host. Thu Apr 12 11:28:41 2001 deliver.c:649 delivering to instance 'sessions' Thu Apr 12 11:28:41 2001 xdb.c:41 xdb_results checking xdb packet xdb type='result' to='sessions' from='test_0@crack' ns='jabber:x:offline' id='5'foo xmlns='jabber:x:offline' message from='crack' to='test_0@crack' subjectWelcome!/subject bodyWelcome to the Jabber server at localhost -- we hope you enjoy this service! For information about how to use Jabber, visit the Jabber Userapos;s Guide at http://docs.jabber.org/ /body x xmlns='jabber:x:delay' from='test_0@crack' stamp='20010405T14:41:13'Offline Storage/x /message /foo/xdb Segmentation fault (core dumped) [root@crack jabber-1.4]# Thu Apr 12 11:28:41 2001 dnsrv.c:143 dnsrv: Read error on coprocess(1): 1 Operation not permitted Thu Apr 12 11:28:41 2001 dnsrv.c:157 DNSRV CHILD: out of loop.. exiting normal Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] Test Suite released!
Ok, SourceForge is way too slow. I just decided to lose my existing history and import directly into CVS. It is now up and running. You can download via anonymous access using: $ cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/jabbertest login $ cvs -z3 -d:pserver:[EMAIL PROTECTED]:/cvsroot/jabbertest co testsuite Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] register then reconnect?
Peter Saint-Andre wrote: Yes, the stream/ basically defines the session, so registering a new user would be starting a new stream. That doesn't seem very logical to me. A stream should be independent of a session, especially if you define a session (I really need to read all of the Jabber docs) as a set of events that occur for a given task. Say, to add a user. Or to authenticate and then message others. It seems like I should be able to actually have multiple sessions on one stream by simply leaving the stream open: open stream add user add user authenticate as user a message message chat logoff authenticate as user b message message chat logoff add user close stream Of course, if we are closing an authenticate session by closing the stream it would be different: open stream add user add user authenticate message message chat close stream I can see the advantage to the first method however in that you could begin to 'cache' your connections client side for a large site and reduce the need to open and close connections, which can be expensive for both parties. You may even be able to pool sessions on one stream at some point. Regards, Dustin Peter Dustin Puryear wrote: I am working with a very simple Jabber client. It seems that if I register a new user I must disconnect and then logon, rather than directly logging on after registration using the same stream. Is this correct? If so, what is the reasoning behind this? Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Peter Saint-Andre [EMAIL PROTECTED] ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
Re: [JDEV] turning OFF karma
Keith Minkler wrote: Simply using dec0/dec tag will turn off karma limits, since it will prevent a user's karma from ever decreasing. I did that and still get: 20010410T17:16:08: [warn] (io_select): 127.0.0.1 is being connection rate limited Relevent jabber.xml: service id="c2s" load pthsock_client./pthsock/pthsock_client.so/pthsock_client /load pthcsock xmlns='jabber:config:pth-csock' authtime/ karma heartbeat2/heartbeat init64/init max64/max inc6/inc dec0/dec penalty0/penalty restore64/restore /karma !-- Use these to listen on particular addresses and/or ports. ip port="5222"127.0.0.1/ip -- ip port="5222"/ !-- The ssl/ tag acts just like the ip/ tag. Except SSL is used on the ports and ips specified. You must specify an IP here, or the connections will fail. ssl port='5223'127.0.0.1/ip ssl port='5224'192.168.1.100/ip -- /pthcsock /service service id="s2s" load dialback./dialback/dialback.so/dialback /load dialback xmlns='jabber:config:dialback' legacy/ !-- Use these to listen on particular addresses and/or ports. ip port="7000"/ ip port="5269"127.0.0.1/ip -- ip port="5269"/ karma init50/init max50/max inc4/inc dec0/dec penalty0/penalty restore50/restore /karma /dialback /service Any help? Notice I set penalty to 0 on the second try. Regards, Dustin On Fri, Apr 06, 2001 at 11:01:55AM -0500, Dustin Puryear wrote: How can I just turn off karma completely? I find the documentation for karma in jabber.xml a bit vague since it doesn't cover all of the parameters. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev Keith Minkler --- Software Developer Jabber.COM, Inc. --- -------- Part 1.2Type: application/pgp-signature -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] jabber test suite
For all those interested in the test suite.. I created a SourceForge site at http://www.sourceforge.net/projects/jabbertest last week. I uploaded the CVS tree as well, and contacted support so they would add it, per their docs. Unfortunately, CVS is still not up. I don't know why it's taking them so long. Hopefully it will be up soon, and I'll let everyone know. Alternatively, if anyone wants to play right now I can send the source code to you via email. If you make changes you can then commit once CVS is up. Regards, Dustin --- Dustin Puryear [EMAIL PROTECTED] Get free email and a permanent address at http://www.netaddress.com/?N=1 ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev
[JDEV] usercount=?
I want to determine the maximum number of connections my client can make against the jabber server (a local server). I place jabberd in debug mode and get user counts: Wed Mar 28 17:02:12 2001 usercount 0 total users I then connect to the server, open a stream, and am successfully authenticated. Yet, the usercount value shown in jabberd's debug output remains 0. What changes this value? I assumed this was the number of connected, authenticated users, but it must be something else. Regards, Dustin -- Dustin Puryear [EMAIL PROTECTED] http://members.telocity.com/~dpuryear In the beginning the Universe was created. This has been widely regarded as a bad move. - Douglas Adams ___ jdev mailing list [EMAIL PROTECTED] http://mailman.jabber.org/listinfo/jdev