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

Scoverage issue #4

Closed
taion809 opened this issue Dec 16, 2016 · 3 comments
Closed

Scoverage issue #4

taion809 opened this issue Dec 16, 2016 · 3 comments

Comments

@taion809
Copy link

Hello,
This is a pretty strange bug report but after upgrading to 0.0.4 we're seeing the following errors when generating coverageReports with scoverage. This is with finagle 6.40 and scalatest 3.0.0.

[info] service.FeatureTest  *** ABORTED ***
[info]   java.lang.ExceptionInInitializerError:
[info]   at com.twitter.finagle.util.DefaultTimer$.<init>(HashedWheelTimer.scala:170)
[info]   at com.twitter.finagle.util.DefaultTimer$.<clinit>(HashedWheelTimer.scala)
[info]   at com.twitter.finagle.stats.JsonExporter.<init>(JsonExporter.scala:65)
[info]   at com.twitter.finagle.stats.MetricsExporter.<init>(MetricsStatsReceiver.scala:334)
[info]   at com.twitter.finagle.stats.MetricsExporter.<init>(MetricsStatsReceiver.scala:338)
[info]   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[info]   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[info]   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[info]   at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[info]   at java.lang.Class.newInstance(Class.java:442)
[info]   ...
[info]   Cause: java.io.FileNotFoundException: /Users/rodrigolazoti/Projects/Framework/Scala/finagle-metrics/target/scala-2.11/scoverage-data/scoverage.measurements.145 (No such file or directory)
[info]   at java.io.FileOutputStream.open0(Native Method)
[info]   at java.io.FileOutputStream.open(FileOutputStream.java:270)
[info]   at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
[info]   at java.io.FileWriter.<init>(FileWriter.java:107)
[info]   at scoverage.Invoker$$anonfun$1.apply(Invoker.scala:42)
[info]   at scoverage.Invoker$$anonfun$1.apply(Invoker.scala:42)
[info]   at scala.collection.concurrent.TrieMap.getOrElseUpdate(TrieMap.scala:901)
[info]   at scoverage.Invoker$.invoked(Invoker.scala:42)
[info]   at com.twitter.finagle.metrics.MetricsStatsReceiver.stat(MetricsStatsReceiver.scala:49)
[info]   at com.twitter.finagle.stats.BroadcastStatsReceiver$Two.stat(BroadcastStatsReceiver.scala:24)
[info]   ...
java.lang.ExceptionInInitializerError
    at com.twitter.finagle.util.DefaultTimer$.<init>(HashedWheelTimer.scala:170)
    at com.twitter.finagle.util.DefaultTimer$.<clinit>(HashedWheelTimer.scala)
    at com.twitter.finagle.stats.JsonExporter.<init>(JsonExporter.scala:65)
    at com.twitter.finagle.stats.MetricsExporter.<init>(MetricsStatsReceiver.scala:334)
    at com.twitter.finagle.stats.MetricsExporter.<init>(MetricsStatsReceiver.scala:338)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at com.twitter.app.LoadService$$anonfun$5.apply(LoadService.scala:74)
    at com.twitter.app.LoadService$$anonfun$5.apply(LoadService.scala:63)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
    at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
    at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
    at com.twitter.app.LoadService$.apply(LoadService.scala:63)
    at com.twitter.finagle.util.LoadService$.apply(LoadService.scala:14)
    at com.twitter.finagle.http.HttpMuxer$.<init>(HttpMuxer.scala:122)
    at com.twitter.finagle.http.HttpMuxer$.<clinit>(HttpMuxer.scala)
    at com.twitter.server.Lifecycle$class.$init$(Lifecycle.scala:14)
    at service.ApplicationServer.<init>(ApplicationServer.scala:15)
    at service.FeatureTest .<init>(FeatureTest.scala:24)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:435)
    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$$anonfun$9.apply(Tests.scala:216)
    at sbt.Tests$$anonfun$9.apply(Tests.scala:216)
    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:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.FileNotFoundException: /Users/rodrigolazoti/Projects/Framework/Scala/finagle-metrics/target/scala-2.11/scoverage-data/scoverage.measurements.145 (No such file or directory)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileWriter.<init>(FileWriter.java:107)
    at scoverage.Invoker$$anonfun$1.apply(Invoker.scala:42)
    at scoverage.Invoker$$anonfun$1.apply(Invoker.scala:42)
    at scala.collection.concurrent.TrieMap.getOrElseUpdate(TrieMap.scala:901)
    at scoverage.Invoker$.invoked(Invoker.scala:42)
    at com.twitter.finagle.metrics.MetricsStatsReceiver.stat(MetricsStatsReceiver.scala:49)
    at com.twitter.finagle.stats.BroadcastStatsReceiver$Two.stat(BroadcastStatsReceiver.scala:24)
    at com.twitter.finagle.stats.StatsReceiverProxy$class.stat(StatsReceiverProxy.scala:9)
    at com.twitter.finagle.stats.LoadedStatsReceiver$.stat(LoadedStatsReceiver.scala:9)
    at com.twitter.finagle.stats.NameTranslatingStatsReceiver.stat(NameTranslatingStatsReceiver.scala:29)
    at com.twitter.finagle.stats.StatsReceiverProxy$class.stat(StatsReceiverProxy.scala:9)
    at com.twitter.finagle.stats.FinagleStatsReceiver$.stat(LoadedStatsReceiver.scala:36)
    at com.twitter.finagle.stats.NameTranslatingStatsReceiver.stat(NameTranslatingStatsReceiver.scala:29)
    at com.twitter.finagle.util.TimerStats$.deviation(TimerStats.scala:27)
    at com.twitter.finagle.util.HashedWheelTimer$.<init>(HashedWheelTimer.scala:155)
    at com.twitter.finagle.util.HashedWheelTimer$.<clinit>(HashedWheelTimer.scala)
    at com.twitter.finagle.util.DefaultTimer$.<init>(HashedWheelTimer.scala:170)
    at com.twitter.finagle.util.DefaultTimer$.<clinit>(HashedWheelTimer.scala)
    at com.twitter.finagle.stats.JsonExporter.<init>(JsonExporter.scala:65)
    at com.twitter.finagle.stats.MetricsExporter.<init>(MetricsStatsReceiver.scala:334)
    at com.twitter.finagle.stats.MetricsExporter.<init>(MetricsStatsReceiver.scala:338)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at com.twitter.app.LoadService$$anonfun$5.apply(LoadService.scala:74)
    at com.twitter.app.LoadService$$anonfun$5.apply(LoadService.scala:63)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
    at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
    at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
    at com.twitter.app.LoadService$.apply(LoadService.scala:63)
    at com.twitter.finagle.util.LoadService$.apply(LoadService.scala:14)
    at com.twitter.finagle.http.HttpMuxer$.<init>(HttpMuxer.scala:122)
    at com.twitter.finagle.http.HttpMuxer$.<clinit>(HttpMuxer.scala)
    at com.twitter.server.Lifecycle$class.$init$(Lifecycle.scala:14)
    at service.ApplicationServer.<init>(ApplicationServer.scala:15)
    at service.FeatureTest .<init>(FeatureTest .scala:24)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.scalatest.tools.Framework$ScalaTestTask.execute(Framework.scala:435)
    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$$anonfun$9.apply(Tests.scala:216)
    at sbt.Tests$$anonfun$9.apply(Tests.scala:216)
    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:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[error] Could not run test service.FeatureTest : java.lang.ExceptionInInitializerError
