Race condition in zone serial generation on concurrent changes to recordsets
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Designate |
New
|
Undecided
|
Unassigned | ||
Ubuntu Cloud Archive |
New
|
Undecided
|
Unassigned | ||
designate (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
I discovered a reproducible race condition when updating multiple recordsets of a single zone at the same time. There was an issue https:/
To trigger the race condition I used this piece of terraform to create three recordsets:
--- cut ---
resource "openstack_
count = 3
zone_id = data.openstack_
name = "record-
description = "test-$
ttl = 60
type = "A"
records = ["127.0.0.1"]
}
--- cut ---
those 3 records will be created independently / concurrently and in the end the zone one the nameserver does not contain all the records. When creating just one more record afterwards all the records are written / updated in the zonefile properly - so this is due to the serial being updated inconsistently.
Looking at the code one how the serial is created: https:/
There is a not yet merged patchset by Nicolas Bock which does not refer to a bug, but apparently changes the way the serial is created and uses an update statement in the database to increase the serial: https:/
Did you have the distributed locking service enabled, even for the single process deployment?