Closed
Description
Describe the bug
The PRs merged over the last weekend failed the build due to ctags induced problem that looks like this in the build logs. There seem to be 2 kinds of failure:
- InterruptedException: tagLine == null
java.util.concurrent.ExecutionException: java.lang.InterruptedException: tagLine == null
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:206)
at org.opengrok.indexer.analysis.Ctags.doCtags(Ctags.java:440)
at org.opengrok.indexer.analysis.plain.PlainAnalyzer.analyze(PlainAnalyzer.java:117)
at org.opengrok.indexer.analysis.AnalyzerGuru.populateDocument(AnalyzerGuru.java:606)
at org.opengrok.indexer.index.IndexDatabase.addFile(IndexDatabase.java:754)
at org.opengrok.indexer.index.IndexDatabase.lambda$null$2(IndexDatabase.java:1273)
at java.util.stream.Collectors.lambda$groupingByConcurrent$51(Collectors.java:1070)
at java.util.stream.ReferencePipeline.lambda$collect$1(ReferencePipeline.java:563)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401)
at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734)
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:650)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:563)
at org.opengrok.indexer.index.IndexDatabase.lambda$indexParallel$3(IndexDatabase.java:1262)
at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: java.lang.InterruptedException: tagLine == null
at org.opengrok.indexer.analysis.Ctags.readTags(Ctags.java:550)
at org.opengrok.indexer.analysis.Ctags.lambda$doCtags$2(Ctags.java:435)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
- IOException: Stream closed
Nov 11, 2019 3:20:51 PM org.opengrok.indexer.util.IOUtils close
WARNING: Failed to close resource:
java.io.IOException: Stream closed
at java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:433)
at java.io.OutputStream.write(OutputStream.java:116)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at java.io.FilterOutputStream.close(FilterOutputStream.java:158)
at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:320)
at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:149)
at java.io.OutputStreamWriter.close(OutputStreamWriter.java:233)
at org.opengrok.indexer.util.IOUtils.close(IOUtils.java:75)
at org.opengrok.indexer.analysis.Ctags.close(Ctags.java:125)
at org.opengrok.indexer.analysis.java.JavaAnalyzerFactoryTest.tearDownClass(JavaAnalyzerFactoryTest.java:99)
The failing test cases:
[ERROR] Failures:
[ERROR] IndexDatabaseTest.testCleanupAfterIndexRemoval:168 expected:<7> but was:<6>
[ERROR] IndexDatabaseTest.testGetDefinitions:104
[ERROR] SearchHelperTest.testSearchAfterReindex:139 expected:<4> but was:<3>
[ERROR] Errors:
[ERROR] CtagsTest.bug14924:112->getDefs:89 » IO Stream closed
[ERROR] CtagsTest.bug19195:137->getDefs:89 » Interrupted ctags process died
[ERROR] CtagsTest.testDoCtags:97->getDefs:89 » Interrupted ctags process died
[ERROR] JFlexXrefTest.bug18586:393 » IO Stream closed
[ERROR] JFlexXrefTest.testBug15890Anchor:172->bug15890Anchor:188 » Interrupted ctags p...
[ERROR] CAnalyzerFactoryTest.testScopeAnalyzer:122 » IO Stream closed
[ERROR] CxxAnalyzerFactoryTest.testScopeAnalyzer:123 » IO Stream closed
[ERROR] ClojureAnalyzerFactoryTest.testScopeAnalyzer:118 » IO Stream closed
[ERROR] CSharpAnalyzerFactoryTest.testScopeAnalyzer:117 » IO Stream closed
[ERROR] JavaAnalyzerFactoryTest.testScopeAnalyzer:122 » IO Stream closed
[ERROR] PascalAnalyzerFactoryTest.testAnalyzer:120 » IO Stream closed
Initially it was thought that macOS build in Travis failed however the failure was due to timeout. Once I restarted the build it failed due to the above problem.
Last known (at this time) Universal ctags changeset that builds okay is universal-ctags/ctags@be621ae.
To Reproduce
build in Travis with latest Universal ctags
Expected behavior
build passes
Additional context
- Universal ctags commits: https://github.com/universal-ctags/ctags/commits/master
- failed macOS build: https://travis-ci.org/oracle/opengrok/jobs/609439599?utm_medium=notification&utm_source=github_status