Opened 7 years ago

Closed 6 years ago

#1403 closed defect (fixed)

NPE while building GarlicMessage

Reported by: str4d Owned by: zzz
Priority: minor Milestone: 0.9.16
Component: router/general Version: 0.9.15
Keywords: NPE Cc:
Parent Tickets: Sensitive: no


09:02:39 | Thread terminated unexpectedly: I2CP Internal Reader 3
09:02:39 | java.lang.NullPointerException
09:02:39 | 	at
09:02:39 | 	at
09:02:39 | 	at net.i2p.router.message.GarlicMessageBuilder.buildCommonClove(
09:02:39 | 	at net.i2p.router.message.GarlicMessageBuilder.buildClove(
09:02:39 | 	at net.i2p.router.message.GarlicMessageBuilder.buildCloveSet(
09:02:39 | 	at net.i2p.router.message.GarlicMessageBuilder.buildMessage(
09:02:39 | 	at net.i2p.router.message.GarlicMessageBuilder.buildMessage(
09:02:39 | 	at net.i2p.router.message.OutboundClientMessageJobHelper.createGarlicMessage(
09:02:39 | 	at net.i2p.router.message.OutboundClientMessageOneShotJob.send(
09:02:39 | 	at net.i2p.router.message.OutboundClientMessageOneShotJob.access$300(
09:02:39 | 	at net.i2p.router.message.OutboundClientMessageOneShotJob$SendJob.runJob(
09:02:39 | 	at net.i2p.router.message.OutboundClientMessageOneShotJob.runJob(
09:02:39 | 	at net.i2p.router.ClientMessagePool.add(
09:02:39 | 	at net.i2p.router.client.ClientManager.distributeMessage(
09:02:39 | 	at net.i2p.router.client.ClientConnectionRunner.distributeMessage(
09:02:39 | 	at net.i2p.router.client.ClientMessageEventListener.handleSendMessage(
09:02:39 | 	at net.i2p.router.client.ClientMessageEventListener.messageReceived(
09:02:39 | 	at net.i2p.internal.QueuedI2CPMessageReader$
09:02:39 | 	at
09:02:39 | 	at
I2P version: 0.9.15-0
Java version: Oracle Corporation 1.7.0_65 (OpenJDK Runtime Environment 1.7.0_65-b32)
Wrapper version: 3.1.1
Server version: 8.1.15.v20140411
Servlet version: Jasper JSP 2.1 Engine
Platform: Linux i386 3.15.4-x86_64-linode45
Processor: uninitialized (unrecognized)
Jbigi: Locally optimized native BigInteger library loaded from file
Encoding: ANSI_X3.4-1968
Charset: US-ASCII


Change History (3)

comment:1 Changed 7 years ago by zzz

Owner: set to zzz
Status: newaccepted

Never seen this before.

So the instructions, the message, or the certificate in one of the cloves is null; all come from the config.

It could be the ACK clove, the LS clove, or the data clove. Hard to tell. But my guess would be the ACK clove, as there's relatively (0.9.12) recent changes in there to wrap the ACK in another garlic. See OCMJobHelper. I see that wrapDSM() can return null but that isn't checked at line 222; that could be it.

comment:2 Changed 7 years ago by zzz

Status: acceptedtesting

Hopefully fixed in feed7db1184a2b8a06ddf35d45dc0e993895e2be 0.9.15-17-rc. Best guess. Leaving open to review for other possible cases.

comment:3 Changed 6 years ago by zzz

Resolution: fixed
Status: testingclosed
Note: See TracTickets for help on using tickets.