mirror of
https://github.com/netbirdio/netbird.git
synced 2026-08-03 19:19:47 -04:00
The row lock from LockingStrengthUpdate only holds for the duration of the surrounding transaction, so the settings read, the cluster immutability check, and the save now share one via ExecuteInTransaction — concurrent PUTs could otherwise interleave between them. bootstrapSettingsIfNeeded takes the store to operate on so the settings-PUT bootstrap participates in that transaction. The bootstrap e2e now sets every toggle away from its default so each assertion can fail, covers a post-bootstrap update without the cluster, and verifies a rejected cluster change leaves the row untouched.