Update of /cvsroot/freenet/freenet/src/freenet/node/states/request In directory sc8-pr-cvs1:/tmp/cvs-serv1585/src/freenet/node/states/request
Modified Files: TransferReply.java TransferInsert.java Log Message: 6344: Even more stats. Even more logging. Catch some corner cases in .received(DataReceived)'s. Ignore a double abort in SendData. Index: TransferReply.java =================================================================== RCS file: /cvsroot/freenet/freenet/src/freenet/node/states/request/TransferReply.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -w -r1.20 -r1.21 --- TransferReply.java 15 Nov 2003 21:11:59 -0000 1.20 +++ TransferReply.java 20 Nov 2003 23:54:52 -0000 1.21 @@ -186,6 +186,7 @@ Core.logger.log(this, "Cache failed while receiving data! for "+this, Logger.ERROR); terminateRouting(false, false, false); + Core.diagnostics.occurrenceCounting("sendFailedCacheFailed",1); // the repercussions will strike in the DataSent.. // Ignore for NGRouting, our fault break; @@ -197,7 +198,7 @@ if (lastPeer != null) routes.verityFailed(); // do the restart with the DataSent - sendingData.abort(Presentation.CB_RESTARTED); + Core.diagnostics.occurrenceCounting("sendFailedCorruptData",1); break; case Presentation.CB_RECV_CONN_DIED: @@ -207,14 +208,20 @@ receivingData.length(), endTransferTime - replyTime); Core.diagnostics.occurrenceCounting("recvConnDiedInTransfer", 1); - sendingData.abort(Presentation.CB_RESTARTED); // restart break; case Presentation.CB_RESTARTED: Core.logger.log(this, "Upstream node restarted for "+this, Logger.MINOR); // pick it up with the DataSent - sendingData.abort(Presentation.CB_RESTARTED); + Core.diagnostics.occurrenceCounting("sendFailedSourceRestarted",1); + break; + + case Presentation.CB_ABORTED: + // Only for stats - not valid + Core.logger.log(this, "Failed to send because source sent CB_ABORTED on "+this, + Logger.NORMAL); + Core.diagnostics.occurrenceCounting("sendFailedSourceAborted",1); break; default: @@ -226,6 +233,9 @@ routes.transferFailed(replyTime - routedTime, hopsToLive, length, endTransferTime - replyTime); + Core.diagnostics.occurrenceCounting("sendFailedUnknownCB",1); + Core.logger.log(this, "Aborted send due to unknown CB: "+Presentation.getCBname(cb)+" for "+this, + Logger.NORMAL); } Core.logger.log(this, "Failed to receive data with CB "+ Index: TransferInsert.java =================================================================== RCS file: /cvsroot/freenet/freenet/src/freenet/node/states/request/TransferInsert.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -w -r1.19 -r1.20 --- TransferInsert.java 15 Nov 2003 21:11:59 -0000 1.19 +++ TransferInsert.java 20 Nov 2003 23:54:52 -0000 1.20 @@ -53,6 +53,7 @@ } receivingData.cancel(); sendingData.abort(Presentation.CB_ABORTED); + Core.diagnostics.occurrenceCounting("sendFailedInsertAborted",1); mq.addElement(qf); // From the requester, so Routing does not need to know return transition(new TransferInsertPending(this), true); @@ -66,6 +67,7 @@ } catch (RequestAbortException rae) { // going to RequestDone with SendFailedException receivingData.cancel(); + Core.diagnostics.occurrenceCounting("sendFailedRestartFailed",1); sendingData.abort(Presentation.CB_ABORTED); queryAborted(n); return transition(rae.state, false); // drop queue @@ -86,6 +88,7 @@ throw new BadStateException("Not my request initiator: "+ri+" for "+this); } sendingData.abort(Presentation.CB_ABORTED); + Core.diagnostics.occurrenceCounting("sendFailedInsertTimedOut",1); try { // Will cause a searchFailed() and a restart super.receivedRequestInitiator(n, ri); @@ -105,6 +108,7 @@ this); } sendingData.abort(Presentation.CB_ABORTED); + Core.diagnostics.occurrenceContinuous("sendFailedInsertRejected",1); mq.addElement(qr); // QR from the node we routed to // Will cause a searchFailed in TIP.rQR @@ -115,6 +119,7 @@ if (!fromLastPeer(dr)) { throw new BadStateException("DataReply from the wrong peer! for "+this); } + Core.diagnostics.occurrenceCounting("sendFailedCollision",1); sendingData.abort(Presentation.CB_ABORTED); mq.addElement(dr); return transition(new TransferInsertPending(this), true); @@ -141,6 +146,7 @@ insertReply(n); } catch (RequestAbortException rae) { // send failed.. + Core.diagnostics.occurrenceCounting("sendFailedRestartFailed", 1); sendingData.abort(Presentation.CB_ABORTED); // QueryAborted already sent transition(rae.state, false); // Don't care for Routing @@ -244,10 +250,13 @@ fail(n, "You sent bad data! for "+this); Core.logger.log(this, "TransferInsert source sent bad data! Report if occurs often. Detail:"+this+", "+dr, Logger.NORMAL); + Core.diagnostics.occurrenceCounting("sendFailedCorruptData",1); case Presentation.CB_ABORTED: - if(cb == Presentation.CB_ABORTED) + if(cb == Presentation.CB_ABORTED) { Core.logger.log(this, "TransferInsert source sent CB_ABORTED :( ("+this+", "+dr+")", Logger.MINOR); + Core.diagnostics.occurrenceCounting("sendFailedSourceAborted",1); + } case Presentation.CB_RECV_CONN_DIED: if(cb == Presentation.CB_RECV_CONN_DIED) { Core.logger.log(this, "TransferInsert source connection died! Report if occurs often. Detail:"+this+", "+dr, @@ -257,7 +266,18 @@ sendingData.abort(Presentation.CB_ABORTED); break; + case Presentation.CB_RESTARTED: + Core.logger.log(this, "Insert source sent CB_RESTARTED ! on "+this, + Logger.NORMAL); + Core.diagnostics.occurrenceCounting("sendFailedSourceRestarted",1); + sendingData.abort(Presentation.CB_ABORTED); + break; + default: + Core.logger.log(this, "Insert received unrecognized failure code "+ + Presentation.getCBname(cb)+" on "+this, Logger.NORMAL); + Core.diagnostics.occurrenceCounting("sendFailedUnknownCB",1); + sendingData.abort(Presentation.CB_ABORTED); fail(n, "You sent "+Presentation.getCBdescription(cb)); Core.logger.log(this, "Failed to receive insert data with CB "+Presentation. _______________________________________________ cvs mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs