On Tue, Feb 19, 2002 at 03:27:37PM +0100, Niklas Mehner wrote:
> I think the "Chain probably ended" appears very often.
This happens when a reply message is accepted but there is no state.
It's either that nodes are very delayed in their replies, or your node
is loosing states do to overflow.
> 18.02.2002 21:35:30 (freenet.node.Node, QThread-7-0): Message source:
> freenet.ConnectionHandler at 1bed71 msg: QueryRejected @ 23780d55d23166e2
> received during state Request Done @ 23780d55d23166e2 was not welcome
> freenet.node.BadStateException: Received source:
> freenet.ConnectionHandler at 1bed71 msg: QueryRejected @ 23780d55d23166e2
> for Request that was already handled
I guess your node timed out while waiting for the response, and then
rejected the query (RequestDone is usually only reached after a
rejection, because if a final reply is made the state is dropped
completely).
> 18.02.2002 22:06:37 (freenet.node.Node, QThread-19-0): Message
> freenet.node.states.request.RequestInitiator at 878c4c received during
> state DataRequest Pending @ c424f5379b916156 was not welcome
> freenet.node.BadStateException: Not my request initiator:
The RequestInitiator is the message that is scheduled in case no reply
comes back. When a QueryRestarted is received, it is canceled from the
ticker and a new one is added with the same delay. Due to race
conditions the old intiator could already be waiting to execute in
Ticket when it is canceled, so it reaches the Pending state which
recognizes that it is not the new Initiator it just scheduled ("Not my
initiator".)
> 18.02.2002 22:11:14 (freenet.node.Node, QThread-9-0): Error getting
> initial state for message: freenet.node.states.announcement.NoReply at e265d0
> freenet.node.BadStateException: Internal event object received with no
> states. Chain probably ended.
NoReply is an internal message put on the ticker for when no reply is
received. It should be canceled when a reply is received, but due to the
same race conditions or a bug it isn't.
> 18.02.2002 22:12:35 (freenet.node.Node, QThread-9-0): Message source:
> freenet.ConnectionHandler at 1a0ae6 msg: Accepted @ abf1cbda4c7c4255
> received during state Complete My Announcement @ abf1cbda4c7c4255 was
> not welcome
Not sure about this, it seems weird that a node would take so long to
return Accepted that the announcing node had time to finish the first
three steps elsewhere, but that seems to be what has happened.
> 18.02.2002 22:42:48 (freenet.node.Node, QThread-20-0): Message source:
> freenet.ConnectionHandler at d5b89c msg: QueryRejected @ aa70d1c6211b6b7d
> received during state DataRequest Pending @ aa70d1c6211b6b7d was not welcome
> freenet.node.BadStateException: QueryRejected from the wrong peer!
The node waited, gave up, tried a second node, and then finally received
a QueryRejected from the first.
> 18.02.2002 22:57:35 (freenet.node.Node, QThread-9-0): Message source:
> freenet.ConnectionHandler at 9da93 msg: DataNotFound @ 8a0b44e0f8580352
> received during state DataRequest Pending @ 8a0b44e0f8580352 was not welcome
> freenet.node.BadStateException: DataNotFound from the wrong peer!
The node waited, gave up, tried a second node, then finally received a
DataNotFound from the first.
> 19.02.2002 11:32:59 (freenet.node.Node, QThread-12-0): Error getting
> initial state for message: source: freenet.ConnectionHandler at 542a75 msg:
> Accepted @ e44ae1f8ea25d14b
> freenet.node.BadStateException: This message is a response
The state was already gone when accepted was received.
The general property seems to be that it often takes forever to get a
response. That is not surprising considering the overload situation,
but does not indicate that otherwise healthy queries are breaking
because of message reordering.
--
Oskar Sandberg
oskar at freenetproject.org
_______________________________________________
Devl mailing list
Devl at freenetproject.org
http://lists.freenetproject.org/mailman/listinfo/devl