Opened 7 years ago

Closed 7 years ago

#620 closed defect (worksforme)

NTCP Pumper NullPointerException

Reported by: killyourtv Owned by: zzz
Priority: minor Milestone: 0.9
Component: router/transport Version: 0.8.13
Keywords: npe, ntcp pumper Cc:
Parent Tickets:

Description

Spotted in my logs:

3/23/12 6:11:09 AM ERROR [NTCP Pumper ] ter.transport.ntcp.EventPumper: Error in the event pumper
     java.lang.NullPointerException
     at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:633)
     at net.i2p.router.transport.ntcp.EventPumper.runDelayedEvents(EventPumper.java:778)
     at net.i2p.router.transport.ntcp.EventPumper.run(EventPumper.java:169)
     at java.lang.Thread.run(Thread.java:722)
     at net.i2p.util.I2PThread.run(I2PThread.java:85)

Subtickets

Change History (8)

comment:1 Changed 7 years ago by zzz

OS and Java version info please

comment:2 Changed 7 years ago by killyourtv

I2P version: 0.8.13-20-deb1
Java version: Oracle Corporation1.7.0_03-icedtea (OpenJDK Runtime Environment1.7.0_03-icedtea-b147)
Platform: Linuxamd643.2.0-2-amd64

comment:3 Changed 7 years ago by zzz

  • Summary changed from 0.8.13-20, NTCP Pumper NullPointerException to NTCP Pumper NullPointerException

This is happening in the lib and we aren't passing null to it so we may have to find the source in open JDK to get to the bottom of it.

comment:4 Changed 7 years ago by zzz

If you could find a link to the OpenJDK 1.7.0_03 source (browsable or tarball) that would be an immense help

comment:5 Changed 7 years ago by killyourtv

Sorry for the delay (I didn't see this comment until now).

A tarball can be fetched from http://ftp.debian.org/debian/pool/main/o/openjdk-7/openjdk-7_7~u3-2.1.1~pre1.orig.tar.gz

I've not been able to figure out where the browseable source for this version is from http://hg.openjdk.java.net/

FWIW, I'm still on 0.8.13-25 and I've not seen this error since filing this ticket.

comment:6 Changed 7 years ago by zzz

line 633 is the if()

                            synchronized (stateLock) {
                                if (isOpen() && (localAddress == null) ||
                                    ((InetSocketAddress)localAddress)
                                        .getAddress().isAnyLocalAddress())
                                {
                                    // Socket was not bound before connecting or
                                    // Socket was bound with an "anyLocalAddress"
                                    localAddress = Net.localAddress(fd);
                                }
                            }

so localAddress.getAddress() returns null. Which it can http://docs.oracle.com/javase/1.5.0/docs/api/java/net/InetSocketAddress.html if it is "unresolved".

But why would the local address be unresolved?

This appears to be either some strange localhost DNS lookup problem or a JVM bug. It really doesn't look like something we did.

Leaving open for now but I don't think there's anything we can do here.

comment:7 Changed 7 years ago by killyourtv

Update: I still haven't seen this logged again since I filed this report.

comment:8 Changed 7 years ago by zzz

  • Resolution set to worksforme
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.