Opened 5 years ago

Closed 5 years ago

#1565 closed defect (fixed)

I2P started reseeding at shutdown + NPE

Reported by: killyourtv Owned by: zzz
Priority: minor Milestone: 0.9.20
Component: router/netdb Version: 0.9.19
Keywords: Cc:
Parent Tickets: Sensitive: no

Description (last modified by zzz)

When I shutdown I2P on my Pi it started reseeding.

Even if it was out of peers (which it wasn't), at shutdown wouldn't be the time to reseed.:

# find ./netDb/ -name '*.dat' |wc -l
2909
I2P version: 0.9.19-0
Java version: Oracle Corporation 1.8.0 (Java(TM) SE Runtime Environment 1.8.0-b132)
Wrapper version: 3.5.25
Server version: 8.1.16.v20140903
Servlet version: Jasper JSP 2.1 Engine
Platform: Linux arm 3.18.12+
Processor: uninitialized (arm)
Jbigi: Locally optimized native BigInteger library loaded from file
Encoding: UTF-8
Charset: UTF-8
2015/05/07 21:44:25 | CRIT  [hutdown hook] net.i2p.router.Router         : Graceful shutdown progress: No more tunnels, starting final shutdown
2015/05/07 21:44:25 | CRIT  [hutdown hook] net.i2p.router.Router         : Starting final shutdown(2)
2015/05/07 21:44:44 | Reseed start
2015/05/07 21:44:44 | Reseeding from https://netdb.i2p2.no/i2pseeds.su3
2015/05/07 21:45:00 | INFO: 75 files extracted to /tmp/i2p-UzvZmrVX.tmp/reseeds-108880636
2015/05/07 21:45:00 | Reseed got 75 router infos from https://netdb.i2p2.no/i2pseeds.su3 with 0 errors
2015/05/07 21:45:00 | Reseeding from https://reseed.i2p-projekt.de/i2pseeds.su3
2015/05/07 21:45:02 | Error reseeding: java.lang.NullPointerException
2015/05/07 21:45:02 | Reseed got 0 router infos from https://reseed.i2p-projekt.de/i2pseeds.su3 with 1 errors
2015/05/07 21:45:02 | Reseeding from https://reseed.i2p-projekt.de/
2015/05/07 21:45:04 | Reseed got no router infos from https://reseed.i2p-projekt.de/
2015/05/07 21:45:04 | Reseeding from https://i2pseed.zarrenspry.info/i2pseeds.su3
2015/05/07 21:45:05 | Error reseeding: java.lang.NullPointerException
2015/05/07 21:45:05 | Reseed got 0 router infos from https://i2pseed.zarrenspry.info/i2pseeds.su3 with 1 errors
2015/05/07 21:45:05 | Reseeding from https://i2pseed.zarrenspry.info/
2015/05/07 21:45:06 | Reseed got no router infos from https://i2pseed.zarrenspry.info/
2015/05/07 21:45:06 | Reseeding from https://193.150.121.66/netDb/i2pseeds.su3
2015/05/07 21:45:06 | Error reseeding: java.lang.NullPointerException
2015/05/07 21:45:06 | Reseed got 0 router infos from https://193.150.121.66/netDb/i2pseeds.su3 with 1 errors
2015/05/07 21:45:06 | Reseeding from https://193.150.121.66/netDb/
2015/05/07 21:45:07 | Reseed got no router infos from https://193.150.121.66/netDb/
2015/05/07 21:45:07 | Reseeding from https://link.mx24.eu/i2pseeds.su3
2015/05/07 21:45:08 | Error reseeding: java.lang.NullPointerException
2015/05/07 21:45:08 | Reseed got 0 router infos from https://link.mx24.eu/i2pseeds.su3 with 1 errors
2015/05/07 21:45:08 | Reseeding from https://link.mx24.eu/
2015/05/07 21:45:09 | Reseed got no router infos from https://link.mx24.eu/
2015/05/07 21:45:09 | Reseeding from https://us.reseed.i2p2.no:444/i2pseeds.su3
2015/05/07 21:45:16 | Error reseeding: java.lang.NullPointerException
2015/05/07 21:45:16 | Reseed got 0 router infos from https://us.reseed.i2p2.no:444/i2pseeds.su3 with 1 errors
2015/05/07 21:45:16 | Reseeding from https://us.reseed.i2p2.no:444/
2015/05/07 21:45:22 | Reseed got no router infos from https://us.reseed.i2p2.no:444/
2015/05/07 21:45:22 | Reseeding from https://uk.reseed.i2p2.no:444/i2pseeds.su3
2015/05/07 21:46:20 | CRIT  [hutdown hook] net.i2p.router.Router         : Shutdown(2) complete
2015/05/07 21:46:23 | <-- Wrapper Stopped

Subtickets

Change History (6)

comment:1 Changed 5 years ago by killyourtv

Description: modified (diff)

comment:2 Changed 5 years ago by zzz

Description: modified (diff)

NPE? where?

comment:3 Changed 5 years ago by zzz

oh I see it. but no stack trace. Did the full NPE get into the router log?

comment:4 in reply to:  3 Changed 5 years ago by killyourtv

Replying to zzz:

oh I see it. but no stack trace. Did the full NPE get into the router log?

Unfortunately not. :( The earliest entries in the router log are from after this odd reseeding/NPE action.

comment:5 Changed 5 years ago by zzz

Milestone: undecided0.9.20
Status: newaccepted

comment:6 Changed 5 years ago by zzz

Resolution: fixed
Status: acceptedclosed

Most likely initiated by PersistentDataStore?.ReadJob?, which should not take any action during shutdown. Added shutdown check there, and also in ReseedChecker? and Reseeder for good measure. Tested only to verify that reseeding still works. Likely do be difficult to reproduce anyway. Shutdown is very slow on the RPi, so that gave the ReadJob? a chance to cause trouble. This fix may even speed up the shutdown on the Pi, by preventing concurrent I/O by the ReadJob?.

I looked around a little for possible NPE causes, didn't find anything, but the root cause should be fixed by this checkin. Still a rare possibility of a race but not worth worrying about.

Reseeding will be prevented, and reseeding in-progress will be aborted, during graceful or final shutdown.
In 3ee5f91b4cd77aeb9915075fc12ee5064ae47667 to be 0.9.19-19

Note: See TracTickets for help on using tickets.