Opened 3 years ago

#1937 new defect

Orchid: OOM with old cached-microdescs

Reported by: zzz Owned by:
Priority: minor Milestone: undecided
Component: apps/plugins Version: 0.9.28
Keywords: Cc:
Parent Tickets: Sensitive: no

Description

ref: #1220

Started orchid for first time in 6 months, #1220 fix worked and got new consensus-microdesc document, but then still got:

INFO  [ger worker-0] d.circuits.CircuitCreationTask: Cannot build circuits because we don't have enough directory
 information

and rapid OOM, either GC overhead exceeded or:

2017/01/29 12:02:45 | Exception in thread "DirectoryDownloadTask worker-0" java.lang.OutOfMemoryError: Java heap space
2017/01/29 12:02:45 | 	at java.util.Arrays.copyOf(Arrays.java:3332)
2017/01/29 12:02:45 | 	at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
2017/01/29 12:02:45 | 	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
2017/01/29 12:02:45 | 	at java.lang.StringBuilder.append(StringBuilder.java:136)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.DocumentFieldParserImpl.updateRawDocument(DocumentFieldParserImpl.java:335)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.DocumentFieldParserImpl.readLine(DocumentFieldParserImpl.java:361)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.DocumentFieldParserImpl.processDocument(DocumentFieldParserImpl.java:302)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.consensus.ConsensusDocumentParser.parse(ConsensusDocumentParser.java:52)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.downloader.DocumentFetcher.processResponse(DocumentFetcher.java:46)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.downloader.DocumentFetcher.requestDocuments(DocumentFetcher.java:23)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.downloader.DirectoryDocumentRequestor.fetchDocuments(DirectoryDocumentRequestor.ja
va:77)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.downloader.DirectoryDocumentRequestor.fetchSingleDocument(DirectoryDocumentRequest
or.java:66)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.downloader.DirectoryDocumentRequestor.downloadCurrentConsensus(DirectoryDocumentRe
questor.java:46)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.downloader.DirectoryDownloaderImpl.downloadCurrentConsensus(DirectoryDownloaderImp
l.java:81)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.downloader.DirectoryDownloaderImpl.downloadCurrentConsensus(DirectoryDownloaderImp
l.java:76)
2017/01/29 12:02:45 | 	at com.subgraph.orchid.directory.downloader.DirectoryDownloadTask$DownloadConsensusTask.run(DirectoryDownloadTask.j
ava:178)
2017/01/29 12:02:45 | 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
2017/01/29 12:02:45 | 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
2017/01/29 12:02:45 | 	at java.lang.Thread.run(Thread.java:745)

In jvisualvm, saw 41 concurrent "DirectoryDownloaderTask? worker-xx" threads for xx=0 to 40, and similar number of ConnectionImpl?-xx threads where xx was from 3 to 85.

Happened every time.

After stopping router, moved ~/.i2p/plugins/orchid/data/cached-microdescs.new to cached-microdescs and restarted. Everything worked again. Probably need a similar fix to that in #1220, or perhaps the fix in #1220 was insufficient.

Subtickets

Change History (0)

Note: See TracTickets for help on using tickets.