Ahh, I implimented one of toad's suggestions for KillSurplusConnections (sync lru the whole thing) without thinking enough, moved the sync lru back inside the function so that it can't deadlock. Will commit when CVS starts listening to me again.
--Brandon On Sun, 09/28/03 at 05:02:10 -0400, Edward J. Huff wrote: > This is my build, essentially 6209. After 9 hours, it > sort of hung. I expect that pretty soon it will start > spitting out outOfMemory exceptions. I ran > kill -QUIT $(cat freenet.pid) to get a stack trace; > this appeared at the end. > > Found one Java-level deadlock: > ============================= > "QThread-48990": > waiting to lock monitor 0x808848c (object 0x494b9558, a > java.lang.Object), > which is held by "QThread-49356" > "QThread-49356": > waiting to lock monitor 0x808810c (object 0x45f30a78, a > freenet.support.LRUQueue), > which is held by "QThread-48990" > > Java stack information for the threads listed above: > =================================================== > "QThread-48990": > at freenet.ConnectionHandler.terminate > (ConnectionHandler.java:2828) > - waiting to lock <0x494b9558> (a java.lang.Object) > at freenet.OpenConnectionManager.KillSurplusConnections > (OpenConnectionManager.java:544) > at freenet.OpenConnectionManager.put > (OpenConnectionManager.java:113) > - locked <0x45f30a78> (a freenet.support.LRUQueue) > at freenet.ConnectionHandler.registerOCM > (ConnectionHandler.java:360) > at freenet.interfaces.FreenetConnectionRunner.handle > (FreenetConnectionRunner.java:135) > at freenet.interfaces.PublicNIOInterface$ConnectionShell.run > (PublicNIOInterface.java:147) > at freenet.thread.QThreadFactory$QThread.run > (QThreadFactory.java:306) > "QThread-49356": > at freenet.support.LRUQueue.push > (LRUQueue.java:25) > - waiting to lock <0x45f30a78> (a freenet.support.LRUQueue) > at freenet.OpenConnectionManager.findFreeConnection > (OpenConnectionManager.java:189) > at freenet.ConnectionHandler.innerSendMessageAsync > (ConnectionHandler.java:2481) > - locked <0x494b9558> (a java.lang.Object) > at freenet.ConnectionHandler.sendMessageAsync > (ConnectionHandler.java:2425) > - locked <0x494b93d0> (a freenet.ConnectionHandler) > at freenet.node.states.FNP.FNPFeedbackToken.restarted > (FNPFeedbackToken.java:45) > at freenet.node.states.request.Pending.relayRestarted > (Pending.java:726) > at freenet.node.states.request.Pending.receivedRequestInitiator > (Pending.java:315) > at freenet.node.states.request.DataPending.receivedMessage > (DataPending.java:69) > at sun.reflect.GeneratedMethodAccessor2.invoke > (Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke > (Method.java:324) > at freenet.node.State.received > (State.java:126) > at freenet.node.StateChain.received > (StateChain.java:190) > at freenet.node.StateChain.received > (StateChain.java:71) > - locked <0x48ec3fc8> (a freenet.node.StateChain) > at freenet.node.StandardMessageHandler$Ticket.run > (StandardMessageHandler.java:226) > - locked <0x48ec3fc8> (a freenet.node.StateChain) > at freenet.node.StandardMessageHandler$Ticket.received > (StandardMessageHandler.java:165) > at freenet.node.StandardMessageHandler$Ticket.access$100 > (StandardMessageHandler.java:123) > at freenet.node.StandardMessageHandler.handle > (StandardMessageHandler.java:71) > at freenet.Ticker$Event.run(Ticker.java:284) > at freenet.thread.QThreadFactory$QThread.run > (QThreadFactory.java:306) > > Found 1 deadlock. > > > -- > Edward J. Huff <[EMAIL PROTECTED]> > _______________________________________________ > Devl mailing list > [EMAIL PROTECTED] > http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl _______________________________________________ Devl mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl
