[JDEV] dropped messages?

Thomas Muldowney temas at box5.net
Wed Aug 8 11:45:56 CDT 2001


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?

--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.00310    0.10796    0.00471    600    600    0.00000
> 20     1     60       0.00484    0.15478    0.00930    1200   1200   0.00000
> 30     1     60       0.00668    0.16320    0.01948    1800   1800   0.00000
> 40     1     60       0.00844    0.17075    0.02729    2400   2400   0.00000
> 50     1     60       0.01026    0.21504    0.04267    3000   3000   0.00000
> 60     1     60       0.00608    0.21595    0.05980    3600   3600   0.00000
> 70     1     60       0.00532    0.36635    0.05474    4200   4200   0.00000
> 80     1     60       0.01197    0.19757    0.03924    4800   4800   0.00000
> 90     1     60       0.00984    0.23845    0.04508    5400   5400   0.00000
> 100    1     60       0.00233    0.33065    0.06156    6000   6000   0.00000
> 110    1     60       0.00326    0.48642    0.05514    6600   6600   0.00000
> 120    1     60       0.00518    6.02132    0.07296    6960   7200   0.03333
> 130    1     60       0.00900    6.10875    0.10111    7380   7800   0.05385
> 140    1     60       0.01031    5.98667    0.09968    7980   8400   0.05000
> 150    1     60       0.01358    6.16324    0.10493    7980   9000   0.11333
> 160    1     60       0.01539    6.23972    0.14795    8280   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 <dpuryear at usa.net>
> 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
> jdev at jabber.org
> http://mailman.jabber.org/listinfo/jdev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: <http://mail.jabber.org/pipermail/jdev/attachments/20010808/5c03fc32/attachment-0002.pgp>


More information about the JDev mailing list