diff --git a/base/leaky_datastore.go b/base/leaky_datastore.go index fbc7732f6f..0ab95e603b 100644 --- a/base/leaky_datastore.go +++ b/base/leaky_datastore.go @@ -153,7 +153,13 @@ func (lds *LeakyDataStore) Update(k string, exp uint32, callback sgbucket.Update lds.config.UpdateCallback(k) return updated, expiry, isDelete, err } - return lds.dataStore.Update(k, exp, wrapperCallback) + casOut, err = lds.dataStore.Update(k, exp, wrapperCallback) + for _, errorKey := range lds.config.ForceTimeoutErrorOnUpdateKeys { + if k == errorKey { + return 0, ErrTimeout + } + } + return casOut, err } casOut, err = lds.dataStore.Update(k, exp, callback) diff --git a/db/crud_test.go b/db/crud_test.go index e1114a6b44..5d8e2c6930 100644 --- a/db/crud_test.go +++ b/db/crud_test.go @@ -1690,7 +1690,7 @@ func TestAssignSequenceReleaseLoop(t *testing.T) { // - Assert we don;t release a sequence for it + we hav eit in changes // - Write new doc with conflict error // - Assert we release a sequence for this -func TestReleaseSequenceOnDocWrite(t *testing.T) { +func TestReleaseSequenceOnDocWriteFailure(t *testing.T) { defer SuspendSequenceBatching()() base.SetUpTestLogging(t, base.LevelDebug, base.KeyAll)