Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#589 closed defect (fixed)

router console failed

Reported by: DISABLED Owned by: zzz
Priority: major Milestone: 0.8.13
Component: router/netdb Version: 0.8.12
Keywords: Cc:
Parent Tickets: Sensitive: no

Description

Router console failed as follows, the http proxy seems to work ok as I'm posting this issue:

Sorry! There has been an internal error.

Please report bugs on trac.i2p2.i2p or trac.i2p2.de. You may use the username "guest" and password "guest" if you do not wish to register.

Please include this information in bug reports:
Error Details

Error 500: /logs.jsp

java.lang.NullPointerException?:

at net.i2p.router.networkdb.kademlia.KBucketSet.getAll(KBucketSet.java:113)
at net.i2p.router.networkdb.kademlia.KademliaNetworkDatabaseFacade?.getKnownRouters(KademliaNetworkDatabaseFacade?.java:371)
at net.i2p.router.web.SummaryHelper?.getAllPeers(SummaryHelper?.java:93)
at net.i2p.router.web.SummaryBarRenderer?.renderSummaryHTML(SummaryBarRenderer?.java:273)
at net.i2p.router.web.SummaryHelper?.renderSummaryBar(SummaryHelper?.java:607)
at net.i2p.router.web.jsp.logs_jsp._jspService(logs_jsp.java:222)
at org.apache.jasper.runtime.HttpJspBase?.service(HttpJspBase?.java:94)
at javax.servlet.http.HttpServlet?.service(HttpServlet?.java:689)
at org.mortbay.jetty.servlet.ServletHolder?.handle(ServletHolder?.java:428)
at org.mortbay.jetty.servlet.WebApplicationHandler?.dispatch(WebApplicationHandler?.java:473)
at org.mortbay.jetty.servlet.ServletHandler?.handle(ServletHandler?.java:568)
at net.i2p.router.web.LocaleWebAppHandler?.handle(LocaleWebAppHandler?.java:90)
at org.mortbay.http.HttpContext?.handle(HttpContext?.java:1535)
at org.mortbay.jetty.servlet.WebApplicationContext?.handle(WebApplicationContext?.java:633)
at org.mortbay.http.HttpContext?.handle(HttpContext?.java:1487)
at org.mortbay.http.HttpServer?.service(HttpServer?.java:909)
at org.mortbay.http.HttpConnection?.service(HttpConnection?.java:820)
at org.mortbay.http.HttpConnection?.handleNext(HttpConnection?.java:986)
at org.mortbay.http.HttpConnection?.handle(HttpConnection?.java:837)
at org.mortbay.http.SocketListener?.handleConnection(SocketListener?.java:245)
at org.mortbay.util.ThreadedServer?.handle(ThreadedServer?.java:357)
at org.mortbay.util.ThreadPool?$PoolThread?.run(ThreadPool?.java:534)


I2P Version and Running Environment

I2P version: 0.8.12-0
Java version: Sun Microsystems Inc. 1.6.0_18 (OpenJDK Runtime Environment 1.6.0_18-b18)
Platform: Linux arm 2.6.38.3-trimslice-1.03
Processor: uninitialized (arm)
Jbigi: Locally optimized native BigInteger? library loaded from file
Encoding: UTF-8

Note that system information, log timestamps, and log messages may provide clues to your location; please review everything you include in a bug report.

Subtickets

Change History (4)

comment:1 Changed 8 years ago by zzz

Owner: set to zzz
Status: newaccepted

Thanks for the report.

Was this shortly after startup?

I also have a trimslice, and it seems to periodically come up with "impossible" errors never seen before. I'm not sure if the Java JRE isn't mature yet for it, or if the ARM dual-core memory model is exceptionally good at finding subtle bugs.

I think I see how this bug could theoretically, at least, happen, so I'll take a stab at fixing it for 0.8.13.

comment:2 Changed 8 years ago by zzz

Component: unspecifiedrouter/netdb
Resolution: fixed
Status: acceptedclosed

_buckets declared final in 0.8.12-4.

comment:3 in reply to:  1 Changed 8 years ago by DISABLED

Replying to zzz:

Thanks for the report.
Was this shortly after startup?

No, I2P had been running for maybe 2-3 days, IIRC. Hadn't seen this before; I have been running I2P 24/7 for a couple of months now.

I also have a trimslice, and it seems to periodically come up with
"impossible" errors never seen before. I'm not sure if the Java
JRE isn't mature yet for it, or if the ARM dual-core memory model
is exceptionally good at finding subtle bugs.

I get occasional segfaults in the Java process so it could be jre/arm related. However, I only ever get maybe 3-6 days of uptime until the Java process dies by itself. Not sure if that's normal. I have ran I2P for longer periods on the trimslice box only, so I can't compare. I can keep my eye on the logs and file a ticket if I see something that reeks of arm/trimslice.

I think I see how this bug could theoretically, at least,
happen, so I'll take a stab at fixing it for 0.8.13.

I'll follow up if I see this again.

comment:4 Changed 8 years ago by zzz

Thanks for the reply.

I have a whole collection of hs_err files from JVM crashes on the trimslice.

If the NPE were just after startup then perhaps it could have been some race because the field wasn't final. But days after startup, it feels more like a JVM bug.

I just seems to me that the ARM JRE isn't ready for dual-core and all the memory-model issues that come with it yet. At least the 1.6.0_18 version. But I'm just guessing.

Now that I know somebody else is using I2P on a trimslice, I'll run mine more often and keep an eye on it.

Note: See TracTickets for help on using tickets.