From bd188a4376dffc0582b3dcaaa5de7f1059686f13 Mon Sep 17 00:00:00 2001 From: devopsbo3 <69951731+devopsbo3@users.noreply.github.com> Date: Fri, 10 Nov 2023 12:27:53 -0600 Subject: [PATCH] Revert "core/rawdb: use readonly file lock in readonly mode (#28180)" This reverts commit c4ef468644460fe2b64577a1142946bdfe6f8b5b. --- core/rawdb/freezer.go | 6 +---- core/rawdb/freezer_test.go | 51 -------------------------------------- 2 files changed, 1 insertion(+), 56 deletions(-) diff --git a/core/rawdb/freezer.go b/core/rawdb/freezer.go index b7824ddc0d..a9fe234321 100644 --- a/core/rawdb/freezer.go +++ b/core/rawdb/freezer.go @@ -108,11 +108,7 @@ func NewFreezer(datadir string, namespace string, readonly bool, maxTableSize ui // Leveldb uses LOCK as the filelock filename. To prevent the // name collision, we use FLOCK as the lock name. lock := flock.New(flockFile) - tryLock := lock.TryLock - if readonly { - tryLock = lock.TryRLock - } - if locked, err := tryLock(); err != nil { + if locked, err := lock.TryLock(); err != nil { return nil, err } else if !locked { return nil, errors.New("locking failed") diff --git a/core/rawdb/freezer_test.go b/core/rawdb/freezer_test.go index b4bd6a382a..96d24cc947 100644 --- a/core/rawdb/freezer_test.go +++ b/core/rawdb/freezer_test.go @@ -283,57 +283,6 @@ func TestFreezerReadonlyValidate(t *testing.T) { } } -func TestFreezerConcurrentReadonly(t *testing.T) { - t.Parallel() - - tables := map[string]bool{"a": true} - dir := t.TempDir() - - f, err := NewFreezer(dir, "", false, 2049, tables) - if err != nil { - t.Fatal("can't open freezer", err) - } - var item = make([]byte, 1024) - batch := f.tables["a"].newBatch() - items := uint64(10) - for i := uint64(0); i < items; i++ { - require.NoError(t, batch.AppendRaw(i, item)) - } - require.NoError(t, batch.commit()) - if loaded := f.tables["a"].items.Load(); loaded != items { - t.Fatalf("unexpected number of items in table, want: %d, have: %d", items, loaded) - } - require.NoError(t, f.Close()) - - var ( - wg sync.WaitGroup - fs = make([]*Freezer, 5) - errs = make([]error, 5) - ) - for i := 0; i < 5; i++ { - wg.Add(1) - go func(i int) { - defer wg.Done() - - f, err := NewFreezer(dir, "", true, 2049, tables) - if err == nil { - fs[i] = f - } else { - errs[i] = err - } - }(i) - } - - wg.Wait() - - for i := range fs { - if err := errs[i]; err != nil { - t.Fatal("failed to open freezer", err) - } - require.NoError(t, fs[i].Close()) - } -} - func newFreezerForTesting(t *testing.T, tables map[string]bool) (*Freezer, string) { t.Helper()