Skip to content

some tests fail due to changes in Universal ctags #2977

Closed
@vladak

Description

@vladak

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions