auto: Intermittent `Stream closed` exception after upgrading to 1.10.2
Hello!
We recently started observing an intermittent error after upgrading from 1.8.2 to 1.10.2 (https://github.com/GoogleCloudPlatform/DataflowTemplates/pull/929).
I suspect it might be related to some racing/concurrency issues, as it happens sporadically and we are running Maven using multiple threads (mvn -T8 ...). It is either very hard to get when running in a single thread (I tried a bunch of times and it didn’t repro), or parallelism is actually the issue.
Full stacktrace:
Error: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.2:compile (default-compile) on project pubsub-to-redis: Fatal error compiling: autovalue.shaded.com.google.escapevelocity.EvaluationException: In expression on line 192 of autovalue.vm: java.io.IOException: Stream closed -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.2:compile (default-compile) on project pubsub-to-redis: Fatal error compiling
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:200)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:196)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:829)
Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:963)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:158)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:200)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:196)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:829)
Caused by: org.codehaus.plexus.compiler.CompilerException: autovalue.shaded.com.google.escapevelocity.EvaluationException: In expression on line 192 of autovalue.vm: java.io.IOException: Stream closed
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:173)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:952)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:158)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:200)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:196)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:829)
Caused by: java.lang.RuntimeException: autovalue.shaded.com.google.escapevelocity.EvaluationException: In expression on line 192 of autovalue.vm: java.io.IOException: Stream closed
at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions (JavacTaskImpl.java:163)
at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:952)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:158)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:200)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:196)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:829)
Caused by: autovalue.shaded.com.google.escapevelocity.EvaluationException: In expression on line 192 of autovalue.vm: java.io.IOException: Stream closed
at autovalue.shaded.com.google.escapevelocity.Node.evaluationException (Node.java:59)
at autovalue.shaded.com.google.escapevelocity.ParseNode.render (ParseNode.java:65)
at autovalue.shaded.com.google.escapevelocity.Node$Cons.render (Node.java:91)
at autovalue.shaded.com.google.escapevelocity.DirectiveNode$IfNode.render (DirectiveNode.java:103)
at autovalue.shaded.com.google.escapevelocity.Node$Cons.render (Node.java:91)
at autovalue.shaded.com.google.escapevelocity.Template.render (Template.java:189)
at autovalue.shaded.com.google.escapevelocity.Template.evaluate (Template.java:179)
at com.google.auto.value.processor.TemplateVars.toText (TemplateVars.java:99)
at com.google.auto.value.processor.AutoValueProcessor.processType (AutoValueProcessor.java:274)
at com.google.auto.value.processor.AutoValueishProcessor.process (AutoValueishProcessor.java:441)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor (JavacProcessingEnvironment.java:985)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs (JavacProcessingEnvironment.java:901)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run (JavacProcessingEnvironment.java:1227)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing (JavacProcessingEnvironment.java:1340)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations (JavaCompiler.java:1254)
at com.sun.tools.javac.main.JavaCompiler.compile (JavaCompiler.java:936)
at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0 (JavacTaskImpl.java:104)
at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions (JavacTaskImpl.java:147)
at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:952)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:158)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:200)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:196)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:829)
Caused by: java.io.IOException: Stream closed
at java.util.zip.InflaterInputStream.ensureOpen (InflaterInputStream.java:68)
at java.util.zip.InflaterInputStream.read (InflaterInputStream.java:143)
at java.io.FilterInputStream.read (FilterInputStream.java:133)
at sun.nio.cs.StreamDecoder.readBytes (StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead (StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read (StreamDecoder.java:178)
at java.io.InputStreamReader.read (InputStreamReader.java:181)
at java.io.BufferedReader.fill (BufferedReader.java:161)
at java.io.BufferedReader.read (BufferedReader.java:182)
at java.io.LineNumberReader.read (LineNumberReader.java:126)
at autovalue.shaded.com.google.escapevelocity.Parser.next (Parser.java:144)
at autovalue.shaded.com.google.escapevelocity.Parser.skipSpace (Parser.java:171)
at autovalue.shaded.com.google.escapevelocity.Parser.expect (Parser.java:189)
at autovalue.shaded.com.google.escapevelocity.Parser.parseIfOrElseIf (Parser.java:418)
at autovalue.shaded.com.google.escapevelocity.Parser.parseDirective (Parser.java:370)
at autovalue.shaded.com.google.escapevelocity.Parser.parseNode (Parser.java:271)
at autovalue.shaded.com.google.escapevelocity.Parser.parseToStop (Parser.java:223)
at autovalue.shaded.com.google.escapevelocity.Parser.skipNewlineAndParseToStop (Parser.java:251)
at autovalue.shaded.com.google.escapevelocity.Parser.parseForEach (Parser.java:476)
at autovalue.shaded.com.google.escapevelocity.Parser.parseDirective (Parser.java:378)
at autovalue.shaded.com.google.escapevelocity.Parser.parseNode (Parser.java:271)
at autovalue.shaded.com.google.escapevelocity.Parser.parseToStop (Parser.java:223)
at autovalue.shaded.com.google.escapevelocity.Parser.parse (Parser.java:128)
at autovalue.shaded.com.google.escapevelocity.Template.parseFrom (Template.java:147)
at autovalue.shaded.com.google.escapevelocity.ParseNode.render (ParseNode.java:62)
at autovalue.shaded.com.google.escapevelocity.Node$Cons.render (Node.java:91)
at autovalue.shaded.com.google.escapevelocity.DirectiveNode$IfNode.render (DirectiveNode.java:103)
at autovalue.shaded.com.google.escapevelocity.Node$Cons.render (Node.java:91)
at autovalue.shaded.com.google.escapevelocity.Template.render (Template.java:189)
at autovalue.shaded.com.google.escapevelocity.Template.evaluate (Template.java:179)
at com.google.auto.value.processor.TemplateVars.toText (TemplateVars.java:99)
at com.google.auto.value.processor.AutoValueProcessor.processType (AutoValueProcessor.java:274)
at com.google.auto.value.processor.AutoValueishProcessor.process (AutoValueishProcessor.java:441)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor (JavacProcessingEnvironment.java:985)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs (JavacProcessingEnvironment.java:901)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run (JavacProcessingEnvironment.java:1227)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing (JavacProcessingEnvironment.java:1340)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations (JavaCompiler.java:1254)
at com.sun.tools.javac.main.JavaCompiler.compile (JavaCompiler.java:936)
at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0 (JavacTaskImpl.java:104)
at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions (JavacTaskImpl.java:147)
at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:952)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:158)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:200)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:196)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:829)
Error:
Error: Re-run Maven using the -X switch to enable full debug logging.
Error:
Error: For more information about the errors and possible solutions, please read the following articles:
Error: [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Error:
Error: After correcting the problems, you can resume the build with the command
Error: mvn <goals> -rf :pubsub-to-redis
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 16 (12 by maintainers)
Commits related to this issue
- Revert auto-value version to 1.8.2, intermittently getting "Stream closed" Filed https://github.com/google/auto/issues/1572 and rolling it back for now — committed to bvolpato/DataflowTemplates by bvolpato a year ago
- Revert auto-value version to 1.8.2, intermittently getting "Stream closed" Filed https://github.com/google/auto/issues/1572 and rolling it back for now — committed to alexeykukuku/DataflowTemplates by bvolpato a year ago
- Apply a workaround for a JDK bug unconditionally. We now always read template resources directly from the jar file containing them, rather than initially trying to use `getResourceAsStream`. That can... — committed to google/auto by eamonnmcmanus 10 months ago
- Apply a workaround for a JDK bug unconditionally. We now always read template resources directly from the jar file containing them, rather than initially trying to use `getResourceAsStream`. That can... — committed to google/auto by eamonnmcmanus 10 months ago
- Apply a workaround for a JDK bug unconditionally. We now always read template resources directly from the jar file containing them, rather than initially trying to use `getResourceAsStream`. That can... — committed to google/auto by eamonnmcmanus 10 months ago
- Apply a workaround for a JDK bug unconditionally. We now always read template resources directly from the jar file containing them, rather than initially trying to use `getResourceAsStream`. That can... — committed to google/auto by eamonnmcmanus 10 months ago
- Apply a workaround for a JDK bug unconditionally. We now always read template resources directly from the jar file containing them, rather than initially trying to use `getResourceAsStream`. That can... — committed to google/auto by eamonnmcmanus 10 months ago
- Apply a workaround for a JDK bug unconditionally. We now always read template resources directly from the jar file containing them, rather than initially trying to use `getResourceAsStream`. That can... — committed to google/auto by eamonnmcmanus 10 months ago
- Apply a workaround for a JDK bug unconditionally. We now always read template resources directly from the jar file containing them, rather than initially trying to use `getResourceAsStream`. That can... — committed to google/auto by eamonnmcmanus 10 months ago
I made it so that we no longer ever use
JarURLConnectionto read the resources (template files) that AutoValue needs. Instead, we always open the jar where the AutoValue code lives explicitly, and read the resources out of it. That’s probably a bit more expensive, but only happens once per template and per compilation.