[JDEV] Karma and Jabber 1.2 RC

Jim Sewell jsewell at exobox.com
Mon Oct 30 16:39:02 CST 2000

Jabber folks:

Jabber 1.2 seems quite a bit more stable than 1.0--at least for what I am
doing to it so far.  
Thanks to all involved.

I have some questions about karma under Jabber 1.2 RC.  I am running it on
Linux 6.2.  Jabber transport only.

I installed Jabber 1.2 and ran some Jabber client tests against it.  I had
two clients register with the server 
and then send messages to each other.  The messages were rather large, say
30K bytes or more.  
The clients ended up in a situation where they were waiting-forever.  I
think that they were waiting on the
send part of the message exchange.  I ran Jabber 1.2 in debug mode and was
logging the output
to a file.  The file contained lots of messages saying that the two sockets
involved in the message
exchanges were "out of karma".  No data transfer was taking place at all at
this point!

There is a document describing karma in the docs directory in the
jabber_1.2RC package.  
Apparently karma is a flow-control mechanism imposed on socket connections
from the client.

Karma is configured in the Jabber.xml file using parameters, defaults in
    max (10), inc (1) , dec (-1) , restore (5), and penalty (-5).

Karma is used in the pthsock code contained in the Jabber_1.2RC package.

My questions are:

For my situation what is an appropriate configuration for karma in the case
where large data transfers 
from clients are allowed or expected?  I did find a setting that got around
my problem but is it the correct

o  I tried various karma configuration settings, like raising the max to 100
or so.  Some of these attempts
   resulted in Jabber 1.2 exiting (no core dump, just an exit or an abort)
when I ran my client tests.

o I tried leaving all karma settings alone, except for the dec value, which
I set to zero.  I think that this
  essentially turns off the karma function.   This action was successful!
But is it the right thing to do?

What is the intent of karma and its use?  Should I somehow compute an
expected maximum throughput
and derive a set of karma values and then recompile the source to reflect
this instead of just turning it off?
Is Karma going to be used in 1.3 when you shift to pthreads (I presume you
guys mean GNU pthreads?)?
What are the possible range of values for the various karma settings in the
Jabber.xml file?



James Sewell
Software Engineer
exobox, Inc.
jsewell at exobox.com

More information about the JDev mailing list