Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sproradic (but frequent) JS build failures #1242

Closed
ceedubs opened this issue Jul 29, 2016 · 0 comments
Closed

Sproradic (but frequent) JS build failures #1242

ceedubs opened this issue Jul 29, 2016 · 0 comments
Assignees

Comments

@ceedubs
Copy link
Contributor

ceedubs commented Jul 29, 2016

Recently we started seeing the following sporadic build failures (during JS phase). Do any folks with scala.js experience know what might be going on here?

I think that the first time that I noticed it was after #1231, but I'm not sure. I'm pretty sure that I did see this happen at least once before the recent switch from scala.js 0.6.8 to 0.6.11.

Below is an excerpt from the logs. You can also look at this Travis build starting on line 9132.


java.lang.AssertionError: JS test interface sent bad reply: msg:org.scalatest.events.SuiteStarting
    at org.scalajs.testadapter.ComUtils$.badResponse$1(ComUtils.scala:54)
    at org.scalajs.testadapter.ComUtils$.receiveResponse(ComUtils.scala:84)
    at org.scalajs.testadapter.ComUtils$.receiveLoop(ComUtils.scala:21)
    at org.scalajs.testadapter.ComUtils$.receiveLoop(ComUtils.scala:16)
    at org.scalajs.testadapter.ScalaJSTask.execute(ScalaJSTask.scala:61)
    at sbt.TestRunner.runTest$1(TestFramework.scala:76)
    at sbt.TestRunner.run(TestFramework.scala:85)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1$$anonfun$apply$8.apply(TestFramework.scala:202)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1$$anonfun$apply$8.apply(TestFramework.scala:202)
    at sbt.TestFramework$.sbt$TestFramework$$withContextLoader(TestFramework.scala:185)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1.apply(TestFramework.scala:202)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1.apply(TestFramework.scala:202)
    at sbt.TestFunction.apply(TestFramework.scala:207)
    at sbt.Tests$.sbt$Tests$$processRunnable$1(Tests.scala:239)
    at sbt.Tests$$anonfun$makeSerial$1.apply(Tests.scala:245)
    at sbt.Tests$$anonfun$makeSerial$1.apply(Tests.scala:245)
    at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
    at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.scalajs.jsenv.ComJSEnv$ComClosedException: JSCom has been closed
    at org.scalajs.jsenv.nodejs.AbstractNodeJSEnv$NodeComJSRunner$class.receive(AbstractNodeJSEnv.scala:268)
    at org.scalajs.jsenv.nodejs.NodeJSEnv$ComNodeRunner.receive(NodeJSEnv.scala:64)
    at org.scalajs.testadapter.ComUtils$.receiveResponse(ComUtils.scala:42)
    at org.scalajs.testadapter.ComUtils$.receiveResponse(ComUtils.scala:37)
    at org.scalajs.testadapter.ScalaJSRunner$$anonfun$msgHandler$1.applyOrElse(ScalaJSRunner.scala:122)
    at org.scalajs.testadapter.ScalaJSRunner$$anonfun$msgHandler$1.applyOrElse(ScalaJSRunner.scala:118)
    at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:165)
    at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:166)
    at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:166)
    at scala.PartialFunction$Lifted.apply(PartialFunction.scala:218)
    at scala.PartialFunction$Lifted.apply(PartialFunction.scala:214)
    at org.scalajs.testadapter.ComUtils$.receiveResponse(ComUtils.scala:84)
    at org.scalajs.testadapter.ComUtils$.receiveLoop(ComUtils.scala:21)
    at org.scalajs.testadapter.ComUtils$.receiveLoop(ComUtils.scala:16)
    at org.scalajs.testadapter.ScalaJSTask.execute(ScalaJSTask.scala:61)
    at sbt.TestRunner.runTest$1(TestFramework.scala:76)
    at sbt.TestRunner.run(TestFramework.scala:85)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1$$anonfun$apply$8.apply(TestFramework.scala:202)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1$$anonfun$apply$8.apply(TestFramework.scala:202)
    at sbt.TestFramework$.sbt$TestFramework$$withContextLoader(TestFramework.scala:185)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1.apply(TestFramework.scala:202)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1.apply(TestFramework.scala:202)
    at sbt.TestFunction.apply(TestFramework.scala:207)
    at sbt.Tests$.sbt$Tests$$processRunnable$1(Tests.scala:239)
    at sbt.Tests$$anonfun$makeSerial$1.apply(Tests.scala:245)
    at sbt.Tests$$anonfun$makeSerial$1.apply(Tests.scala:245)
    at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
    at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at org.scalajs.jsenv.nodejs.AbstractNodeJSEnv$NodeComJSRunner$class.receive(AbstractNodeJSEnv.scala:258)
    at org.scalajs.jsenv.nodejs.NodeJSEnv$ComNodeRunner.receive(NodeJSEnv.scala:64)
    at org.scalajs.testadapter.ComUtils$.receiveResponse(ComUtils.scala:42)
    at org.scalajs.testadapter.ComUtils$.receiveResponse(ComUtils.scala:37)
    at org.scalajs.testadapter.ScalaJSRunner$$anonfun$msgHandler$1.applyOrElse(ScalaJSRunner.scala:122)
    at org.scalajs.testadapter.ScalaJSRunner$$anonfun$msgHandler$1.applyOrElse(ScalaJSRunner.scala:118)
    at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:165)
    at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:166)
    at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:166)
    at scala.PartialFunction$Lifted.apply(PartialFunction.scala:218)
    at scala.PartialFunction$Lifted.apply(PartialFunction.scala:214)
    at org.scalajs.testadapter.ComUtils$.receiveResponse(ComUtils.scala:84)
    at org.scalajs.testadapter.ComUtils$.receiveLoop(ComUtils.scala:21)
    at org.scalajs.testadapter.ComUtils$.receiveLoop(ComUtils.scala:16)
    at org.scalajs.testadapter.ScalaJSTask.execute(ScalaJSTask.scala:61)
    at sbt.TestRunner.runTest$1(TestFramework.scala:76)
    at sbt.TestRunner.run(TestFramework.scala:85)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1$$anonfun$apply$8.apply(TestFramework.scala:202)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1$$anonfun$apply$8.apply(TestFramework.scala:202)
    at sbt.TestFramework$.sbt$TestFramework$$withContextLoader(TestFramework.scala:185)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1.apply(TestFramework.scala:202)
    at sbt.TestFramework$$anon$2$$anonfun$$init$$1.apply(TestFramework.scala:202)
    at sbt.TestFunction.apply(TestFramework.scala:207)
    at sbt.Tests$.sbt$Tests$$processRunnable$1(Tests.scala:239)
    at sbt.Tests$$anonfun$makeSerial$1.apply(Tests.scala:245)
    at sbt.Tests$$anonfun$makeSerial$1.apply(Tests.scala:245)
    at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
    at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
