Closed
Description
When scalac-scoverage-runtime.jvm
and scalac-scoverage-runtime.js
are being built concurrently, they are trying to create the same files (in the same directories).
This leads to a deadlock, but only on Windows (why?).
Error messages look like this:
[error] scala.scalajs.js.JavaScriptException: Error: EBUSY: resource busy or locked, unlink 'target\invoker-test.measurement0\scoverage.measurements.51'
[error] at <jscode>.Object.unlinkSync(fs.js:975)
[error] at scalajssupport.NodeFile.$delete([path-to-project-root]\scalac-scoverage-runtime\js\target\scala-2.12\scalac-scoverage-runtime-test-fastopt.js:21891)
[error] at scoverage.InvokerMultiModuleTest.deleteMeasurementFiles([path-to-project-root]\scalac-scoverage-runtime\js\target\scala-2.12\scalac-scoverage-runtime-test-fastopt.js:56328)
[error] at <jscode>.{anonymous}()([path-to-project-root]\scalac-scoverage-runtime\js\target\scala-2.12\scalac-scoverage-runtime-test-fastopt.js:56094)
[error] at scala.scalajs.runtime.AnonFunction0.apply([path-to-project-root]\scalac-scoverage-runtime\js\target\scala-2.12\scalac-scoverage-runtime-test-fastopt.js:28672)
[error] at org.scalatest.BeforeAndAfter.runTest([path-to-project-root]\scalac-scoverage-runtime\js\target\scala-2.12\scalac-scoverage-runtime-test-fastopt.js:6177)
[error] at scoverage.InvokerMultiModuleTest.runTest([path-to-project-root]\scalac-scoverage-runtime\js\target\scala-2.12\scalac-scoverage-runtime-test-fastopt.js:56336)
[error] at <jscode>.{anonymous}()([path-to-project-root]\scalac-scoverage-runtime\js\target\scala-2.12\scalac-scoverage-runtime-test-fastopt.js:53960)
[error] at scala.scalajs.runtime.AnonFunction2.apply([path-to-project-root]\scalac-scoverage-runtime\js\target\scala-2.12\scalac-scoverage-runtime-test-fastopt.js:28732)
[error] at org.scalatest.Engine.traverseSubNodes$1([path-to-project-root]\scalac-scoverage-runtime\js\target\scala-2.12\scalac-scoverage-runtime-test-fastopt.js:7291)
The problem is a consequence of changing Rhino Javascript implementation used in tests to default NodeJS one in commit cfb968c#diff-fdc3abdfd754eeb24090dbd90aeec2ce
The simple workaround is to set fork in Test := true
for scalac-scoverage-runtime.jvm
(for .js
module setting fork to true is not allowed).
I don't like this solution, but will use it for now.
Waiting for better idea.
Metadata
Metadata
Assignees
Labels
No labels