-
Notifications
You must be signed in to change notification settings - Fork 1
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
Add a GitHub actions build #25
Conversation
Signed-off-by: Tim Ward <timothyjward@apache.org>
* Add the OSSRH repository * Update to use Map<String, String> in launch properties Signed-off-by: Tim Ward <timothyjward@apache.org>
Signed-off-by: Tim Ward <timothyjward@apache.org>
This PR aims to publish the current snapshot so that it can be used in demos and elsewhere. The overall set of changes seem to work, but there's a timing bug somewhere in the tests. @ideas-into-software can you look over the changes I've made, check that you're happy, and I'll try to stabilise things so that I can work on the demo code. Thanks! |
It looks like this is a limitation of number of cores on GitHub hosted runners available. This is a private repository on free plan, it appears, and such runners have only 2 virtual CPUs / only 2 threads ( https://github.blog/news-insights/product-news/github-hosted-runners-double-the-power-for-open-source/ ). Programmatically launching and shutting down OSGi framework multiple times across test cases in suites run apparently does not keep up to number of threads available. I did not see any of such issues in my local environment, where I have 6 CPUs / 12 threads and 64 GB of memory - otherwise, I would have fixed them or at least asked for your help. Even temporarily removing bundle state assertions in I am sorry I can't help more on this - only increasing resources available ( number of vCPUs ) would make this pass, it seems. |
440cb05
to
2ff93a3
Compare
This commit uses JUnit's @tempdir annotation to provide a framework storage area per-test. It also removes the shutdown handler and simplifies framework cleanup a little. Signed-off-by: Tim Ward <timothyjward@apache.org>
Signed-off-by: Tim Ward <timothyjward@apache.org>
53c87cb
to
3c25b2b
Compare
With a little cleanup and some logging I was able to identify the root cause, namely the interaction of the Gogo shell with a headless build process. By configuring Gogo to be @ideas-into-software - I would like to merge this unless it will be excessively disruptive to you? |
Hi Tim, This is a very constrained environment, and I do not know the internals as well as you do, but the exceptions thrown and apparent differences pointed at insufficient resources to handle this - as per my earlier message; apparently it is environment difference which causes this, as no such issues appear in less constrained environment. It's good to know gogo can be configured like this - I did not know this. I see by commit history and changes in this PR:
You can obviously merge as you wish, but I wanted to clarify these items - does not have to happen first. I am focusing on the CLI, so I will merge your changes before sharing new PR which contains it. |
I was able to reliably reproduce by running
I cleared these commits as my understanding was that they contained temporary checks and you wanted them to be removed. I kept the
There were a few headaches here, the most significant being that there was no removal of the shutdown hook. Each test ended up with an additional hook registered and I kept seeing "odd" things at the end of all the tests where it tried to clean up a framework that had already been stopped (it was also a memory leak in the tests). This could be reinstated to simply stop the framework, as long as we remove the hook if the framework stops "normally". I don't see this as a big priority though.
Once the configurations are installed there shouldn't be any need to keep tracking should there?
I've cleared the remaining import. I can't see any missing formatting
Good catch. I needed these at compile scope for debug breakpoints. That should be backed out. |
Some of the Feature Launcher tests deploy the Gogo Shell. If the Gogo shell detects that stdin has closed then it shuts down the framework automatically. When running in CI (and elsewhere) we use batch mode with no terminal which disconnects the test run and gives it an empty stdin. This causes the tests to fail as gogo shuts things down before the test finishes. Instead we must configure gogo to be non-interactive during the tests. Signed-off-by: Tim Ward <timothyjward@apache.org>
3c25b2b
to
6ac0354
Compare
Hi Tim, You merged this in the meantime, and I was focusing on delivering next PR ( #26 ) on time, so I only have time to reply now. a) regarding stopping of
My understanding of b) regarding missing commits - there was actually some refactoring done as well, as I was right after delivering PR with c) regarding formatting and obsolete import - aside from that missing import you removed, there was also formatting issue; see screenshots attached - perhaps it's a matter of width set in Eclipse, mine is pre-set as standard, but there are clear differences, which is why I mentioned it; d) regarding environment differences - thank you for the tip; I thought this was related to async issues I saw locally when several test cases are run / i.e. why I could not rely on |
No description provided.