Matrix builds network concurrency issue

I’m running into issues doing a matrix build. My matrix variables correspond to tags on my custom rpmbuild plugin image.

pipeline:
  build:
    image: rpmbuild:${DIST}
matrix:
  DIST:
    - el6
    - el7
# docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
rpmbuild                           el7                 e689e57e0e89        2 hours ago         352 MB
rpmbuild                           el6                 b527f052ae4f        2 hours ago         334 MB
registry.access.redhat.com/rhel6   latest              70e89b293228        7 days ago          199 MB
registry.access.redhat.com/rhel7   latest              33a3ad89f9ab        2 weeks ago         196 MB
docker.io/plugins/git              latest              272b4de1492a        4 months ago        66.8 MB

Building with only one tag (el7) in the matrix is successful. But once I add the second tag (el6) to the matrix, only one of the tasks will succeed, and the other fails. If I remove one of the tags again (el7), it goes right back to passing. These builds show that both tags successfully build, but not when they are both in the matrix.

In the failed task none of the pipeline steps are executed. It just immediately exits with this error.

Error response from daemon: unable to remove jump to DOCKER-ISOLATION rule in FORWARD chain: (COMMAND_FAILED: '/usr/sbin/iptables -w2 -D FORWARD -j DOCKER-ISOLATION' failed: iptables: No chain/target/match by that name. )

I’m using docker-1.13.1-53.git774336d.el7.x86_64 on RHEL7, and have set DOCKER_API_VERSION=1.26 for the agents. I found a similar upstream issue that suggest it is a concurrency problem with creating multiple networks at the same time. That issue was fixed in docker 17.04, but I’m stuck with Red Hat’s docker package for proper subscription pass through for my RHEL containers. My gut says that I’ll have to ask Red Hat to backport moby#31343 to their package, but I wanted to ask here first to see if there is a work around or way to address it in drone.

I was able to fix this by backporting this commit from docker/libnetwork into RHEL’s docker package. I also filed a bug with Red Hat.

1 Like

This has been fixed in RHEL 7.5 with docker-1.13.1-58.git87f2fab.el7.