Skip to content

kube-apiserver container left running using podman #419

@MikeEdgar

Description

@MikeEdgar

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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions