Why is sbt pausing after resolving? - sbt

Our build server output looks like this
[13:24:09][Step 1/1] [info] Loading project definition from ...
[13:24:10][Step 1/1] [info] Set current project ...
[13:24:10][Step 1/1] [info] Updating {file:/Users/build/TeamCity/agents/agent1/work/6060f176dc49a319/}root...
[13:24:11][Step 1/1] [info] Resolving org.scala-lang#scala-library;2.10.4 ...
... blah blah
[13:24:16][Step 1/1] [info] Done updating.
[13:26:42][Step 1/1] [success] Total time: 146 s, completed 24-Jul-2014 13:26:42
So it took a few seconds to complete the resolving step but then between Done updating and the next step there was a pause of a couple of minutes.
Any idea what is going on there?

I'm not 100% sure if it's before or after displaying "Done updating", but two things happen surrounding Ivy resolution: caching and writing resolution reports. Update is called by compile, so caching the result is important. If you have a large dependency graph, the caching the input and output might take few seconds. Ivy resolution reports are written out to target/resolution-cache/reports/ directory, which tells you exactly what modules and artifacts got resolved. This a large XML file written out for each configurations, so it could also take a few seconds. If you have number of subprojects with large dependencies all this could compound to many seconds.
I'm currently working on several features in sbt to related to this. Consolidated resolution should ease the pain for multi-project builds if the subprojects have fairly uniform dependencies. Using the result from resolution report, I'll produce eviction warnings.

We've discovered that by completely cleaning our target dir the problem went away :(
We were using
cleanKeepFiles ++= Seq("resolution-cache", "streams").map(target.value / _)
which may have been the culprit, who knows.
If it happens again I'll try to understand whats going on.

Related

Error staging application: App staging failed in the buildpack compile phase in HWC Buildpack

