mirror of
https://github.com/tailscale/tailscale.git
synced 2025-08-13 06:07:34 +00:00
ipn: avoid useless no-op WriteState calls
Rather than make each ipn.StateStore implementation guard against useless writes (a write of the same value that's already in the store), do writes via a new wrapper that has a fast path for the unchanged case. This then fixes profileManager's flood of useless writes to AWS SSM, etc. Updates #8785 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:

committed by
Brad Fitzpatrick

parent
a3f11e7710
commit
c56e94af2d
@@ -2209,7 +2209,7 @@ func (b *LocalBackend) initMachineKeyLocked() (err error) {
|
||||
}
|
||||
|
||||
keyText, _ = b.machinePrivKey.MarshalText()
|
||||
if err := b.store.WriteState(ipn.MachineKeyStateKey, keyText); err != nil {
|
||||
if err := ipn.WriteState(b.store, ipn.MachineKeyStateKey, keyText); err != nil {
|
||||
b.logf("error writing machine key to store: %v", err)
|
||||
return err
|
||||
}
|
||||
@@ -2224,7 +2224,7 @@ func (b *LocalBackend) initMachineKeyLocked() (err error) {
|
||||
//
|
||||
// b.mu must be held.
|
||||
func (b *LocalBackend) clearMachineKeyLocked() error {
|
||||
if err := b.store.WriteState(ipn.MachineKeyStateKey, nil); err != nil {
|
||||
if err := ipn.WriteState(b.store, ipn.MachineKeyStateKey, nil); err != nil {
|
||||
return err
|
||||
}
|
||||
b.machinePrivKey = key.MachinePrivate{}
|
||||
@@ -4830,7 +4830,7 @@ func (b *LocalBackend) SetDevStateStore(key, value string) error {
|
||||
if b.store == nil {
|
||||
return errors.New("no state store")
|
||||
}
|
||||
err := b.store.WriteState(ipn.StateKey(key), []byte(value))
|
||||
err := ipn.WriteState(b.store, ipn.StateKey(key), []byte(value))
|
||||
b.logf("SetDevStateStore(%q, %q) = %v", key, value, err)
|
||||
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user