On Monday 28 July 2003 18:44, Pascal wrote:
> Just updated from CVS and I am seeing the same thing.  Looks like
> someone added code to open a connection to every node in the routing
> table on startup, each attempt to open a connection uses its own thread,
> and the OCM ignores the thread limit.  From the below I would guess you
> have about 750 nodes in your routing table.

My routing table was limited to 128 nodes. I have since reduced it to 64, and 
the problem has not gone away.

The problem was also not happening at startup, but after some uptime and heavy 
load. Sometimes it would happen after a few minutes, sometimes days.

> Best solution would be to make the opening of connections non-blocking.
> The negotiation itself would still need a thread, but there is no reason
> to allocate a thread as soon as the SYN is sent.  I don't know if this
> is possible in java.nio.  Quick fix would be to make the OCM obey the
> thread limit, but this would starve the node of threads.  I'm not sure
> if this starvation would be temporary or if the connections
> automatically retry.  Your description makes it sound like your node had
> been up for a while before you noticed the problem.  Maybe a setting
> should be added to artificially limit the number of pending connections?

At the point where I tool the class list it was up for about a day. It was 
working fine up until about 5 minutes befure I noticed something was wrong 
with it. Usually this is easy to spot because it's bandwidth consumption 
drops to 0 and stays there. It doesn't appear to be a recoverable condition.

The number of threads goes up, and up, and up, until either the machine runs 
out of resources and Java crashes, or until I manually restart the node.

Gordan
_______________________________________________
devl mailing list
[EMAIL PROTECTED]
http://hawk.freenetproject.org:8080/cgi-bin/mailman/listinfo/devl

Reply via email to