Run LambdaCD with modern Java (reproduced with openjdk-16)
Run a build and try to kill it while it's running
Observe an exception on the terminal, process will not be killed:
Exception in thread "async-dispatch-2" java.lang.reflect.InaccessibleObjectException: Unable to make field private final int java.lang.ProcessImpl.pid accessible: module java.base does not "opens java.lang" to unnamed module @11739fa6
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28)
at lambdacd.util.internal.reflection$private_field.invokeStatic(reflection.clj:5)
at lambdacd.util.internal.reflection$private_field.invoke(reflection.clj:3)
at lambdacd.steps.shell$pid_of_process.invokeStatic(shell.clj:22)
at lambdacd.steps.shell$pid_of_process.invoke(shell.clj:21)
at lambdacd.steps.shell$kill.invokeStatic(shell.clj:25)
at lambdacd.steps.shell$kill.invoke(shell.clj:24)
at lambdacd.steps.shell$add_kill_handling$fn__15580$fn__15581.invoke(shell.clj:38)
at clojure.lang.ARef.notifyWatches(ARef.java:81)
at clojure.lang.Atom.reset(Atom.java:101)
at clojure.core$reset_BANG_.invokeStatic(core.clj:2278)
at clojure.core$reset_BANG_.invoke(core.clj:2273)
at lambdacd.execution.internal.kill$wrap_execute_step_with_kill_handling$fn__12489$fn__12490.invoke(kill.clj:53)
at clojure.lang.ARef.notifyWatches(ARef.java:81)
at clojure.lang.Atom.reset(Atom.java:101)
at clojure.core$reset_BANG_.invokeStatic(core.clj:2278)
at clojure.core$reset_BANG_.invoke(core.clj:2273)
at lambdacd.execution.internal.kill$kill_step_handling$fn__12435$state_machine__8849__auto____12448$fn__12450.invoke(kill.clj:33)
at lambdacd.execution.internal.kill$kill_step_handling$fn__12435$state_machine__8849__auto____12448.invoke(kill.clj:28)
at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc_macros.clj:973)
at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macros.clj:972)
at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeStatic(ioc_macros.clj:977)
at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:975)
at clojure.core.async.impl.ioc_macros$take_BANG_$fn__8865.invoke(ioc_macros.clj:986)
at clojure.core.async.impl.channels.ManyToManyChannel$fn__4402.invoke(channels.clj:135)
at clojure.lang.AFn.run(AFn.java:22)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:831)