I am trying to deploy my application built in ASP.Net 4.6.1. So I am using HWC Buildpack.
Below is my manifest.yml
---
applications:
- name: DRSN
random-route: true
memory: 128M
buildpack:
https://github.com/cloudfoundry/hwc-buildpack.git
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
The error that I am receiving is below.
Waiting for API to complete processing files...
Staging app and tracing logs...
Cell 0f7012eb-9e32-4fdf-ba92-85aee4639139 creating container for instance 34107c3c-1acb-4aa5-b435-b06516abcfcb
Cell 0f7012eb-9e32-4fdf-ba92-85aee4639139 successfully created container for instance 34107c3c-1acb-4aa5-b435-b06516abcfcb
Downloading app package...
Downloading build artifacts cache...
Downloaded build artifacts cache (231B)
Downloaded app package (19.5M)
Failed to compile droplet: Failed to compile droplet: fork/exec /tmp/buildpackdownloads/6c6dca8d638ac0d145d6581f9eb9a96a/bin/compile: permission denied
Exit status 223
Cell 0f7012eb-9e32-4fdf-ba92-85aee4639139 stopping instance 34107c3c-1acb-4aa5-b435-b06516abcfcb
Cell 0f7012eb-9e32-4fdf-ba92-85aee4639139 destroying container for instance 34107c3c-1acb-4aa5-b435-b06516abcfcb
Error staging application: App staging failed in the buildpack compile phase
Can anyone help me resolve this issue? Am I not correct in my manifest.yml? Or is it something else?
I believe that the problem is that you're telling the system to use the HWC buildpack, but at the same time you're not setting the Windows stack (at least based on what info I can see). That means it's going to default to the Linux stack, which I believe is why you're seeing the fork/exec /tmp/buildpackdownloads/... error.
Try adding stack: windows to your manifest.yml or -s windows to your cf push command (for future reference, when you need help always include the full cf push command you're running).
PS: you shouldn't use https://github.com/cloudfoundry/hwc-buildpack.git that is telling the system to grab the master branch in whatever state it's currently in. That's a.) not reproducible and b.) not guaranteed to be in a working state. You should either use the platform provided buildpack names (from cf buildpacks) or append #<branch_or_tag> to the end of the URL so it picks a specific branch. All CF Buildpacks have tags for each release. It's strongly recommended you use a tagged release.

OPAL-How to build code in Docker in local machine (faced compile error)?

I access code in Docker($docker pull mreif/fse2016:evaluation), the code could be compiled and run without errors in remote server. While i download it to local machine, i suffered some errors in compiling(using: sbt compile):
[error] (*:update) sbt.ResolveException: unresolved dependency: de.opal-project#abstract-interpretation-framework_2.11;0.9.0-SNAPSHOT: not
[What i have done] I added follow lines into "build.sbt":
resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
[error] evaluation/src/main/scala/org/opalj/evaluation/EntryPointAndCallEdgeCountAnalysis.scala:90: not found:
[What i have done] I added follow lines into "build.sbt":
libraryDependencies += "de.opal-project" % "fixpoint-computations-framework-analyses_2.11" % "0.9.0- SNAPSHOT"
3.[error] /src/main/scala/org/opalj/evaluation/EntryPointAndCallEdgeCountAnalysis.scala:130: not found: value LibraryEntryPointsAnalysis
I have checked the related code, LibraryEntryPointsAnalysis has been actually imported but doesn't work.
Could you please help me to confirm is there any operations i missed for compile the source code?
Thank you very much!
Jiang
The reason why it is not working is a version mismatch of the OPAL framework. The reason why it doesn't find the "LibraryEntryPointAnalysis" is, that it has been renamed.
You have to options:
Use the version of OPAL that is used in the Docker container
make a check out of OPAL at from version tag "ArtifactEvaluationFSE2016"
copy OPAl from the container like you did with the evaluation project
Adapt the Evaluation Project to the new API
the LibraryEntryPointsAnalysis is now called EntryPointAnalysis
there are probably other breaking changes that you have to fix
If you want to go with option one you have to build OPAL on your own because the eval version is not published on maven.

Release does not run. This application failed to start

My application works when it built in debug mode. But it does not run in release.
This application failed to start because it could not find or load the
Qt platform plugin "windows".
Reinstalling the application may fix this problem.
I copied dlls which the application required. I copied also qwindows.dll, qoffscreen.dll and libEGL.dll.
But libEGL.dll located in C:\qt\5.3\msvc2013\bin and `C:Qt\ToolsQtCreator\bin'. I compiled my application by msvc-11.0(2012).
--
I put platforms folder to exe directory and now application runs but crashes immediately in ntdll.dll!771e56bc()
Now my problem is similar to this one Why is ntdll.dll crashing my c++ executable?.
Can I make debug working like release but save debug mode?
--
Here is Application Verifier result for release mode. It does not happen for debug.
=======================================
VERIFIER STOP 00000006: pid 0xDF0: Corrupted heap pointer or using wrong heap.
00161000 : Heap handle used in the call.
093F8FF8 : Heap block involved in the operation.
00000004 : Size of the heap block.
06441000 : Heap where block was originally allocated.
=======================================
This verifier stop is not continuable. Process will be terminated
when you use the `go' debugger command.
=======================================
MyApp.exe has triggered a breakpoint.
AVRF: Noncontinuable verifier stop 00000006 encountered. Terminating process ...
The thread 0x1724 has exited with code -1073740767 (0xc0000421).
The program '[3568] MyApp.exe' has exited with code -1073740767 (0xc0000421).
--
Here is a top of a call stack
vrfcore.dll!6ae43466() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for vrfcore.dll]
[External Code]
qwindows.dll!0f0642cb() Unknown
qwindows.dll!0f065f8a() Unknown
qwindows.dll!0f0662bb() Unknown
Qt5Gui.dll!0f774cf3() Unknown
Qt5Gui.dll!0f774e75() Unknown
Qt5Gui.dll!0f7778d5() Unknown
But libEGL.dll located in C:\qt\5.3\msvc2013\bin and `C:Qt\ToolsQtCreator\bin'
You must not take any DLLs from C:\Qt\Tools\QtCreator\ -- these are private DLLs for Qt Creator, and they are incompatible with your application.
Only take DLLs from C:\Qt\5.3\msvc2013\bin and C:\Qt\5.3\msvc2013\plugins. Here is the required folder structure:
(source: http://qt-project.org/wiki/Deploy_an_Application_on_Windows )
This sounds like either a DLL is missing or the application expects it in a different path.
a) Use the Dependency Walker on your release build executable to check whether all DLL dependencies can be resolved.
b) Make sure that your platform plugin files are at the right location. I think they need to be in a folder called "platforms" (not absolutely sure though).
c) There is a post in the Qt forum about a similar problem. Maybe this helps you to track it down.

Workers not starting in Storm (backtype.storm.daemon.worker class not found)

I’m a newbie with Storm and I have setup a Storm-on-Yarn on an HDP cluster using the instructions at the HDP Storm-on-Yarn page and the storm-yarn-master from anfeng's storm-yarn git project.
I’m able to get Nimbus running and even submit topologies and see them on Storm UI. However, the spouts and the bolts don’t seem to be “working” (0 counts of tuples emitted).
I did some digging around and realized that my worker daemons are not starting. The supervisor log spits out these:
2014-03-13 11:22:03 b.s.d.supervisor [INFO] 18bf93a1-1cea-4e99-93da-8f36a4e9c056 still hasn't started
I tried launching the worker command from the “Launching worker with command” line in the supverviser log and I got this error:
Exception in thread "main" java.lang.NoClassDefFoundError: backtype/storm/daemon/worker
Caused by: java.lang.ClassNotFoundException: backtype.storm.daemon.worker
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: backtype.storm.daemon.worker. Program will exit.
It looks like it can’t find the worker class although it’s present in the storm-core jar.
Any ideas on how I can proceed with troubleshooting this? I’ve attached the nimbus and the supervisor logs. The worker logs don't seem to have been created.
Nimbus Log - http://paste.ubuntu.com/7089418/
Supervisor Log - http://paste.ubuntu.com/7089422/
Hadoop Version - 2.2
Storm Version - 0.9.0-wip21
I've had an issue like this when the JAR file I was creating did not exclude the storm binaries. i.e. in the pom.xml file, make sure that you have the storm-core dependency set with:
<scope>provided</scope>
As well, I had issues where multiple versions of netty were installed in the storm lib folder (had to delete the old version JAR). This was also causing NoClassDefFoundErrors to be thrown (albeit, different than the one you are experiencing).
I would suggest looking at the classpath that shows up when you submit the topolgies (you can do that by doing ps -Af | grep storm)

How to add scalax.io as dependency in SBT?

I want to use scalax.io._ to manipulate file operations with SBT.
When I ran it, I got the error message showing scalax is not found.
>sbt run
import scalax.io._
[error] ^
[error] iotest.scala:49: not found: object scalax
How to find the library dependency for this particular one?
A more general question, how to obtain the library dependency information for any library?
For example, if I need use actor in scala, I need specify a library dependency. How to find the library dependency?
"the library dependency information for any library" is part of the library's documentation and the author(s) is supposed to publish the info for different project management tools, sbt including. After all, what would be the purpose of developing a library that's hard to use?
Use http://search.maven.org/ to search for a library, and when you search for scala-io you'll get a list of available scala-io libraries.
Since I've never worked with the library I copied the ScalaIOExample example from Scala IO Documentation to have a working example. It needs the scalax.io and scalax.file packages that are distributed as scala-io-file artifact. Searching for the artifact leads to Artifact Details For com.github.scala-incubator.io:scala-io-file_2.10:0.4.2 with information on how to use it with Scala SBT in Dependency Information section.
With this, I created the following build.sbt in a sbt project:
scalaVersion := "2.10.3"
libraryDependencies += "com.github.scala-incubator.io" %% "scala-io-file" % "0.4.2"
It will add scala-io-file_2.10-0.4.2.jar to classpath and executing run in the project gives the following results:
$ sbt run
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Loading project definition from /Users/jacek/sandbox/stackoverflow/sbt-scala-io/project
[info] Set current project to sbt-scala-io (in build file:/Users/jacek/sandbox/stackoverflow/sbt-scala-io/)
[info] Running ScalaIOExample
Not interrupting system thread Thread[Keep-Alive-Timer,8,system]
Not interrupting system thread Thread[Keep-Alive-SocketCleaner,8,system]
[success] Total time: 5 s, completed Dec 31, 2013 11:16:42 PM

Resources