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

Cannot run Scala-cli with sudo #343

Closed
WojciechMazur opened this issue Nov 3, 2021 · 1 comment · Fixed by #605
Closed

Cannot run Scala-cli with sudo #343

WojciechMazur opened this issue Nov 3, 2021 · 1 comment · Fixed by #605
Assignees

Comments

@WojciechMazur
Copy link
Contributor

WojciechMazur commented Nov 3, 2021

In the case of trying to run sudo scala-cli MyApp.scala we get a large list of warnings and the build fails to connect with Bloop. On subsequent runs, we get different outputs.
From this point, next runs without sudo privilege would also fail until we would run scala-cli clean MyApp.scala

Click to show output on first run!
sudo scala-cli sRAPL.scala
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.0.1/scala3-compiler_3-3.0.1.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.0.1/scala3-interfaces-3.0.1.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.0.1/scala3-library_3-3.0.1.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.0.1/tasty-core_3-3.0.1.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar doesn't exist!
Warning: Scala instance jar /root/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar doesn't exist!
Exception in thread "main" java.util.concurrent.ExecutionException: org.eclipse.lsp4j.jsonrpc.ResponseErrorException
        at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
        at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2022)
        at scala.build.Bloop$.compile(Bloop.scala:27)
        at scala.build.Build$.buildOnce(Build.scala:421)
        at scala.build.Build$.build(Build.scala:150)
        at scala.build.Build$.build(Build.scala:135)
        at scala.build.Build$.$anonfun$build$4(Build.scala:195)
        at scala.build.bloop.BloopServer$.withBuildServer(BloopServer.scala:205)
        at scala.build.Build$.build(Build.scala:189)
        at scala.build.Build$.build(Build.scala:206)
        at scala.cli.commands.Run$.run(Run.scala:52)
        at scala.cli.commands.DefaultBase.run(DefaultBase.scala:25)
        at scala.cli.commands.DefaultBase.run(DefaultBase.scala:5)
        at caseapp.core.app.CaseApp.main(CaseApp.scala:150)
        at caseapp.core.app.CommandsEntryPoint.main(CommandsEntryPoint.scala:112)
        at scala.cli.ScalaCliBase.main(ScalaCliBase.scala:45)
        at scala.cli.ScalaCliCore.main(ScalaCliCore.scala)
Caused by: org.eclipse.lsp4j.jsonrpc.ResponseErrorException
        at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:209)
        at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:193)
        at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194)
        at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
        at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113)
        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)
        at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:567)
        at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:192)
Click to show output for subsequent runs!
 sudo scala-cli sRAPL.scala
Exception in thread "main" java.io.IOException: Can't connect to 127.0.0.1:33279
        at scala.build.bloop.BloopServer$.create$1(BloopServer.scala:89)
        at scala.build.bloop.BloopServer$.connect(BloopServer.scala:97)
        at scala.build.bloop.BloopServer$.bsp(BloopServer.scala:120)
        at scala.build.bloop.BloopServer$.buildServer(BloopServer.scala:138)
        at scala.build.bloop.BloopServer$.withBuildServer(BloopServer.scala:203)
        at scala.build.Build$.build(Build.scala:189)
        at scala.build.Build$.build(Build.scala:206)
        at scala.cli.commands.Run$.run(Run.scala:52)
        at scala.cli.commands.DefaultBase.run(DefaultBase.scala:25)
        at scala.cli.commands.DefaultBase.run(DefaultBase.scala:5)
        at caseapp.core.app.CaseApp.main(CaseApp.scala:150)
        at caseapp.core.app.CommandsEntryPoint.main(CommandsEntryPoint.scala:112)
        at scala.cli.ScalaCliBase.main(ScalaCliBase.scala:45)
        at scala.cli.ScalaCliCore.main(ScalaCliCore.scala)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
        at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_net_ConnectException_2_0002e_0003cinit_0003e_00028Ljava_lang_String_2_00029V(JNIJavaCallWrappers.java:0)
        at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:609)
        at java.net.Socket.connect(Socket.java:558)
        at java.net.Socket.<init>(Socket.java:454)
        at java.net.Socket.<init>(Socket.java:231)
        at scala.build.blooprifle.internal.Operations$$anon$2.openSocket(Operations.scala:205)
        at scala.build.blooprifle.BloopRifle$$anon$2.openSocket(BloopRifle.scala:118)
        at scala.build.bloop.BloopServer$.create$1(BloopServer.scala:81)
        ... 13 more

Context: MyApp.scala is at this point a simple HelloWorld app using Scala 3.1, however, in my goal I need to have sudo privillage in order to collect CPU energy consumption measurements using the jRAPL library and it's JNI interface.

@alexarchambault
Copy link
Contributor

I confirm #573 fixes that locally. Maybe we should add a non-regression test for it.

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.

3 participants