@schrepfler
Copy link
Contributor

I think there is definitely an issue with scoverage somehow finishing together with the library on runtime. This is my stacktrace.

[error] Exception in thread "main" java.lang.NoClassDefFoundError: scoverage/Invoker$
[error] 	at com.twitter.finagle.metrics.MetricsStatsReceiver.stat(MetricsStatsReceiver.scala:49)
[error] 	at com.twitter.finagle.stats.BroadcastStatsReceiver$Two.stat(BroadcastStatsReceiver.scala:24)
[error] 	at com.twitter.finagle.stats.StatsReceiverProxy$class.stat(StatsReceiverProxy.scala:9)
[error] 	at com.twitter.finagle.stats.LoadedStatsReceiver$.stat(LoadedStatsReceiver.scala:9)
[error] 	at com.twitter.finagle.stats.NameTranslatingStatsReceiver.stat(NameTranslatingStatsReceiver.scala:29)
[error] 	at com.twitter.finagle.stats.StatsReceiverProxy$class.stat(StatsReceiverProxy.scala:9)
[error] 	at com.twitter.finagle.stats.FinagleStatsReceiver$.stat(LoadedStatsReceiver.scala:36)
[error] 	at com.twitter.finagle.stats.NameTranslatingStatsReceiver.stat(NameTranslatingStatsReceiver.scala:29)
[error] 	at com.twitter.finagle.util.TimerStats$.deviation(TimerStats.scala:27)
[error] 	at com.twitter.finagle.util.HashedWheelTimer$.<init>(HashedWheelTimer.scala:155)
[error] 	at com.twitter.finagle.util.HashedWheelTimer$.<clinit>(HashedWheelTimer.scala)
[error] 	at com.twitter.finagle.util.DefaultTimer$.<init>(HashedWheelTimer.scala:170)
[error] 	at com.twitter.finagle.util.DefaultTimer$.<clinit>(HashedWheelTimer.scala)
[error] 	at com.twitter.finagle.stats.JsonExporter.<init>(JsonExporter.scala:66)
[error] 	at com.twitter.finagle.stats.MetricsExporter.<init>(MetricsStatsReceiver.scala:334)
[error] 	at com.twitter.finagle.stats.MetricsExporter.<init>(MetricsStatsReceiver.scala:338)
[error] 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[error] 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[error] 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[error] 	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[error] 	at java.lang.Class.newInstance(Class.java:442)
[error] 	at com.twitter.app.LoadService$$anonfun$5.apply(LoadService.scala:74)
[error] 	at com.twitter.app.LoadService$$anonfun$5.apply(LoadService.scala:63)
[error] 	at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
[error] 	at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
[error] 	at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
[error] 	at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
[error] 	at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
[error] 	at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
[error] 	at com.twitter.app.LoadService$.apply(LoadService.scala:63)
[error] 	at com.twitter.finagle.util.LoadService$.apply(LoadService.scala:14)
[error] 	at com.twitter.finagle.http.HttpMuxer$.<init>(HttpMuxer.scala:122)
[error] 	at com.twitter.finagle.http.HttpMuxer$.<clinit>(HttpMuxer.scala)
[error] 	at com.twitter.server.Lifecycle$class.$init$(Lifecycle.scala:14)
[error] 	at com.wikipedia.finatra.WurServer.<init>(WurServer.scala:22)
[error] 	at com.wikipedia.wur.finatra.WurServerMain$.<init>(WurServer.scala:20)
[error] 	at com.wikipedia.wur.finatra.WurServerMain$.<clinit>(WurServer.scala)
[error] 	at com.wikipedia.wur.finatra.WurServerMain.main(WurServer.scala)
[error] Caused by: java.lang.ClassNotFoundException: scoverage.Invoker$
[error] 	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
[error] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[error] 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
[error] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[error] 	... 38 more
java.lang.RuntimeException: Nonzero exit code returned from runner: 1
	at scala.sys.package$.error(package.scala:27)

@taion809
Copy link
Author

I've fixed this by forking the project and republising to a private maven repository with notes from this issue: scoverage/sbt-scoverage#84

Basically prior to assembly or publish use coverageOff, however this sometimes does not work and i had to add coverageEnabled := false to by build.sbt

@rlazoti
Copy link
Owner

rlazoti commented Jan 15, 2017

@schrepfler @taion809 @scweang thanks for reporting it.

I decided to remove the scoverage plugin to avoid further issues.
Please, let me know if the v0.0.6 fixes your build! 😉

@rlazoti rlazoti closed this as completed Jan 15, 2017
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

No branches or pull requests

3 participants