forked from I2P_Developers/i2p.i2p
* I2CP: Failsafe check for delivery job requeueing forever (ticket #819)
This commit is contained in:
@ -1,3 +1,10 @@
|
||||
2013-01-12 zzz
|
||||
* EepGet: Don't retry if proxy isn't there
|
||||
* I2CP: Failsafe check for delivery job requeueing forever (ticket #819)
|
||||
* jobs.jsp: Add table of pending jobs
|
||||
* NetDB: Split up files into subdirectories
|
||||
* SAM: Force i2cp.messageReliability=None (ticket #819)
|
||||
|
||||
2013-01-02 zzz
|
||||
* DataHelper: new getASCII() method
|
||||
* DataStructures:
|
||||
@ -6,7 +13,7 @@
|
||||
* I2CP:
|
||||
- Remove unused equals() methods for message classes
|
||||
- Remove static logs
|
||||
- Fix leak if nonce = 0 but reliability != none
|
||||
- Fix leak if nonce = 0 but reliability != none (ticket #819)
|
||||
- More work on failure codes (ticket #788)
|
||||
* Logs: Fix setting log filename (ticket #805)
|
||||
* SAM: Synchronize dissector
|
||||
|
@ -18,7 +18,7 @@ public class RouterVersion {
|
||||
/** deprecated */
|
||||
public final static String ID = "Monotone";
|
||||
public final static String VERSION = CoreVersion.VERSION;
|
||||
public final static long BUILD = 4;
|
||||
public final static long BUILD = 5;
|
||||
|
||||
/** for example "-test" */
|
||||
public final static String EXTRA = "";
|
||||
|
@ -628,11 +628,13 @@ class ClientConnectionRunner {
|
||||
*
|
||||
*/
|
||||
private final static long REQUEUE_DELAY = 500;
|
||||
private static final int MAX_REQUEUE = 60; // 30 sec.
|
||||
|
||||
private class MessageDeliveryStatusUpdate extends JobImpl {
|
||||
private final MessageId _messageId;
|
||||
private final int _status;
|
||||
private long _lastTried;
|
||||
private int _requeueCount;
|
||||
|
||||
/**
|
||||
* Do not use for status = STATUS_SEND_ACCEPTED; use ackSendMessage() for that.
|
||||
@ -662,12 +664,20 @@ class ClientConnectionRunner {
|
||||
msg.setStatus(_status);
|
||||
|
||||
if (!alreadyAccepted(_messageId)) {
|
||||
_log.warn("Almost send an update for message " + _messageId + " to "
|
||||
if (_requeueCount++ > MAX_REQUEUE) {
|
||||
// bug requeueing forever? failsafe
|
||||
_log.error("Abandon update for message " + _messageId + " to "
|
||||
+ MessageStatusMessage.getStatusString(msg.getStatus())
|
||||
+ " for session " + _sessionId.getSessionId()
|
||||
+ " for session " + _sessionId.getSessionId());
|
||||
} else {
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Almost send an update for message " + _messageId + " to "
|
||||
+ MessageStatusMessage.getStatusString(msg.getStatus())
|
||||
+ " for session " + _sessionId.getSessionId()
|
||||
+ " before they knew the messageId! delaying .5s");
|
||||
_lastTried = _context.clock().now();
|
||||
requeue(REQUEUE_DELAY);
|
||||
_lastTried = _context.clock().now();
|
||||
requeue(REQUEUE_DELAY);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user