While testing auto-update, my node started up, I had 15 nodes backed off
because of AcceptedTimeout or FatalTimeout, and 1 connected. Then it
restarted itself because it detected a deadlock in PacketSender.

This is with the latest code, and LD_ASSUME_KERNEL _not_ enabled. The
stack dump provided included a classic EvilJVMBug deadlock:

"PacketSender thread for 0" daemon prio=1 tid=0x0831aba8 nid=0x3455
waiting for monitor entry [0xb1187000..0xb11875c0]
        at freenet.node.KeyTracker.getNextUrgentTime(KeyTracker.java:790)
        - waiting to lock <0x7ec53360> (a 
freenet.support.UpdatableSortedLinkedListWithForeignIndex)
        at freenet.node.PeerNode.getNextUrgentTime(PeerNode.java:783)
        - locked <0x7e1eb6e8> (a freenet.node.PeerNode)
        at freenet.node.PacketSender.realRun(PacketSender.java:144)
        at freenet.node.PacketSender.run(PacketSender.java:94)
        at java.lang.Thread.run(Thread.java:595

The lock 0x7ec53360 is not locked by any thread. So we can safely
conclude that the EvilJVMBug is alive and well, at least with Sun
1.5.0_07, but the deadlock detector DOES work. Given that the deadlock
detector works, and NPTL is mandatory on some platforms, difficult to
avoid on others, and a significant performance gain on all, I don't
think it's unreasonable to disable the warning about NPTL (as we have
done), even though the bug persists - as long as the node is running
under the wrapper and is therefore restartable.
-- 
Matthew J Toseland - [EMAIL PROTECTED]
Freenet Project Official Codemonkey - http://freenetproject.org/
ICTHUS - Nothing is impossible. Our Boss says so.

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to