-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
When using rootless podman (i.e. relying on testcontainer's JVMHookResourceReaper to perform shutdown), the dependency introduced between the apiserver and etcd for networking results in the following error and the kube-apiserver container is left running.
A solution that I've tried locally is to create a bridge network for communication between the apiserver and etcd containers, which removes the dependency in podman and allows for proper shutdown. I'll open a PR with the suggested change.
Exception in thread "Thread-63" com.github.dockerjava.api.exception.InternalServerErrorException: Status 500: Status 500: {"cause":"container already exists","message":"container 40de290e69826a0267fa2832eb46d9d69846666cdb7da115dc8cb987dd216d1c has dependent containers which must be removed before it: 796f1464b2da06c370fca21fe1004bbbd42d0127bb4db5595879803529d10997: container already exists","response":500}
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:562)
at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:591)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:689)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
at org.testcontainers.utility.JVMHookResourceReaper.prune(JVMHookResourceReaper.java:49)
at org.testcontainers.utility.JVMHookResourceReaper.lambda$performCleanup$0(JVMHookResourceReaper.java:25)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.testcontainers.utility.JVMHookResourceReaper.performCleanup(JVMHookResourceReaper.java:25)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: com.github.dockerjava.api.exception.InternalServerErrorException: Status 500: {"cause":"container already exists","message":"container 40de290e69826a0267fa2832eb46d9d69846666cdb7da115dc8cb987dd216d1c has dependent containers which must be removed before it: 796f1464b2da06c370fca21fe1004bbbd42d0127bb4db5595879803529d10997: container already exists","response":500}
at org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.execute(DefaultInvocationBuilder.java:247)
at org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.delete(DefaultInvocationBuilder.java:56)
at org.testcontainers.shaded.com.github.dockerjava.core.exec.RemoveContainerCmdExec.execute(RemoveContainerCmdExec.java:28)
at org.testcontainers.shaded.com.github.dockerjava.core.exec.RemoveContainerCmdExec.execute(RemoveContainerCmdExec.java:11)
at org.testcontainers.shaded.com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)
at org.testcontainers.shaded.com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:33)
at org.testcontainers.shaded.com.github.dockerjava.core.command.RemoveContainerCmdImpl.exec(RemoveContainerCmdImpl.java:66)
at org.testcontainers.utility.JVMHookResourceReaper.lambda$prune$6(JVMHookResourceReaper.java:54)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Metadata
Metadata
Assignees
Labels
No labels