Fix the hosed inNetPool.droppedDeliveryStatusDelay stat (caused by an SSU hack)
This commit is contained in:
@ -186,11 +186,15 @@ public class InNetMessagePool implements Service {
|
||||
// was not handled via HandlerJobBuilder
|
||||
_context.messageHistory().droppedOtherMessage(messageBody, (fromRouter != null ? fromRouter.calculateHash() : fromRouterHash));
|
||||
if (type == DeliveryStatusMessage.MESSAGE_TYPE) {
|
||||
long timeSinceSent = _context.clock().now() -
|
||||
((DeliveryStatusMessage)messageBody).getArrival();
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Dropping unhandled delivery status message created " + timeSinceSent + "ms ago: " + messageBody);
|
||||
_context.statManager().addRateData("inNetPool.droppedDeliveryStatusDelay", timeSinceSent, timeSinceSent);
|
||||
// Avoid logging side effect from a horrible UDP EstablishmentManager hack
|
||||
// We could set up a separate stat for it but don't bother for now
|
||||
long arr = ((DeliveryStatusMessage)messageBody).getArrival();
|
||||
if (arr > 10) {
|
||||
long timeSinceSent = _context.clock().now() - arr;
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Dropping unhandled delivery status message created " + timeSinceSent + "ms ago: " + messageBody);
|
||||
_context.statManager().addRateData("inNetPool.droppedDeliveryStatusDelay", timeSinceSent, timeSinceSent);
|
||||
}
|
||||
} else if (type == TunnelCreateStatusMessage.MESSAGE_TYPE) {
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Dropping slow tunnel create request response: " + messageBody);
|
||||
|
@ -466,6 +466,8 @@ public class EstablishmentManager {
|
||||
_log.info("Completing to the peer after confirm: " + peer);
|
||||
DeliveryStatusMessage dsm = new DeliveryStatusMessage(_context);
|
||||
dsm.setArrival(Router.NETWORK_ID); // overloaded, sure, but future versions can check this
|
||||
// This causes huge values in the inNetPool.droppedDeliveryStatusDelay stat
|
||||
// so it needs to be caught in InNetMessagePool.
|
||||
dsm.setMessageExpiration(_context.clock().now()+10*1000);
|
||||
dsm.setMessageId(_context.random().nextLong(I2NPMessage.MAX_ID_VALUE));
|
||||
_transport.send(dsm, peer);
|
||||
|
Reference in New Issue
Block a user