* Fragmenter: don't re-throw the corrupt fragment IllegalStateException,
to limit the damage - root cause still not found
This commit is contained in:
@ -106,7 +106,18 @@ public class FragmentHandler {
|
|||||||
if (_log.shouldLog(Log.ERROR))
|
if (_log.shouldLog(Log.ERROR))
|
||||||
_log.error("Corrupt fragment received: offset = " + offset, e);
|
_log.error("Corrupt fragment received: offset = " + offset, e);
|
||||||
_context.statManager().addRateData("tunnel.corruptMessage", 1, 1);
|
_context.statManager().addRateData("tunnel.corruptMessage", 1, 1);
|
||||||
throw e;
|
// java.lang.IllegalStateException: wtf, don't get the completed size when we're not complete - null fragment i=0 of 1
|
||||||
|
// at net.i2p.router.tunnel.FragmentedMessage.getCompleteSize(FragmentedMessage.java:194)
|
||||||
|
// at net.i2p.router.tunnel.FragmentedMessage.toByteArray(FragmentedMessage.java:223)
|
||||||
|
// at net.i2p.router.tunnel.FragmentHandler.receiveComplete(FragmentHandler.java:380)
|
||||||
|
// at net.i2p.router.tunnel.FragmentHandler.receiveSubsequentFragment(FragmentHandler.java:353)
|
||||||
|
// at net.i2p.router.tunnel.FragmentHandler.receiveFragment(FragmentHandler.java:208)
|
||||||
|
// at net.i2p.router.tunnel.FragmentHandler.receiveTunnelMessage(FragmentHandler.java:92)
|
||||||
|
// ...
|
||||||
|
// still trying to find root cause
|
||||||
|
// let's limit the damage here and skip the:
|
||||||
|
// .transport.udp.MessageReceiver: b0rked receiving a message.. wazza huzza hmm?
|
||||||
|
//throw e;
|
||||||
} finally {
|
} finally {
|
||||||
// each of the FragmentedMessages populated make a copy out of the
|
// each of the FragmentedMessages populated make a copy out of the
|
||||||
// payload, which they release separately, so we can release
|
// payload, which they release separately, so we can release
|
||||||
|
Reference in New Issue
Block a user