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

Reduce build time on CI/CD #30

Closed
oxisto opened this issue Jul 24, 2020 · 5 comments
Closed

Reduce build time on CI/CD #30

oxisto opened this issue Jul 24, 2020 · 5 comments
Labels
enhancement New feature or request wontfix This will not be worked on

Comments

@oxisto
Copy link
Member

oxisto commented Jul 24, 2020

Currently, GitHub Actions almost needs 8m-9m for a simple build. We should try to get that build time down to less annoying times, i.e. 3-5mins. Probably related to the tests, I guess.

Can be flagged as a nice-to-have for now.

@oxisto oxisto added the enhancement New feature or request label Jul 24, 2020
@JulianSchuette
Copy link
Contributor

As always, that is a trade-off. TBH, spending efforts to sacrifice test or logging depth to reduce build time from 8 to 5 minutes seems not worth it to me.

Is this issue blocking you from anything? Does your workflow depend on the CI to finish?

@JulianSchuette JulianSchuette added the wontfix This will not be worked on label Jul 27, 2020
@oxisto
Copy link
Member Author

oxisto commented Jul 27, 2020

Since I do not want to open another issue:

The JythonInterpreterTest as well as the CommandsTest both seem to be broken on OS X and Windows, they seem to try to redirect stdout, which seems to fail and hang indefinitely.

@oxisto
Copy link
Member Author

oxisto commented Jul 27, 2020

With Java 13 on osx I seem to get a LOT (hundrets, if not thousands) of this excact error message in the log file, if I execute the tests.

19:16:32,542 INFO  AbstractResilienceStrategy Ehcache key java.lang.Object recovered from
org.ehcache.spi.resilience.StoreAccessException: java.lang.reflect.InaccessibleObjectException: Unable to make field protected final java.lang.reflect.Field jdk.internal.reflect.UnsafeFieldAccessorImpl.field accessible: module java.base does not "opens jdk.internal.reflect" to unnamed module @39aa45a1
	at org.ehcache.core.exceptions.StorePassThroughException.handleException(StorePassThroughException.java:78) ~[ehcache-3.8.0.jar:3.8.0 98c7461621c490ef009548e61849f925305a631f]
	at org.ehcache.impl.internal.store.heap.OnHeapStore.putIfAbsent(OnHeapStore.java:477) ~[ehcache-3.8.0.jar:3.8.0 98c7461621c490ef009548e61849f925305a631f]
	at org.ehcache.core.Ehcache.doPutIfAbsent(Ehcache.java:141) ~[ehcache-3.8.0.jar:3.8.0 98c7461621c490ef009548e61849f925305a631f]
	at org.ehcache.core.EhcacheBase.putIfAbsent(EhcacheBase.java:296) ~[ehcache-3.8.0.jar:3.8.0 98c7461621c490ef009548e61849f925305a631f]
	at de.fraunhofer.aisec.crymlin.connectors.db.OverflowDatabase.getFieldsIncludingSuperclasses(OverflowDatabase.java:932) ~[classes/:?]
	at de.fraunhofer.aisec.crymlin.connectors.db.OverflowDatabase.createEdgeFactories(OverflowDatabase.java:868) ~[classes/:?]
	at de.fraunhofer.aisec.crymlin.connectors.db.OverflowDatabase.getFactories(OverflowDatabase.java:852) ~[classes/:?]
	at de.fraunhofer.aisec.crymlin.connectors.db.OverflowDatabase.<init>(OverflowDatabase.java:181) ~[classes/:?]
	at de.fraunhofer.aisec.crymlin.connectors.db.OverflowDatabase.getInstance(OverflowDatabase.java:200) ~[classes/:?]
	at de.fraunhofer.aisec.analysis.server.AnalysisServer.persistToODB(AnalysisServer.java:454) ~[classes/:?]
	at de.fraunhofer.aisec.analysis.server.AnalysisServer.lambda$analyze$0(AnalysisServer.java:200) ~[classes/:?]
	at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642) [?:?]
	at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) [?:?]
	at java.util.concurrent.CompletableFuture$AsyncSupply.run$$$capture(CompletableFuture.java:1705) [?:?]
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java) [?:?]
	at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1692) [?:?]
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) [?:?]
	at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) [?:?]
	at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) [?:?]
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) [?:?]
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177) [?:?]

@JulianSchuette
Copy link
Contributor

With Java 13 on osx I seem to get a LOT (hundrets, if not thousands) of this excact error message in the log file, if I execute the tests.

You need to pass the following VM parameters: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED

The exception is caused by the Java Platform Module System that was introduced in Java 9. Apart from that, the exception looks dramatic, but is nothing to worry about.

@oxisto
Copy link
Member Author

oxisto commented Jul 29, 2020

Weirdly enough, all those are set - and I set those for tests as well, but it does not seems to help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

2 participants