collisions of duplicate ipvlan and macvlan network IDs during createNetwork
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 2.2k
- Forks
- 875
- PR merge metrics
- No merged PRs in 30d
Description
PR #2055 resolves the issue shown below, where an existing copy of a network has not been removed on Docker Engine shutdown, and still persists when the config-only network is created once again on a subsequent createNetwork call
existing network config = (*ipvlan.configuration)(0xc420322e80)({\n
ID: (string) (len=25) \"hwqzu5i4kmrd2uzi34zpnpy1m\",\n
Mtu: (int) 0,\n
dbIndex: (uint64) 6,\n
dbExists: (bool) true,\n
Internal: (bool) false,\n
Parent: (string) (len=4) \"eth0\",\n
IpvlanMode: (string) (len=2) \"l2\",\n
CreatedSlaveLink: (bool) false,\n
Ipv4Subnets: ([]*ipvlan.ipv4Subnet) (len=1 cap=4) {\n
(*ipvlan.ipv4Subnet)(0xc4206413a0)({\n
SubnetIP: (string) (len=13) \"10.100.0.0/16\",\n
GwIP: (string) (len=13) \"10.100.0.1/16\"\n
})\n
},\n
Ipv6Subnets: ([]*ipvlan.ipv6Subnet) <nil>\n})\n
new network config = (*ipvlan.configuration)(0xc4203c5b80)({\n
ID: (string) (len=25) \"hwqzu5i4kmrd2uzi34zpnpy1m\",\n
Mtu: (int) 0,\n
dbIndex: (uint64) 0,\n
dbExists: (bool) false,\n
Internal: (bool) false,\n
Parent: (string) (len=4) \"eth0\",\n
IpvlanMode: (string) (len=2) \"l2\",\n
CreatedSlaveLink: (bool) false,\n
Ipv4Subnets: ([]*ipvlan.ipv4Subnet) (len=1 cap=1) {\n
(*ipvlan.ipv4Subnet)(0xc42149af00)({\n
SubnetIP: (string) (len=13) \"10.100.0.0/16\",\n
GwIP: (string) (len=13) \"10.100.0.1/16\"\n
})\n
},\n
Ipv6Subnets: ([]*ipvlan.ipv6Subnet) <nil>\n})\n
The symptom of an existing and now-conflicting network is usually as follows, including showing up as a rejected task's error -
docker.err.log:time="2018-01-15T23:32:21.993891743Z" level=error msg="fatal task error" error="network di-hwqzu5i4kmrd is already using parent interface eth0
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing PR #2055 and the createNetwork path for ipvlan and macvlan networks. Reproduce the Docker Engine shutdown and subsequent config-only network creation scenario described here, then check the rejected task error for a conflicting parent interface. Done means the stale network copy no longer causes duplicate network IDs or parent-interface conflicts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100