heco-chain icon indicating copy to clipboard operation
heco-chain copied to clipboard

Upgrade to 1.1.3 in ARM Ubuntu, shows unexpected fault address 0x89a6798853322f82

Open dbarobin opened this issue 3 years ago • 3 comments

System information

Geth version: 1.1.1-stable OS & Version: Linux, ARM

Expected behaviour

Upgrade to 1.1.3 successfully.

Actual behaviour

When I upgrade 1.1.1-stable to 1.1.3, geth can't working, and the logs/systemd_chain_console.out show this.

unexpected fault address 0x89a6798853322f82
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x1 addr=0x89a6798853322f82 pc=0x66a2f4]

goroutine 1 [running]:
runtime.throw({0x10c4fc4, 0x5})
        runtime/panic.go:1198 +0x54 fp=0x40007cec60 sp=0x40007cec30 pc=0x450524
runtime.sigpanic()
        runtime/signal_unix.go:742 +0x1e4 fp=0x40007ceca0 sp=0x40007cec60 pc=0x469494
github.com/golang/snappy.encodeBlock({0x40007e0002, 0x1301, 0x1301}, {0x40007c0000, 0x100f, 0x199d})
        github.com/golang/[email protected]/encode_arm64.s:666 +0x354 fp=0x40007d6d40 sp=0x40007cecb0 pc=0x66a2f4
github.com/golang/snappy.Encode({0x40007e0000, 0x1303, 0x1303}, {0x40007c0000, 0x100f, 0x199d})
        github.com/golang/[email protected]/encode.go:39 +0x1f0 fp=0x40007d6dd0 sp=0x40007d6d40 pc=0x669000
github.com/syndtr/goleveldb/leveldb/table.(*Writer).writeBlock(0x400002cd80, 0x400002cdd8, 0x2)
        github.com/syndtr/[email protected]/leveldb/table/writer.go:171 +0x138 fp=0x40007d6e50 sp=0x40007d6dd0 pc=0x6bfdb8
github.com/syndtr/goleveldb/leveldb/table.(*Writer).finishBlock(0x400002cd80)
        github.com/syndtr/[email protected]/leveldb/table/writer.go:222 +0x4c fp=0x40007d6ea0 sp=0x40007d6e50 pc=0x6c01cc
github.com/syndtr/goleveldb/leveldb/table.(*Writer).Append(0x400002cd80, {0x400c33fc73, 0x11, 0x1544038d}, {0x400c33fc84, 0x20, 0x1544037c})
        github.com/syndtr/[email protected]/leveldb/table/writer.go:255 +0x25c fp=0x40007d6f10 sp=0x40007d6ea0 pc=0x6c04ac
github.com/syndtr/goleveldb/leveldb.(*tWriter).append(0x40001c2480, {0x400c33fc73, 0x11, 0x1544038d}, {0x400c33fc84, 0x20, 0x1544037c})
        github.com/syndtr/[email protected]/leveldb/table.go:559 +0x1a8 fp=0x40007d6f80 sp=0x40007d6f10 pc=0x6e5ee8
github.com/syndtr/goleveldb/leveldb.(*tOps).createFrom(0x4000307650, {0x12df1e8, 0x40001a2200})
        github.com/syndtr/[email protected]/leveldb/table.go:397 +0x12c fp=0x40007d7020 sp=0x40007d6f80 pc=0x6e4c9c
github.com/syndtr/goleveldb/leveldb.(*session).flushMemdb(0x4000154870, 0x400056c140, 0x400017a8c0, 0x0)
        github.com/syndtr/[email protected]/leveldb/session_compaction.go:35 +0xb4 fp=0x40007d7180 sp=0x40007d7020 pc=0x6dc2a4
github.com/syndtr/goleveldb/leveldb.(*DB).recoverJournal(0x400002e1c0)
        github.com/syndtr/[email protected]/leveldb/db.go:612 +0xdb8 fp=0x40007d7370 sp=0x40007d7180 pc=0x6c7418
github.com/syndtr/goleveldb/leveldb.openDB(0x4000154870)
        github.com/syndtr/[email protected]/leveldb/db.go:131 +0x3f4 fp=0x40007d7460 sp=0x40007d7370 pc=0x6c41c4
github.com/syndtr/goleveldb/leveldb.Open({0x12dd740, 0x4000272620}, 0x4000315608)
        github.com/syndtr/[email protected]/leveldb/db.go:203 +0x194 fp=0x40007d74d0 sp=0x40007d7460 pc=0x6c4574
github.com/syndtr/goleveldb/leveldb.OpenFile({0x400009ec80, 0x1e}, 0x4000315608)
        github.com/syndtr/[email protected]/leveldb/db.go:225 +0x84 fp=0x40007d7550 sp=0x40007d74d0 pc=0x6c4714
github.com/ethereum/go-ethereum/ethdb/leveldb.New({0x400009ec80, 0x1e}, 0x800, 0x80000, {0x10d3397, 0x11})
        github.com/ethereum/go-ethereum/ethdb/leveldb/leveldb.go:98 +0x29c fp=0x40007d7750 sp=0x40007d7550 pc=0x6ee66c
github.com/ethereum/go-ethereum/core/rawdb.NewLevelDBDatabaseWithFreezer({0x400009ec80, 0x1e}, 0x800, 0x80000, {0x40000af050, 0x26}, {0x10d3397, 0x11})
        github.com/ethereum/go-ethereum/core/rawdb/database.go:229 +0x50 fp=0x40007d77d0 sp=0x40007d7750 pc=0x706710
github.com/ethereum/go-ethereum/node.(*Node).OpenDatabaseWithFreezer(0x4000289110, {0x10ca530, 0x9}, 0x800, 0x80000, {0x0, 0x0}, {0x10d3397, 0x11})
        github.com/ethereum/go-ethereum/node/node.go:580 +0x294 fp=0x40007d78d0 sp=0x40007d77d0 pc=0xb88eb4
github.com/ethereum/go-ethereum/eth.New(0x4000289110, 0x40000d3100)
        github.com/ethereum/go-ethereum/eth/backend.go:118 +0x4a8 fp=0x40007d8e50 sp=0x40007d78d0 pc=0xc049c8
github.com/ethereum/go-ethereum/cmd/utils.RegisterEthService(0x4000289110, 0x40000d3100)
        github.com/ethereum/go-ethereum/cmd/utils/flags.go:1618 +0xc8 fp=0x40007d8eb0 sp=0x40007d8e50 pc=0xcf3138
main.makeFullNode(0x400028a160)
        github.com/ethereum/go-ethereum/cmd/geth/config.go:168 +0x188 fp=0x40007d9b30 sp=0x40007d8eb0 pc=0xe16968
main.geth(0x400028a160)
        github.com/ethereum/go-ethereum/cmd/geth/main.go:337 +0xcc fp=0x40007d9bb0 sp=0x40007d9b30 pc=0xe196dc
gopkg.in/urfave/cli%2ev1.HandleAction({0xf3fa40, 0x117c6c0}, 0x400028a160)
        gopkg.in/urfave/[email protected]/app.go:490 +0x84 fp=0x40007d9be0 sp=0x40007d9bb0 pc=0x9649d4
gopkg.in/urfave/cli%2ev1.(*App).Run(0x4000297380, {0x4000032070, 0x7, 0x7})
        gopkg.in/urfave/[email protected]/app.go:264 +0x538 fp=0x40007d9f10 sp=0x40007d9be0 pc=0x962ed8
main.main()
        github.com/ethereum/go-ethereum/cmd/geth/main.go:269 +0x60 fp=0x40007d9f70 sp=0x40007d9f10 pc=0xe18cc0
runtime.main()
        runtime/proc.go:255 +0x284 fp=0x40007d9fd0 sp=0x40007d9f70 pc=0x452db4
runtime.goexit()
        runtime/asm_arm64.s:1133 +0x4 fp=0x40007d9fd0 sp=0x40007d9fd0 pc=0x486b84

goroutine 8 [chan receive]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0x400017cab0)
        github.com/ethereum/go-ethereum/core/tx_cacher.go:63 +0x44
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        github.com/ethereum/go-ethereum/core/tx_cacher.go:55 +0xac

goroutine 9 [chan receive]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0x400017cab0)
        github.com/ethereum/go-ethereum/core/tx_cacher.go:63 +0x44
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        github.com/ethereum/go-ethereum/core/tx_cacher.go:55 +0xac

goroutine 10 [chan receive]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0x400017cab0)
        github.com/ethereum/go-ethereum/core/tx_cacher.go:63 +0x44
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        github.com/ethereum/go-ethereum/core/tx_cacher.go:55 +0xac

goroutine 11 [chan receive]:
github.com/ethereum/go-ethereum/core.(*txSenderCacher).cache(0x400017cab0)
        github.com/ethereum/go-ethereum/core/tx_cacher.go:63 +0x44
created by github.com/ethereum/go-ethereum/core.newTxSenderCacher
        github.com/ethereum/go-ethereum/core/tx_cacher.go:55 +0xac

goroutine 35 [chan receive]:
github.com/ethereum/go-ethereum/metrics.(*meterArbiter).tick(0x1c44820)
        github.com/ethereum/go-ethereum/metrics/meter.go:290 +0x60
created by github.com/ethereum/go-ethereum/metrics.NewMeterForced
        github.com/ethereum/go-ethereum/metrics/meter.go:71 +0xdc

goroutine 36 [select]:
github.com/ethereum/go-ethereum/consensus/ethash.(*remoteSealer).loop(0x40003f61e0)
        github.com/ethereum/go-ethereum/consensus/ethash/sealer.go:278 +0x154
created by github.com/ethereum/go-ethereum/consensus/ethash.startRemoteSealer
        github.com/ethereum/go-ethereum/consensus/ethash/sealer.go:262 +0x2c8

goroutine 39 [chan receive]:
gopkg.in/natefinch/lumberjack%2ev2.(*Logger).millRun(0x4000188ae0)
        gopkg.in/natefinch/[email protected]/lumberjack.go:379 +0x50
created by gopkg.in/natefinch/lumberjack%2ev2.(*Logger).mill.func1
        gopkg.in/natefinch/[email protected]/lumberjack.go:390 +0x84

goroutine 15 [select]:
github.com/ethereum/go-ethereum/accounts/keystore.(*KeyStore).updater(0x4000154780)
        github.com/ethereum/go-ethereum/accounts/keystore/keystore.go:209 +0x8c
created by github.com/ethereum/go-ethereum/accounts/keystore.(*KeyStore).Subscribe
        github.com/ethereum/go-ethereum/accounts/keystore/keystore.go:196 +0xe4

goroutine 16 [select]:
github.com/ethereum/go-ethereum/accounts.(*Manager).update(0x40002896c0)
        github.com/ethereum/go-ethereum/accounts/manager.go:111 +0x10c
created by github.com/ethereum/go-ethereum/accounts.NewManager
        github.com/ethereum/go-ethereum/accounts/manager.go:79 +0x228

goroutine 66 [select]:
github.com/syndtr/goleveldb/leveldb/util.(*BufferPool).drain(0x400017b0a0)
        github.com/syndtr/[email protected]/leveldb/util/buffer_pool.go:209 +0xa4
created by github.com/syndtr/goleveldb/leveldb/util.NewBufferPool
        github.com/syndtr/[email protected]/leveldb/util/buffer_pool.go:240 +0x164

goroutine 67 [select]:
github.com/syndtr/goleveldb/leveldb.(*session).refLoop(0x4000154870)
        github.com/syndtr/[email protected]/leveldb/session_util.go:189 +0x3b0
created by github.com/syndtr/goleveldb/leveldb.newSession
        github.com/syndtr/[email protected]/leveldb/session.go:93 +0x2b4

Steps to reproduce the behaviour

  1. git clone https://github.com/HuobiGroup/huobi-eco-chain.git
  2. make geth
  3. mv geth to /data/heo
  4. restart geth

dbarobin avatar Aug 28 '21 03:08 dbarobin

Thanks for sharing.

Actually in general case in update should checkout exact tagged version

git checkout tags/<tag> -b <branch>

But as of now, there is still not changes after c0f92a67ac3a03db89d6d886d040d5ae52dd4c52

paulvi avatar Aug 31 '21 09:08 paulvi

@dbarobin Does this issue still happens? It seems relating to the leveldb, did you encountered some similar situation on running go-ethereum node?

Nanyan avatar Sep 16 '21 12:09 Nanyan

@Nanyan Yes, this issue still happen.

I change my server to x86_64 and now works. It seems not compatible with arm machine.

dbarobin avatar Sep 17 '21 10:09 dbarobin