-
Notifications
You must be signed in to change notification settings - Fork 21
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
Lost Builds #3
Comments
BLUFI think the container that does the build is running out of memory and being killed before it finished. I think this can be fixed by increasing memory available to the container and/or using the DetailsI've been trying to determine what's going on by attempting to reproduce using Docker containers (since that is how the auto-build works). I tried to do a variation of the ig-build image in this repo, but I could not get it to build. In short, the container insisted on installing ruby 2.1, but jekyll-asciidoc required a later version of ruby. I tried downgrading jekyll-asciidoc, but that didn't work either. In the end, I ended up making an even-more-modified container for testing (see Dockerfile). When I ran the container, I mapped my IG source to docker run -it --rm -v /path/to/my/guide:/usr/src/input --name running-ig-publisher ig-publisher This ran for a while but ultimately was killed. Here's the last few lines of the output:
After some research, I learned that
Based on that documentation, I changed my command to this: docker run -it -m 3G --oom-kill-disable --rm -v /path/to/my/guide:/usr/src/input --name running-ig-publisher ig-publisher This time, the build succeeded (although it took 21 minutes to complete). @jmandel or @grahamegrieve -- do you think that it's likely that this is the problem? And if so, might it be possible to update the auto-builder to allocate more memory and/or set the |
Thanks for the detailed report! Just to get started, do you know how much memory the job is expected to take? And when it has been killed is it doing the java build process or during a Jekyll invocation (I was assuming the former)? Also is the 21 minute build time consistent with what you see when you run locally using a normal process? Things we'll want to investigate:
|
I'm not sure how much memory it needs. As noted above, I got it working with A few odd things to note:
According to the logs, it looks like it's dying in the Java process, but since I think I've established that |
Based on experimentation, I can keep the Java memory allocation to
Is it possible to increase the allocation on the container by that much in the hosted services? |
We can certainly make this change. I would love to understand more about what's happening with memory at the same time. Do you think your Java process is using only two gigabytes? In which case is Jekyll bursting higher? |
I guess I don't know for sure. I'm assuming that since I'm passing in I'll try running it again and using |
Here is a very weird wrinkle in this story. As I was trying to profile my container to see memory usage, I noticed that no matter what I pass in via It turns out that Docker for Mac defaults to an overall 2GB memory max unless you change the configuration in the Docker preferences menu. So all along I have never got more than I've just bumped up my Docker for Mac memory preferences, so I'll try this all again and report back. |
Wow. Actually increasing my container memory made a big difference. Here's how I ran it:
The result is:
I was reminded that To see how close we are getting to the actual java heap size max (2 GB), I tried running it with I did one more run, setting @jmandel -- here are my recommendations based on these findings:
Let me know what you think -- and when you think we might be able to have these changes deployed. |
With |
This should be working now! An underlying issue was actually brittleness in looking for the |
Hi @jmandel. Great! I can't wait to try it out! Regarding the |
Would you be able to find the That said, I just noticed now that in the IG Publisher doc, it documents this field w/ a special disclaimer for auto-build:
Oops. I can probably change ours to "output". IIRC, I think I put that second-level folder in there because it's a real pain in the neck to find the |
@jmandel -- I just pushed to my repo and got my first successfully triggered auto-build! Thank you so very much for trudging through this with me and spending the time to get it working. It is very much appreciated! |
Sure thing! Really appreciate your help investigating along the way. Looking ahead, there's no reason that handling of the configuration Json file needs to be so brittle, and it would be good too tackle that. |
I've setup the auto-build as described and even got some failed builds -- which proved to me that the auto-build webhook was working. I fixed the issue that caused the initial failures, but now I never get a build notification for my IG (whether triggering via a push or manually) -- and the build.log hasn't changed (it is still that last failed build).
I think my build is getting hung or timing out. Is there any way to get more insight into the build process as it is happening? As it is now, it's very difficult to determine what's going on -- as the build succeeds locally (albeit with reported errors in qa.html), but seems to get lost in the auto-build.
This is for the IG at https://github.com/HL7/us-breastcancer.
The text was updated successfully, but these errors were encountered: