Skip to content

Errors when executing Runtime subproject tests on Windows #255

Closed
@gslowikowski

Description

@gslowikowski

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions