kroma-network / go-ethereum

go-ethereum for Kroma
GNU Lesser General Public License v3.0
44 stars 23 forks source link

op-geth doesn't pass core/rawdb unittests #21

Closed chokobole closed 5 months ago

chokobole commented 1 year ago

System information

Geth version: 1.11.2-stable OP-Geth version: 0.1.0-unstable OS & Version: Linux

❯ uname -a
Linux ryan-linux 5.19.0-35-generic #36~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 17 15:17:25 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

Commit hash : https://github.com/ethereum-optimism/op-geth/commit/13ee9ab9153baee7e4169c9a265eeb76aa440c86

Expected behaviour

Tests should be run successfully.

Actual behaviour

~/Workspace/mainnet/optimism/op-geth optimism*
❯ go test ./core/rawdb -count 1
--- FAIL: TestSequentialRead (0.00s)
    freezer_table_test.go:899: AppendRaw(0, ...) returned error: the append operation is out-order: have 0 want 30
--- FAIL: TestSequentialReadByteLimit (0.00s)
    freezer_table_test.go:960: AppendRaw(0, ...) returned error: the append operation is out-order: have 0 want 30
--- FAIL: TestFreezerReadonly (0.00s)
    freezer_table_test.go:1032: AppendRaw(0, ...) returned error: the append operation is out-order: have 0 want 8
--- FAIL: TestRandom (0.00s)
    freezer_table_test.go:1287: random test iteration 1 failed: ([]interface {}) (len=1 cap=1) {
         (rawdb.randTest) (len=50 cap=67) {
          (rawdb.randTestStep) {
           op: (int) 7,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (*errors.errorString)(0xc00018af90)(mismatch on retrieved values [[0 0 0 0 0 0 0 1]] [])
          },
          (rawdb.randTestStep) {
           op: (int) 2,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 3,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 4,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 6,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 4,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 6,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 7,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 0,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 3,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 0,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 6,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 1,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 1,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 1,
           items: ([]uint64) (len=1 cap=1) {
            (uint64) 0
           },
           blobs: ([][]uint8) (len=1 cap=1) {
            ([]uint8) (len=8 cap=8) {
             00000000  00 00 00 00 00 00 00 00                           |........|
            }
           },
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 2,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 7,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 6,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 0,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 1,
           items: ([]uint64) (len=1 cap=1) {
            (uint64) 1
           },
           blobs: ([][]uint8) (len=1 cap=1) {
            ([]uint8) (len=8 cap=8) {
             00000000  00 00 00 00 00 00 00 01                           |........|
            }
           },
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 1,
           items: ([]uint64) (len=1 cap=1) {
            (uint64) 2
           },
           blobs: ([][]uint8) (len=1 cap=1) {
            ([]uint8) (len=8 cap=8) {
             00000000  00 00 00 00 00 00 00 02                           |........|
            }
           },
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 7,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 4,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 2,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 2,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 4,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 6,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 2,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 2,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 3,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 1,
           items: ([]uint64) (len=1 cap=1) {
            (uint64) 1
           },
           blobs: ([][]uint8) (len=1 cap=1) {
            ([]uint8) (len=8 cap=8) {
             00000000  00 00 00 00 00 00 00 01                           |........|
            }
           },
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 0,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 3,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 1,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 1,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 7,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 4,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 4,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 0,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 0,
           err: (error) <nil>
          },
          (rawdb.randTestStep) {
           op: (int) 5,
           items: ([]uint64) <nil>,
           blobs: ([][]uint8) <nil>,
           target: (uint64) 1,
           err: (error) <nil>
          }
         }
        }
--- FAIL: TestFreezerReadAndTruncate (0.00s)
    freezer_table_test.go:483: AppendRaw(0, ...) returned error: the append operation is out-order: have 0 want 30
--- FAIL: TestFreezerTruncate (0.02s)
    freezer_table_test.go:374: AppendRaw(0, ...) returned error: the append operation is out-order: have 0 want 10
--- FAIL: TestFreezerOffset (0.02s)
    freezer_table_test.go:533: 
                Error Trace:    /home/ryan/Workspace/mainnet/optimism/op-geth/core/rawdb/freezer_table_test.go:533
                Error:          Received unexpected error:
                                the append operation is out-order: have 0 want 1000003
                Test:           TestFreezerOffset
--- FAIL: TestSnappyDetection (0.05s)
    freezer_table_test.go:262: AppendRaw(0, ...) returned error: the append operation is out-order: have 0 want 255
--- FAIL: TestFreezerBasicsClosing (0.05s)
    freezer_table_test.go:98: 
                Error Trace:    /home/ryan/Workspace/mainnet/optimism/op-geth/core/rawdb/freezer_table_test.go:98
                Error:          Received unexpected error:
                                the append operation is out-order: have 0 want 255
                Test:           TestFreezerBasicsClosing
--- FAIL: TestFreezerBasics (0.05s)
    freezer_table_test.go:50: AppendRaw(0, ...) returned error: the append operation is out-order: have 0 want 255

Version 1 count 7, deleted 0, hidden 0
| number | fileno | offset |
|--------|--------|--------|
|  000   |  000   |  020   | 
|  001   |  000   |  040   | 
|  002   |  001   |  020   | 
|  003   |  001   |  040   | 
|  004   |  002   |  020   | 
|  005   |  002   |  040   | 
|  006   |  003   |  020   | 
|--------------------------|

Version 1 count 7, deleted 0, hidden 1
| number | fileno | offset |
|--------|--------|--------|
|  000   |  000   |  020   | 
|  001   |  000   |  040   | 
|  002   |  001   |  020   | 
|  003   |  001   |  040   | 
|  004   |  002   |  020   | 
|  005   |  002   |  040   | 
|  006   |  003   |  020   | 
|--------------------------|

FAIL
FAIL    github.com/ethereum/go-ethereum/core/rawdb      0.665s
FAIL

Steps to reproduce the behaviour

$ go test