[error] Could not run test cats.js.tests.FutureTests: java.lang.AssertionError: JS test interface sent bad reply: msg:org.scalatest.events.SuiteStarting
org.scalajs.jsenv.ComJSEnv$ComClosedException: JSCom has been closed
    at org.scalajs.jsenv.nodejs.AbstractNodeJSEnv$NodeComJSRunner$class.receive(AbstractNodeJSEnv.scala:268)
    at org.scalajs.jsenv.nodejs.NodeJSEnv$ComNodeRunner.receive(NodeJSEnv.scala:64)
    at org.scalajs.testadapter.ComUtils$.receiveResponse(ComUtils.scala:42)
    at org.scalajs.testadapter.ScalaJSRunner$$anonfun$5.apply(ScalaJSRunner.scala:87)
    at org.scalajs.testadapter.ScalaJSRunner$$anonfun$5.apply(ScalaJSRunner.scala:85)
    at scala.util.Try$.apply(Try.scala:161)
    at org.scalajs.testadapter.ScalaJSRunner.done(ScalaJSRunner.scala:85)
    at sbt.Defaults$$anonfun$allTestGroupsTask$1$$anonfun$16.apply(Defaults.scala:582)
    at sbt.Defaults$$anonfun$allTestGroupsTask$1$$anonfun$16.apply(Defaults.scala:580)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.immutable.Map$Map2.foreach(Map.scala:130)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at sbt.Defaults$$anonfun$allTestGroupsTask$1.apply(Defaults.scala:580)
    at sbt.Defaults$$anonfun$allTestGroupsTask$1.apply(Defaults.scala:578)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at org.scalajs.jsenv.nodejs.AbstractNodeJSEnv$NodeComJSRunner$class.receive(AbstractNodeJSEnv.scala:258)
    at org.scalajs.jsenv.nodejs.NodeJSEnv$ComNodeRunner.receive(NodeJSEnv.scala:64)
    at org.scalajs.testadapter.ComUtils$.receiveResponse(ComUtils.scala:42)
    at org.scalajs.testadapter.ScalaJSRunner$$anonfun$5.apply(ScalaJSRunner.scala:87)
    at org.scalajs.testadapter.ScalaJSRunner$$anonfun$5.apply(ScalaJSRunner.scala:85)
    at scala.util.Try$.apply(Try.scala:161)
    at org.scalajs.testadapter.ScalaJSRunner.done(ScalaJSRunner.scala:85)
    at sbt.Defaults$$anonfun$allTestGroupsTask$1$$anonfun$16.apply(Defaults.scala:582)
    at sbt.Defaults$$anonfun$allTestGroupsTask$1$$anonfun$16.apply(Defaults.scala:580)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.immutable.Map$Map2.foreach(Map.scala:130)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at sbt.Defaults$$anonfun$allTestGroupsTask$1.apply(Defaults.scala:580)
    at sbt.Defaults$$anonfun$allTestGroupsTask$1.apply(Defaults.scala:578)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
[error] (js/test:executeTests) org.scalajs.jsenv.ComJSEnv$ComClosedException: JSCom has been closed
ceedubs added a commit to ceedubs/cats that referenced this issue Jul 30, 2016
This is a shot in the dark attempting to fix typelevel#1242.

The idea is that we can mark certain tests as slow and not run them when
running JS tests. Currently I've done this for all of the stack-safety
tests that I can find.

I don't really like this solution, but currently almost every PR is
resulting in a failed build, which is really problematic. One thing that
we could do is get rid of the `Platform.isJs` branch of the `slowTest`
implementation locally just before a release to make sure that these
tests all pass on JS. I think we only really run into these issues on
Travis CI.
@ceedubs ceedubs self-assigned this Jul 30, 2016
ceedubs added a commit to ceedubs/cats that referenced this issue Jul 31, 2016
This is a shot in the dark attempting to fix typelevel#1242.

The idea is that we can mark certain tests as slow and not run them when
running JS tests. Currently I've done this for all of the stack-safety
tests that I can find.

I don't really like this solution, but currently almost every PR is
resulting in a failed build, which is really problematic. One thing that
we could do is get rid of the `Platform.isJs` branch of the `slowTest`
implementation locally just before a release to make sure that these
tests all pass on JS. I think we only really run into these issues on
Travis CI.
kailuowang added a commit that referenced this issue Aug 3, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants