Sometimes Bloop will return a nonzero exit status, without printing any output, so it's not clear why it wasn't successful. I think that in the cases where it fails, it should always print something.
Here is an example, which I've not been able to diagnose:
# bloop compile -p core || echo failed
failed
#
while the bloop-server reports only the following:
Jan 26, 2018 8:24:00 AM com.martiansoftware.nailgun.NGSession run
INFO: NGSession shutting down
Jan 26, 2018 8:24:00 AM com.martiansoftware.nailgun.NGInputStream lambda$new$1
WARNING: Nailgun client read future was interrupted
java.lang.InterruptedException
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:404)
at java.util.concurrent.FutureTask.get(FutureTask.java:204)
at com.martiansoftware.nailgun.NGInputStream.lambda$new$1(NGInputStream.java:117)
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:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Thanks for the report!
Does it happen in cases where you the command to fail, or it doesn't matter? Do you get at least some output when running with --verbose?
It happens in a case where I expect the command to succeed, so it's failing and I don't know why. --verbose does not change anything, unfortunately (though thanks for making me aware of it)!
I say "where I expect the command to succeed", but there are quite possibly reasons why it wouldn't succeed.
The cause for this particular failure was trying to do a bloop run with the classpath parameter in the configuration file empty, which is obviously a mistake: it could do nothing other than fail.
I haven't experimented much, but the complete lack of output may have been a consequence of not even the Scala library jars being on my classpath.
The examples to reproduce this ticket now work. We can reopen if users catch more examples, but I'm fairly confident that the handling of status codes is now more reasonable and resilient.
Yes, that's been my experience with the M8 release. Thank you!
Update to M9!