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

Reply via email to