Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gorocksdb core dump on Raspberry Pi 4's BCM2711 processor #137

Closed
jeremyhahn opened this issue Aug 9, 2020 · 17 comments
Closed

gorocksdb core dump on Raspberry Pi 4's BCM2711 processor #137

jeremyhahn opened this issue Aug 9, 2020 · 17 comments

Comments

@jeremyhahn
Copy link

Note: for reported bugs, please fill in the following details. bug reports without detailed steps on how to reproduce will be automatically closed.

Dragonboat version

3.2.2

Expected behavior

gorocksdb writes successfully

Actual behavior

goroutine 0 [idle]:
runtime: unknown pc 0xffb2ac
stack: frame={sp:0x7f9582bbb0, fp:0x0} stack=[0x7f9502c980,0x7f9582c580)
0000007f9582bab0: 0000007f9582bad0 0000007f9582bad0
0000007f9582bac0: 0000000000000000 0000000000000020
0000007f9582bad0: 0000000000000000 0000000000000000
0000007f9582bae0: 0000000000000000 0000000000000000
0000007f9582baf0: 0000000000000001 0000007f8c002797
0000007f9582bb00: 0000000000000005 0000007f9582bb38
0000007f9582bb10: 0000000000556394 <runtime.netpoll+444> 0000007f94ffdbc8
0000007f9582bb20: 0000000100000077 0000000000000000
0000007f9582bb30: 000000400016ea80 0000007f9582c3a8
0000007f9582bb40: 00000000005612e4 <runtime.findrunnable+1804> 0000007f9582bb90
0000007f9582bb50: 0000007f94ffdbc8 00000001000000e9
0000007f9582bb60: 0000000000000001 0000007f9582bb00
0000007f9582bb70: 0000007f00000001 0000000000000001
0000007f9582bb80: 0000000000000000 0000000000000000
0000007f9582bb90: 000000400016ea80 0000000000000000
0000007f9582bba0: 0000000000000000 0000000000000005
0000007f9582bbb0: <0000007f9582bc40 0000000000e7647c
0000007f9582bbc0: 0000007f9582be10 0000000000003c37
0000007f9582bbd0: 0000000000003c37 0000007f7436e740
0000007f9582bbe0: 0000007f8c006e90 0000000000000001
0000007f9582bbf0: 0000000000000007 0000000000000000
0000007f9582bc00: 0000000000000000 00013c3700000000
0000007f9582bc10: 0000000000000000 0000000000000000
0000007f9582bc20: 0000000000000000 0000000000000000
0000007f9582bc30: 0000000000000000 0000000000000000
0000007f9582bc40: 0000007f9582bd00 0000000000e36308
0000007f9582bc50: 0000007f74199e30 0000007f9582be10
0000007f9582bc60: 0000000000000000 00000000159117c0
0000007f9582bc70: 0000007f7419aad0 0000007f7436e740
0000007f9582bc80: 0000000000000001 0000000000000000
0000007f9582bc90: 0000000000000016 0000007f9582be10
0000007f9582bca0: 000000000148ed98 0000007f9582bce8
runtime: unknown pc 0xffb2ac
stack: frame={sp:0x7f9582bbb0, fp:0x0} stack=[0x7f9502c980,0x7f9582c580)
0000007f9582bab0: 0000007f9582bad0 0000007f9582bad0
0000007f9582bac0: 0000000000000000 0000000000000020
0000007f9582bad0: 0000000000000000 0000000000000000
0000007f9582bae0: 0000000000000000 0000000000000000
0000007f9582baf0: 0000000000000001 0000007f8c002797
0000007f9582bb00: 0000000000000005 0000007f9582bb38
0000007f9582bb10: 0000000000556394 <runtime.netpoll+444> 0000007f94ffdbc8
0000007f9582bb20: 0000000100000077 0000000000000000
0000007f9582bb30: 000000400016ea80 0000007f9582c3a8
0000007f9582bb40: 00000000005612e4 <runtime.findrunnable+1804> 0000007f9582bb90
0000007f9582bb50: 0000007f94ffdbc8 00000001000000e9
0000007f9582bb60: 0000000000000001 0000007f9582bb00
0000007f9582bb70: 0000007f00000001 0000000000000001
0000007f9582bb80: 0000000000000000 0000000000000000
0000007f9582bb90: 000000400016ea80 0000000000000000
0000007f9582bba0: 0000000000000000 0000000000000005
0000007f9582bbb0: <0000007f9582bc40 0000000000e7647c
0000007f9582bbc0: 0000007f9582be10 0000000000003c37
0000007f9582bbd0: 0000000000003c37 0000007f7436e740
0000007f9582bbe0: 0000007f8c006e90 0000000000000001
0000007f9582bbf0: 0000000000000007 0000000000000000
0000007f9582bc00: 0000000000000000 00013c3700000000
0000007f9582bc10: 0000000000000000 0000000000000000
0000007f9582bc20: 0000000000000000 0000000000000000
0000007f9582bc30: 0000000000000000 0000000000000000
0000007f9582bc40: 0000007f9582bd00 0000000000e36308
0000007f9582bc50: 0000007f74199e30 0000007f9582be10
0000007f9582bc60: 0000000000000000 00000000159117c0
0000007f9582bc70: 0000007f7419aad0 0000007f7436e740
0000007f9582bc80: 0000000000000001 0000000000000000
0000007f9582bc90: 0000000000000016 0000007f9582be10
0000007f9582bca0: 000000000148ed98 0000007f9582bce8

goroutine 4 [syscall]:
runtime.cgocall(0xdb4da0, 0x4045a54918, 0x40002083f8)
/usr/local/go/src/runtime/cgocall.go:133 +0x50 fp=0x4045a548e0 sp=0x4045a548a0 pc=0x52b7f8
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb._Cfunc_rocksdb_write(0x7f7436e480, 0x7f74229810, 0x159117c0, 0x40002083f8)
_cgo_gotypes.go:4066 +0x40 fp=0x4045a54910 sp=0x4045a548e0 pc=0xa2f088
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write.func1(0x400031cb60, 0x40002082b0, 0x40000bc348, 0x40002083f8)
/home/pi/go/pkg/mod/github.com/lni/dragonboat/[email protected]/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0xf4 fp=0x4045a54960 sp=0x4045a54910 pc=0xa3b4ac
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write(0x400031cb60, 0x40002082b0, 0x40000bc348, 0x0, 0x0)
/home/pi/go/pkg/mod/github.com/lni/dragonboat/[email protected]/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0x60 fp=0x4045a549c0 sp=0x4045a54960 pc=0xa32328
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb.(*KV).CommitWriteBatch(0x4000184bc0, 0x1441a40, 0x40000bc348, 0x100, 0x1441a40)
/home/pi/go/pkg/mod/github.com/lni/dragonboat/[email protected]/internal/logdb/kv/rocksdb/kv_rocksdb.go:323 +0x54 fp=0x4045a54a00 sp=0x4045a549c0 pc=0xa4458c
github.com/lni/dragonboat/v3/internal/logdb.(*rdb).saveRaftState(0x4000200f00, 0x400025a000, 0x1, 0x100, 0x14478e0, 0x4000212100, 0x4045a55068, 0xa6b9e8)
/home/pi/go/pkg/mod/github.com/lni/dragonboat/[email protected]/internal/logdb/rdb.go:206 +0x1ec fp=0x4045a55020 sp=0x4045a54a00 pc=0xa4bef4
github.com/lni/dragonboat/v3/internal/logdb.(*ShardedRDB).SaveRaftState(0x40002d6190, 0x400025a000, 0x1, 0x100, 0x14478e0, 0x4000212100, 0x1, 0x40530ac000)
/home/pi/go/pkg/mod/github.com/lni/dragonboat/[email protected]/internal/logdb/sharded_rdb.go:159 +0x90 fp=0x4045a55070 sp=0x4045a55020 pc=0xa500d8
github.com/lni/dragonboat/v3.(*execEngine).execNodes(0x4000116090, 0x8, 0x400054a240, 0x4045a3b050, 0x400018b860)
/home/pi/go/pkg/mod/github.com/lni/dragonboat/[email protected]/execengine.go:899 +0x53c fp=0x4045a55d90 sp=0x4045a55070 pc=0xa6ba84
github.com/lni/dragonboat/v3.(*execEngine).nodeWorkerMain(0x4000116090, 0x8)
/home/pi/go/pkg/mod/github.com/lni/dragonboat/[email protected]/execengine.go:804 +0x1d0 fp=0x4045a55f20 sp=0x4045a55d90 pc=0xa6b188
github.com/lni/dragonboat/v3.newExecEngine.func1()
/home/pi/go/pkg/mod/github.com/lni/dragonboat/[email protected]/execengine.go:663 +0x30 fp=0x4045a55f40 sp=0x4045a55f20 pc=0xa8c7d8
github.com/lni/goutils/syncutil.(*Stopper).runWorker.func1(0x40002eae80, 0x4000164170, 0x0, 0x0, 0x400020a020)
/home/pi/go/pkg/mod/github.com/lni/[email protected]/syncutil/stopper.go:104 +0x50 fp=0x4045a55fb0 sp=0x4045a55f40 pc=0xa26868
runtime.goexit()
/usr/local/go/src/runtime/asm_arm64.s:1148 +0x4 fp=0x4045a55fb0 sp=0x4045a55fb0 pc=0x5896cc
created by github.com/lni/goutils/syncutil.(*Stopper).runWorker
/home/pi/go/pkg/mod/github.com/lni/[email protected]/syncutil/stopper.go:94 +0x88

Steps to reproduce the behavior

Run on Raspberian 64 bit

@lni
Copy link
Owner

lni commented Aug 9, 2020

As I don't have access to any Raspberry Pi 4, I can't try to reproduce the reported issue on Raspberry Pi 4.

Dragonboat works fine on ARM64, there is a travis-ci target running all tests on ARM64 for each push using pebble as the storage engine. I've also added travis-ci targets to use RocksDB on ARM64 to run all LogDB tests. As you can see from the links below, there is no ARM64 specific issue running Go1.14 + ARM64 + RocksDB with CGO.

https://travis-ci.com/github/lni/dragonboat/builds/179036653
https://travis-ci.com/github/lni/dragonboat/jobs/370108454

The above tests were using Ubuntu 18.04 for ARM64, RocksDB version is 5.8 (default package in Ubuntu 18.04 installed via apt) and Go1.14 for ARM64.

I don't know much about Raspberry Pi, but maybe you can try Ubuntu rather than Raspberian?

@jeremyhahn
Copy link
Author

jeremyhahn commented Aug 11, 2020

Confirmed working on Ubuntu 64-bit (20.04.01 and 18.04) with go 1.14.7 on RPI 4 model B with RocksDB and CGO.

Hopefully it's just an issue with the current beta release. You can try running Raspberian in a virtual machine if you're curious. I use QEMU on Linux with the kernels at https://github.com/dhruvvyas90/qemu-rpi-kernel. I believe VirtualBox will also work https://raspberrytips.com/run-raspberry-in-virtual-machine/. Would be great to have things working on the official OS for the PI.

Thanks!

@lni
Copy link
Owner

lni commented Aug 11, 2020

Great to see it works on Raspberry Pi 4 + 64bit Ubuntu.

@lni lni closed this as completed Aug 11, 2020
@jeremyhahn
Copy link
Author

Root cause follow-up:

TL;DR use librocksdb-dev from OS package repository or github.com/rocksdb/tags/v5.17.2 when building from source.

I wasn't aware of the librocksdb-dev package available in the package repo (thanks for the linked travis job!) so I compiled from rocksdb/master which doesn't appear to be compatible with gorocksdb tecbot/gorocksdb#185

Raspi OS 64bit and Ubuntu ARM64 20.04 both have librocksdb-dev v5.17.2-3 in their repos which work as expected. Once I checked out the v5.17.2 tag and recompiled on Raspi OS the write CGO call worked as expected. I was able to get as far as librocksdb-dev v6.3.6 on Raspi OS (gcc-8) after disabling errors for unused functions CFLAGS="-Wno-unused-function". Any later versions result in the core dump in the initial post.

Ubuntu ARM64 comes with gcc-9 and does not compile librocksdb/tags/v5.17.2 out of the box. To get a successful build, use CFLAGS="-Wno-deprecated-copy -Wno-redundant-move -Wno-pessimizing-move" make static_lib or use gcc-8 and libstdc-8-dev. To compile tags/v6.3.6, CFLAGS="-Wno-unused-function -Wno-deprecated-copy -Wno-redundant-move -Wno-pessimizing-move" make static_lib should do the trick.

Also confirmed working with go1.15.

@jeremyhahn jeremyhahn changed the title gorocksdb core dump on raspberian 64 bit gorocksdb core dump on raspios 64bit Aug 13, 2020
@lni lni reopened this Aug 13, 2020
@lni
Copy link
Owner

lni commented Aug 13, 2020

Thanks for the extra info, it is very useful.

Just a quick question - did you get any chance to try any more recent version of RocksDB (say 6.4.x or 6.5.x) on Ubuntu ARM64? I can confirm that 6.5.x works fine in my AMD64 systems.

@jeremyhahn
Copy link
Author

I did try, versions later than v6.3.6 results in the core dump on both Raspios and Ubuntu ARM64. My AMD64 desktop is able to compile and run the master branch.

@lni
Copy link
Owner

lni commented Aug 14, 2020

Thanks for the information.

I will try Ubuntu ARM64 + the latest RocksDB release on AWS Graviton2 instances this coming weekend to see is there anything I can find.

@lni
Copy link
Owner

lni commented Aug 17, 2020

Interestingly, I didn't get any trouble building/running Dragonboat + RocksDB v6.11.4 on a m6g.xlarge instance (ARM64) from AWS. I used Ubuntu 20.04 ARM64, RocksDB v6.11.4 was built with the default g++-9.3 compiler with its default options. Go 1.15 was used to play with the HEAD of Dragonboat's master branch. Please see logs below.

It seems to me that the problem you experienced is still tools/environment related.

ubuntu@ip-172-31-43-97:~/src/dragonboat$ CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb
ubuntu@ip-172-31-43-97:~/src/dragonboat$ ldd test-logdb.bin
	linux-vdso.so.1 (0x0000ffff8d13c000)
	librocksdb.so.6.11 => /usr/local/lib/librocksdb.so.6.11 (0x0000ffff8cb02000)
	libdl.so.2 => /lib/aarch64-linux-gnu/atomics/libdl.so.2 (0x0000ffff8caee000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/atomics/libpthread.so.0 (0x0000ffff8cabf000)
	libc.so.6 => /lib/aarch64-linux-gnu/atomics/libc.so.6 (0x0000ffff8c950000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffff8d10c000)
	librt.so.1 => /lib/aarch64-linux-gnu/atomics/librt.so.1 (0x0000ffff8c938000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff8c756000)
	libm.so.6 => /lib/aarch64-linux-gnu/atomics/libm.so.6 (0x0000ffff8c6aa000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff8c685000)
ubuntu@ip-172-31-43-97:~/src/dragonboat$ ./test-logdb.bin -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-17 11:09:56.069853 I | logdb: using batched ShardedDB
2020-08-17 11:09:56.071031 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (0.07s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-17 11:09:56.138080 I | logdb: using batched ShardedDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.06s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-17 11:09:56.194472 I | logdb: using batched ShardedDB
2020-08-17 11:09:56.257244 I | logdb: idx 48
2020-08-17 11:09:56.257260 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (0.07s)
=== RUN   TestCachedNodeInfoCanBeSet
--- PASS: TestCachedNodeInfoCanBeSet (0.00s)
=== RUN   TestCachedStateCanBeSet
--- PASS: TestCachedStateCanBeSet (0.00s)
=== RUN   TestLastEntryBatchCanBeSetAndGet
--- PASS: TestLastEntryBatchCanBeSetAndGet (0.00s)
=== RUN   TestLastEntryBatchCanBeUpdated
--- PASS: TestLastEntryBatchCanBeUpdated (0.00s)
=== RUN   TestChangeReturnedLastBatchWillNotAffectTheCache
--- PASS: TestChangeReturnedLastBatchWillNotAffectTheCache (0.00s)
=== RUN   TestMaxIndexCanBeSetAndGet
--- PASS: TestMaxIndexCanBeSetAndGet (0.00s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.00s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.00s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.00s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.00s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.00s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.00s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.00s)
=== RUN   TestRDBContextCanBeCreated
--- PASS: TestRDBContextCanBeCreated (0.00s)
=== RUN   TestRDBContextCaBeDestroyed
--- PASS: TestRDBContextCaBeDestroyed (0.00s)
=== RUN   TestRDBContextCaBeReset
--- PASS: TestRDBContextCaBeReset (0.00s)
=== RUN   TestGetValueBuffer
--- PASS: TestGetValueBuffer (0.00s)
=== RUN   TestGetUpdates
--- PASS: TestGetUpdates (0.00s)
=== RUN   TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap
2020-08-17 11:09:56.267237 I | logdb: using plain ShardedDB
2020-08-17 11:09:56.310778 I | logdb: using batched ShardedDB
--- PASS: TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap (0.09s)
=== RUN   TestBootstrapInfoCanBeSavedAndChecked
2020-08-17 11:09:56.360710 I | logdb: using plain ShardedDB
2020-08-17 11:09:56.426526 I | logdb: using batched ShardedDB
--- PASS: TestBootstrapInfoCanBeSavedAndChecked (0.13s)
=== RUN   TestSnapshotHasMaxIndexSet
2020-08-17 11:09:56.493118 I | logdb: using plain ShardedDB
2020-08-17 11:09:56.558542 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotHasMaxIndexSet (0.13s)
=== RUN   TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic
2020-08-17 11:09:56.625933 I | logdb: using plain ShardedDB
2020-08-17 11:09:56.682254 C | logdb: max index not handled, 5, 4
--- PASS: TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic (0.06s)
=== RUN   TestSnapshotsSavedInSaveRaftState
2020-08-17 11:09:56.687280 I | logdb: using plain ShardedDB
2020-08-17 11:09:56.752640 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotsSavedInSaveRaftState (0.13s)
=== RUN   TestSnapshotOnlyNodeIsHandledByReadRaftState
2020-08-17 11:09:56.812426 I | logdb: using plain ShardedDB
2020-08-17 11:09:56.861809 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotOnlyNodeIsHandledByReadRaftState (0.09s)
=== RUN   TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved
2020-08-17 11:09:56.906250 I | logdb: using plain ShardedDB
2020-08-17 11:09:56.950591 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved (0.09s)
=== RUN   TestMaxIndexRuleIsEnforced
2020-08-17 11:09:56.996579 I | logdb: using plain ShardedDB
2020-08-17 11:09:57.043908 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexRuleIsEnforced (0.10s)
=== RUN   TestSavedEntrieseAreOrderedByTheKey
2020-08-17 11:09:57.102996 I | logdb: using plain ShardedDB
2020-08-17 11:09:57.171918 I | logdb: using batched ShardedDB
--- PASS: TestSavedEntrieseAreOrderedByTheKey (0.12s)
=== RUN   TestSaveRaftState
2020-08-17 11:09:57.221669 I | logdb: using plain ShardedDB
2020-08-17 11:09:57.285699 I | logdb: using batched ShardedDB
--- PASS: TestSaveRaftState (0.12s)
=== RUN   TestStateIsUpdated
2020-08-17 11:09:57.344317 I | logdb: using plain ShardedDB
2020-08-17 11:09:57.403710 I | logdb: using batched ShardedDB
--- PASS: TestStateIsUpdated (0.11s)
=== RUN   TestMaxIndexIsUpdated
2020-08-17 11:09:57.458676 I | logdb: using plain ShardedDB
2020-08-17 11:09:57.505390 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexIsUpdated (0.10s)
=== RUN   TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode
2020-08-17 11:09:57.560303 I | logdb: using plain ShardedDB
2020-08-17 11:09:57.615726 I | logdb: using batched ShardedDB
--- PASS: TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode (0.11s)
=== RUN   TestIterateEntriesOnlyReturnCurrentNodeEntries
2020-08-17 11:09:57.674739 I | logdb: using plain ShardedDB
2020-08-17 11:09:57.732484 I | logdb: using batched ShardedDB
--- PASS: TestIterateEntriesOnlyReturnCurrentNodeEntries (0.12s)
=== RUN   TestIterateEntries
2020-08-17 11:09:57.795045 I | logdb: using plain ShardedDB
2020-08-17 11:09:57.852559 I | logdb: using batched ShardedDB
--- PASS: TestIterateEntries (0.11s)
=== RUN   TestDeleteNotExistSnapshotIsAllowed
2020-08-17 11:09:57.898901 I | logdb: using plain ShardedDB
2020-08-17 11:09:57.957189 I | logdb: using batched ShardedDB
--- PASS: TestDeleteNotExistSnapshotIsAllowed (0.12s)
=== RUN   TestSaveSnapshot
2020-08-17 11:09:58.015578 I | logdb: using plain ShardedDB
2020-08-17 11:09:58.088317 I | logdb: using batched ShardedDB
--- PASS: TestSaveSnapshot (0.15s)
=== RUN   TestParseNodeInfoKeyPanicOnUnexpectedKeySize
--- PASS: TestParseNodeInfoKeyPanicOnUnexpectedKeySize (0.00s)
=== RUN   TestSaveEntriesWithIndexGap
2020-08-17 11:09:58.160623 I | logdb: using plain ShardedDB
2020-08-17 11:09:58.230152 I | logdb: using batched ShardedDB
--- PASS: TestSaveEntriesWithIndexGap (0.13s)
=== RUN   TestRemoveEntriesTo
2020-08-17 11:09:58.296104 I | logdb: using plain ShardedDB
2020-08-17 11:09:58.341067 I | logdb: name: sharded-rocksdb
2020-08-17 11:09:58.371334 I | logdb: count: 1, done
2020-08-17 11:09:58.372154 I | logdb: sz: 0
--- PASS: TestRemoveEntriesTo (0.08s)
=== RUN   TestAllWantedEntriesAreAccessible
2020-08-17 11:09:58.376632 I | logdb: using plain ShardedDB
2020-08-17 11:09:58.448366 I | logdb: using batched ShardedDB
2020-08-17 11:09:58.511743 I | logdb: using plain ShardedDB
2020-08-17 11:09:58.580623 I | logdb: using batched ShardedDB
2020-08-17 11:09:58.641717 I | logdb: using plain ShardedDB
2020-08-17 11:09:58.697707 I | logdb: using batched ShardedDB
2020-08-17 11:09:58.763625 I | logdb: using plain ShardedDB
2020-08-17 11:09:58.829602 I | logdb: using batched ShardedDB
2020-08-17 11:09:58.896191 I | logdb: using plain ShardedDB
2020-08-17 11:09:58.942630 I | logdb: using batched ShardedDB
2020-08-17 11:09:58.989888 I | logdb: using plain ShardedDB
2020-08-17 11:09:59.036239 I | logdb: using batched ShardedDB
2020-08-17 11:09:59.100284 I | logdb: using plain ShardedDB
2020-08-17 11:09:59.162414 I | logdb: using batched ShardedDB
2020-08-17 11:09:59.208149 I | logdb: using plain ShardedDB
2020-08-17 11:09:59.268167 I | logdb: using batched ShardedDB
2020-08-17 11:09:59.329430 I | logdb: using plain ShardedDB
2020-08-17 11:09:59.392193 I | logdb: using batched ShardedDB
2020-08-17 11:09:59.439183 I | logdb: using plain ShardedDB
2020-08-17 11:09:59.484689 I | logdb: using batched ShardedDB
2020-08-17 11:09:59.542351 I | logdb: using plain ShardedDB
2020-08-17 11:09:59.607947 I | logdb: using batched ShardedDB
2020-08-17 11:09:59.672394 I | logdb: using plain ShardedDB
2020-08-17 11:09:59.733874 I | logdb: using batched ShardedDB
2020-08-17 11:09:59.801020 I | logdb: using plain ShardedDB
2020-08-17 11:09:59.847679 I | logdb: using batched ShardedDB
2020-08-17 11:09:59.894853 I | logdb: using plain ShardedDB
2020-08-17 11:09:59.950446 I | logdb: using batched ShardedDB
2020-08-17 11:10:00.016107 I | logdb: using plain ShardedDB
2020-08-17 11:10:00.071727 I | logdb: using batched ShardedDB
2020-08-17 11:10:00.125503 I | logdb: using plain ShardedDB
2020-08-17 11:10:00.180027 I | logdb: using batched ShardedDB
2020-08-17 11:10:00.246580 I | logdb: using plain ShardedDB
2020-08-17 11:10:00.304684 I | logdb: using batched ShardedDB
--- PASS: TestAllWantedEntriesAreAccessible (1.98s)
=== RUN   TestReadRaftStateWithSnapshot
2020-08-17 11:10:00.350922 I | logdb: using plain ShardedDB
2020-08-17 11:10:00.410561 I | logdb: using batched ShardedDB
2020-08-17 11:10:00.467369 I | logdb: using plain ShardedDB
2020-08-17 11:10:00.525989 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateWithSnapshot (0.24s)
=== RUN   TestReadRaftStateWithEntriesOnly
2020-08-17 11:10:00.590766 I | logdb: using plain ShardedDB
2020-08-17 11:10:00.651694 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateWithEntriesOnly (0.12s)
=== RUN   TestRemoveNodeData
2020-08-17 11:10:00.711316 I | logdb: using plain ShardedDB
2020-08-17 11:10:00.764797 I | logdb: RemoveNodeData done
2020-08-17 11:10:00.770402 I | logdb: using batched ShardedDB
2020-08-17 11:10:00.832779 I | logdb: RemoveNodeData done
--- PASS: TestRemoveNodeData (0.13s)
=== RUN   TestImportSnapshot
2020-08-17 11:10:00.838000 I | logdb: using plain ShardedDB
2020-08-17 11:10:00.892755 I | logdb: using batched ShardedDB
--- PASS: TestImportSnapshot (0.10s)
=== RUN   TestEntryKeysOrdered
--- PASS: TestEntryKeysOrdered (0.02s)
=== RUN   TestSnapshotKeysOrdered
--- PASS: TestSnapshotKeysOrdered (0.02s)
=== RUN   TestNodeInfoKeyCanBeParsed
--- PASS: TestNodeInfoKeyCanBeParsed (0.00s)
=== RUN   TestKVCanBeCreatedAndClosed
--- PASS: TestKVCanBeCreatedAndClosed (0.01s)
=== RUN   TestKVGetAndSet
--- PASS: TestKVGetAndSet (0.02s)
=== RUN   TestKVValueCanBeDeleted
--- PASS: TestKVValueCanBeDeleted (0.02s)
=== RUN   TestKVWriteBatch
--- PASS: TestKVWriteBatch (0.01s)
=== RUN   TestKVIterateValue
--- PASS: TestKVIterateValue (0.05s)
=== RUN   TestWriteBatchCanBeCleared
--- PASS: TestWriteBatchCanBeCleared (0.01s)
=== RUN   TestHasEntryRecord
--- PASS: TestHasEntryRecord (0.01s)
=== RUN   TestEntriesCanBeRemovedFromKVStore
--- PASS: TestEntriesCanBeRemovedFromKVStore (0.03s)
=== RUN   TestCompactionReleaseStorageSpace
--- PASS: TestCompactionReleaseStorageSpace (0.32s)
=== RUN   TestTailCorruptionIsIgnored
--- PASS: TestTailCorruptionIsIgnored (0.03s)
=== RUN   TestSSTCorruptionIsHandled
--- PASS: TestSSTCorruptionIsHandled (0.03s)
=== RUN   TestWALCorruptionIsHandled
--- PASS: TestWALCorruptionIsHandled (0.02s)
=== RUN   TestRLLTFindConflict
2020-08-17 11:10:01.547573 I | logdb: using plain ShardedDB
--- PASS: TestRLLTFindConflict (0.05s)
=== RUN   TestRLLTIsUpToDate
2020-08-17 11:10:01.595077 I | logdb: using plain ShardedDB
--- PASS: TestRLLTIsUpToDate (0.05s)
=== RUN   TestRLLTAppend
2020-08-17 11:10:01.646357 I | logdb: using plain ShardedDB
2020-08-17 11:10:01.705233 I | logdb: stable first index: 1
2020-08-17 11:10:01.709263 I | logdb: using plain ShardedDB
2020-08-17 11:10:01.764950 I | logdb: stable first index: 1
2020-08-17 11:10:01.768510 I | logdb: using plain ShardedDB
2020-08-17 11:10:01.820901 I | logdb: stable first index: 1
2020-08-17 11:10:01.825213 I | logdb: using plain ShardedDB
2020-08-17 11:10:01.881481 I | logdb: stable first index: 1
--- PASS: TestRLLTAppend (0.24s)
=== RUN   TestRLLTLogMaybeAppend
2020-08-17 11:10:01.885152 I | logdb: using plain ShardedDB
2020-08-17 11:10:01.940089 I | logdb: using plain ShardedDB
2020-08-17 11:10:01.996236 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.050388 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.108206 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.160653 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.217962 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.281614 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.337087 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.381828 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.437230 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.497513 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.558671 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.618283 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.671701 C | raft: entry 1 conflicts with committed entry, committed 1
2020-08-17 11:10:02.676325 I | logdb: using plain ShardedDB
--- PASS: TestRLLTLogMaybeAppend (0.86s)
=== RUN   TestRLLTHasNextEnts
2020-08-17 11:10:02.750253 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.814350 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.886022 I | logdb: using plain ShardedDB
2020-08-17 11:10:02.939589 I | logdb: using plain ShardedDB
--- PASS: TestRLLTHasNextEnts (0.25s)
=== RUN   TestRLLTNextEnts
2020-08-17 11:10:02.994455 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.057974 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.119030 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.182510 I | logdb: using plain ShardedDB
--- PASS: TestRLLTNextEnts (0.24s)
=== RUN   TestRLLTCompaction
2020-08-17 11:10:03.234721 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.281656 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.350961 I | logdb: using plain ShardedDB
--- PASS: TestRLLTCompaction (0.19s)
=== RUN   TestRLLTLogRestore
2020-08-17 11:10:03.426529 I | logdb: using plain ShardedDB
--- PASS: TestRLLTLogRestore (0.06s)
=== RUN   TestRLLTIsOutOfBounds
2020-08-17 11:10:03.488713 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.549011 C | raft: requested range [201,202) is out of bound [101,200]
2020-08-17 11:10:03.549031 C | raft: requested range [202,202) is out of bound [101,200]
--- PASS: TestRLLTIsOutOfBounds (0.07s)
=== RUN   TestRLLTTerm
2020-08-17 11:10:03.553398 I | logdb: using plain ShardedDB
--- PASS: TestRLLTTerm (0.05s)
=== RUN   TestRLLTSlice
2020-08-17 11:10:03.604361 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.761343 C | raft: requested range [200,201) is out of bound [101,199]
--- PASS: TestRLLTSlice (0.16s)
=== RUN   TestLogReaderEntries
2020-08-17 11:10:03.766835 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.842081 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.909721 I | logdb: using plain ShardedDB
2020-08-17 11:10:03.982769 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.045054 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.103726 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.170151 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.221994 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.271420 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.346366 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderEntries (0.65s)
=== RUN   TestLogReaderTerm
2020-08-17 11:10:04.411993 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.480795 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.550148 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.611526 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.678570 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.743721 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
--- PASS: TestLogReaderTerm (0.34s)
=== RUN   TestLogReaderLastIndex
2020-08-17 11:10:04.749394 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderLastIndex (0.06s)
=== RUN   TestLogReaderFirstIndex
2020-08-17 11:10:04.811728 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderFirstIndex (0.07s)
=== RUN   TestLogReaderAppend
2020-08-17 11:10:04.885542 I | logdb: using plain ShardedDB
2020-08-17 11:10:04.950039 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-17 11:10:04.953515 I | logdb: using plain ShardedDB
2020-08-17 11:10:05.010290 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-17 11:10:05.015866 I | logdb: using plain ShardedDB
2020-08-17 11:10:05.071336 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-17 11:10:05.071361 I | logdb: going to check term for index 6
2020-08-17 11:10:05.071371 I | logdb: Term returned
2020-08-17 11:10:05.077164 I | logdb: using plain ShardedDB
2020-08-17 11:10:05.131177 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-17 11:10:05.135587 I | logdb: using plain ShardedDB
2020-08-17 11:10:05.187985 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-17 11:10:05.192040 I | logdb: using plain ShardedDB
2020-08-17 11:10:05.252741 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-17 11:10:05.252770 I | logdb: going to check term for index 6
2020-08-17 11:10:05.252781 I | logdb: Term returned
--- PASS: TestLogReaderAppend (0.37s)
=== RUN   TestLogReaderApplySnapshot
2020-08-17 11:10:05.257856 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderApplySnapshot (0.05s)
=== RUN   TestLogReaderCreateSnapshot
2020-08-17 11:10:05.307574 I | logdb: using plain ShardedDB
2020-08-17 11:10:05.354459 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderCreateSnapshot (0.11s)
=== RUN   TestLogReaderSetRange
2020-08-17 11:10:05.418679 I | logdb: using plain ShardedDB
2020-08-17 11:10:05.468924 I | logdb: using plain ShardedDB
2020-08-17 11:10:05.523212 I | logdb: using plain ShardedDB
2020-08-17 11:10:05.577592 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderSetRange (0.22s)
=== RUN   TestLogReaderGetSnapshot
2020-08-17 11:10:05.634537 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderGetSnapshot (0.06s)
=== RUN   TestLogReaderInitialState
2020-08-17 11:10:05.690184 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderInitialState (0.05s)
=== RUN   TestLogReaderNewLogReader
--- PASS: TestLogReaderNewLogReader (0.00s)
=== RUN   TestInitialState
--- PASS: TestInitialState (0.00s)
=== RUN   TestApplySnapshotUpdateMarkerIndexTerm
--- PASS: TestApplySnapshotUpdateMarkerIndexTerm (0.00s)
=== RUN   TestLogReaderIndexRange
--- PASS: TestLogReaderIndexRange (0.00s)
=== RUN   TestSetRange
--- PASS: TestSetRange (0.00s)
=== RUN   TestSetRangePanicWhenThereIsIndexHole
--- PASS: TestSetRangePanicWhenThereIsIndexHole (0.00s)
PASS
ubuntu@ip-172-31-43-97:~/src/dragonboat$ g++ --version
g++ (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ubuntu@ip-172-31-43-97:~/src/dragonboat$ go version
go version go1.15 linux/arm64
ubuntu@ip-172-31-43-97:~/src/dragonboat$ uname -a
Linux ip-172-31-43-97 5.4.0-1021-aws #21-Ubuntu SMP Fri Jul 24 09:43:03 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
ubuntu@ip-172-31-43-97:~/src/dragonboat$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"

@jeremyhahn
Copy link
Author

jeremyhahn commented Aug 17, 2020

I'll reserve some time this week to put together a docker container or packer image to reproduce the problem. Also happy to screen share with you.

@lni
Copy link
Owner

lni commented Aug 17, 2020

You may also want to try Ubuntu 20.04 and its default g++-9.3 with the latest RocksDB v6.11.4 to see whether they work on your Raspberry Pi 4.

@jeremyhahn
Copy link
Author

Here is what I get on my RPI 4 running Ubuntu 20.04.1 LTS ARM64.

root@ubuntu:~/sources/rocksdb# git branch
* (HEAD detached at v6.3.6)
  master

root@ubuntu:~/sources/rocksdb# make static_lib
$DEBUG_LEVEL is 0
  GEN      util/build_version.cc
$DEBUG_LEVEL is 0
  GEN      util/build_version.cc
  CC       cache/clock_cache.o
  CC       cache/lru_cache.o
  CC       cache/sharded_cache.o
  CC       db/builder.o
In file included from ./db/memtable.h:21,
                 from ./db/memtable_list.h:17,
                 from ./db/column_family.h:17,
                 from ./db/version_set.h:31,
                 from ./db/compaction/compaction.h:11,
                 from ./db/compaction/compaction_iterator.h:13,
                 from db/builder.cc:16:
./db/version_edit.h: In constructor ‘rocksdb::FdWithKeyRange::FdWithKeyRange(rocksdb::FileDescriptor, rocksdb::Slice, rocksdb::Slice, rocksdb::FileMetaData*)’:
./db/version_edit.h:178:33: error: implicitly-declared ‘constexpr rocksdb::FileDescriptor::FileDescriptor(const rocksdb::FileDescriptor&)’ is deprecated [-Werror=deprecated-copy]
  178 |         largest_key(_largest_key) {}
      |                                 ^
./db/version_edit.h:55:19: note: because ‘rocksdb::FileDescriptor’ has user-provided ‘rocksdb::FileDescriptor& rocksdb::FileDescriptor::operator=(const rocksdb::FileDescriptor&)’
   55 |   FileDescriptor& operator=(const FileDescriptor& fd) {
      |                   ^~~~~~~~
./db/version_edit.h: In instantiation of ‘constexpr std::pair<_T1, _T2>::pair(_U1&&, _U2&&) [with _U1 = int&; _U2 = rocksdb::FileMetaData; typename std::enable_if<(std::_PCC<true, _T1, _T2>::_MoveConstructiblePair<_U1, _U2>() && std::_PCC<true, _T1, _T2>::_ImplicitlyMoveConvertiblePair<_U1, _U2>()), bool>::type <anonymous> = true; _T1 = int; _T2 = rocksdb::FileMetaData]’:
/usr/include/c++/9/ext/new_allocator.h:147:4:   required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::pair<int, rocksdb::FileMetaData>; _Args = {int&, rocksdb::FileMetaData}; _Tp = std::pair<int, rocksdb::FileMetaData>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4:   required from ‘static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = std::pair<int, rocksdb::FileMetaData>; _Args = {int&, rocksdb::FileMetaData}; _Tp = std::pair<int, rocksdb::FileMetaData>; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<std::pair<int, rocksdb::FileMetaData> >]’
/usr/include/c++/9/bits/vector.tcc:115:30:   required from ‘void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {int&, rocksdb::FileMetaData}; _Tp = std::pair<int, rocksdb::FileMetaData>; _Alloc = std::allocator<std::pair<int, rocksdb::FileMetaData> >]’
./db/version_edit.h:253:48:   required from here
./db/version_edit.h:86:8: error: implicitly-declared ‘constexpr rocksdb::FileDescriptor::FileDescriptor(const rocksdb::FileDescriptor&)’ is deprecated [-Werror=deprecated-copy]
   86 | struct FileMetaData {
      |        ^~~~~~~~~~~~
./db/version_edit.h:55:19: note: because ‘rocksdb::FileDescriptor’ has user-provided ‘rocksdb::FileDescriptor& rocksdb::FileDescriptor::operator=(const rocksdb::FileDescriptor&)’
   55 |   FileDescriptor& operator=(const FileDescriptor& fd) {
      |                   ^~~~~~~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
                 from /usr/include/c++/9/bits/char_traits.h:39,
                 from /usr/include/c++/9/string:40,
                 from ./db/builder.h:9,
                 from db/builder.cc:10:
/usr/include/c++/9/bits/stl_pair.h:342:64: note: synthesized method ‘rocksdb::FileMetaData::FileMetaData(rocksdb::FileMetaData&&)’ first required here
  342 |  : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
      |                                                                ^
In file included from ./db/memtable.h:21,
                 from ./db/memtable_list.h:17,
                 from ./db/column_family.h:17,
                 from ./db/version_set.h:31,
                 from ./db/compaction/compaction.h:11,
                 from ./db/compaction/compaction_iterator.h:13,
                 from db/builder.cc:16:
./db/version_edit.h: In instantiation of ‘constexpr std::pair<_T1, _T2>::pair(_U1&&, const _T2&) [with _U1 = int&; typename std::enable_if<std::_PCC<true, _T1, _T2>::_MoveCopyPair<true, _U1, _T2>(), bool>::type <anonymous> = true; _T1 = int; _T2 = rocksdb::FileMetaData]’:
/usr/include/c++/9/ext/new_allocator.h:147:4:   required from ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::pair<int, rocksdb::FileMetaData>; _Args = {int&, const rocksdb::FileMetaData&}; _Tp = std::pair<int, rocksdb::FileMetaData>]’
/usr/include/c++/9/bits/alloc_traits.h:484:4:   required from ‘static void std::allocator_traits<std::allocator<_CharT> >::construct(std::allocator_traits<std::allocator<_CharT> >::allocator_type&, _Up*, _Args&& ...) [with _Up = std::pair<int, rocksdb::FileMetaData>; _Args = {int&, const rocksdb::FileMetaData&}; _Tp = std::pair<int, rocksdb::FileMetaData>; std::allocator_traits<std::allocator<_CharT> >::allocator_type = std::allocator<std::pair<int, rocksdb::FileMetaData> >]’
/usr/include/c++/9/bits/vector.tcc:115:30:   required from ‘void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {int&, const rocksdb::FileMetaData&}; _Tp = std::pair<int, rocksdb::FileMetaData>; _Alloc = std::allocator<std::pair<int, rocksdb::FileMetaData> >]’
./db/version_edit.h:258:37:   required from here
./db/version_edit.h:86:8: error: implicitly-declared ‘constexpr rocksdb::FileDescriptor::FileDescriptor(const rocksdb::FileDescriptor&)’ is deprecated [-Werror=deprecated-copy]
   86 | struct FileMetaData {
      |        ^~~~~~~~~~~~
./db/version_edit.h:55:19: note: because ‘rocksdb::FileDescriptor’ has user-provided ‘rocksdb::FileDescriptor& rocksdb::FileDescriptor::operator=(const rocksdb::FileDescriptor&)’
   55 |   FileDescriptor& operator=(const FileDescriptor& fd) {
      |                   ^~~~~~~~
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
                 from /usr/include/c++/9/bits/char_traits.h:39,
                 from /usr/include/c++/9/string:40,
                 from ./db/builder.h:9,
                 from db/builder.cc:10:
/usr/include/c++/9/bits/stl_pair.h:312:51: note: synthesized method ‘rocksdb::FileMetaData::FileMetaData(const rocksdb::FileMetaData&)’ first required here
  312 |        : first(std::forward<_U1>(__x)), second(__y) { }
      |                                                   ^
cc1plus: all warnings being treated as errors
make: *** [Makefile:1972: db/builder.o] Error 1
root@ubuntu:~/sources/rocksdb# gcc --version
gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
root@ubuntu:~/sources/rocksdb# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal
root@ubuntu:~/sources/rocksdb# cat /proc/cpuinfo 
processor	: 0
BogoMIPS	: 108.00
Features	: fp asimd evtstrm crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3

processor	: 1
BogoMIPS	: 108.00
Features	: fp asimd evtstrm crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3

processor	: 2
BogoMIPS	: 108.00
Features	: fp asimd evtstrm crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3

processor	: 3
BogoMIPS	: 108.00
Features	: fp asimd evtstrm crc32 cpuid
CPU implementer	: 0x41
CPU architecture: 8
CPU variant	: 0x0
CPU part	: 0xd08
CPU revision	: 3

Hardware	: BCM2835
Revision	: c03112
Serial		: 100000004a3d6a0d
Model		: Raspberry Pi 4 Model B Rev 1.2
root@ubuntu:~/sources# uname -a
Linux ubuntu 5.4.0-1015-raspi #15-Ubuntu SMP Fri Jul 10 05:34:24 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

Using the flags mentioned in an earlier post:

root@ubuntu:~/sources/rocksdb# CFLAGS="-Wno-unused-function -Wno-deprecated-copy -Wno-redundant-move -Wno-pessimizing-move" make -j4 static_lib
$DEBUG_LEVEL is 0
  GEN      util/build_version.cc
  CC       db/compaction/compaction_job.o
  CC       db/compaction/compaction_picker.o
  CC       db/compaction/compaction_picker_fifo.o
  CC       db/compaction/compaction_picker_level.o
  CC       db/compaction/compaction_picker_universal.o
  CC       db/convenience.o
  CC       db/db_filesnapshot.o
  CC       db/db_impl/db_impl.o
  CC       db/db_impl/db_impl_compaction_flush.o
  CC       db/db_impl/db_impl_debug.o
  CC       db/db_impl/db_impl_experimental.o
  CC       db/db_impl/db_impl_files.o
  CC       db/db_impl/db_impl_open.o
  CC       db/db_impl/db_impl_readonly.o
  CC       db/db_impl/db_impl_secondary.o
  CC       db/db_impl/db_impl_write.o
  CC       db/db_info_dumper.o
  CC       db/db_iter.o
  CC       db/dbformat.o
  CC       db/error_handler.o
  CC       db/event_helpers.o
  CC       db/experimental.o
  CC       db/external_sst_file_ingestion_job.o
  CC       db/file_indexer.o
  CC       db/flush_job.o
  CC       db/flush_scheduler.o
  CC       db/forward_iterator.o
  CC       db/internal_stats.o
  CC       db/logs_with_prep_tracker.o
  CC       db/log_reader.o
  CC       db/log_writer.o
  CC       db/malloc_stats.o
  CC       db/memtable.o
  CC       db/memtable_list.o
  CC       db/merge_helper.o
  CC       db/merge_operator.o
  CC       db/range_del_aggregator.o
  CC       db/range_tombstone_fragmenter.o
  CC       db/repair.o
  CC       db/snapshot_impl.o
  CC       db/table_cache.o
  CC       db/table_properties_collector.o
  CC       db/transaction_log_impl.o
  CC       db/version_builder.o
  CC       db/version_edit.o
  CC       db/version_set.o
  CC       db/wal_manager.o
  CC       db/write_batch.o
  CC       db/write_batch_base.o
  CC       db/write_controller.o
  CC       db/write_thread.o
  CC       env/env.o
  CC       env/env_chroot.o
  CC       env/env_encryption.o
  CC       env/env_hdfs.o
  CC       env/env_posix.o
  CC       env/io_posix.o
  CC       env/mock_env.o
  CC       file/delete_scheduler.o
  CC       file/file_util.o
  CC       file/filename.o
  CC       file/sst_file_manager_impl.o
  CC       logging/auto_roll_logger.o
  CC       logging/event_logger.o
  CC       logging/log_buffer.o
  CC       memory/arena.o
  CC       memory/concurrent_arena.o
  CC       memory/jemalloc_nodump_allocator.o
  CC       memtable/alloc_tracker.o
  CC       memtable/hash_linklist_rep.o
  CC       memtable/hash_skiplist_rep.o
  CC       memtable/skiplistrep.o
  CC       memtable/vectorrep.o
  CC       memtable/write_buffer_manager.o
  CC       monitoring/histogram.o
  CC       monitoring/histogram_windowing.o
  CC       monitoring/in_memory_stats_history.o
  CC       monitoring/instrumented_mutex.o
  CC       monitoring/iostats_context.o
  CC       monitoring/perf_context.o
  CC       monitoring/perf_level.o
  CC       monitoring/persistent_stats_history.o
  CC       monitoring/statistics.o
  CC       monitoring/thread_status_impl.o
  CC       monitoring/thread_status_updater.o
  CC       monitoring/thread_status_updater_debug.o
  CC       monitoring/thread_status_util.o
  CC       monitoring/thread_status_util_debug.o
  CC       options/cf_options.o
  CC       options/db_options.o
  CC       options/options.o
  CC       options/options_helper.o
  CC       options/options_parser.o
  CC       options/options_sanity_check.o
  CC       port/port_posix.o
  CC       port/stack_trace.o
  CC       table/adaptive/adaptive_table_factory.o
  CC       table/block_based/block.o
  CC       table/block_based/block_based_filter_block.o
  CC       table/block_based/block_based_table_builder.o
  CC       table/block_based/block_based_table_factory.o
  CC       table/block_based/block_based_table_reader.o
  CC       table/block_based/block_builder.o
  CC       table/block_based/block_prefix_index.o
  CC       table/block_based/data_block_hash_index.o
  CC       table/block_based/data_block_footer.o
  CC       table/block_based/flush_block_policy.o
  CC       table/block_based/full_filter_block.o
  CC       table/block_based/index_builder.o
  CC       table/block_based/partitioned_filter_block.o
  CC       table/block_fetcher.o
  CC       table/bloom_block.o
  CC       table/cuckoo/cuckoo_table_builder.o
  CC       table/cuckoo/cuckoo_table_factory.o
  CC       table/cuckoo/cuckoo_table_reader.o
  CC       table/format.o
  CC       table/get_context.o
  CC       table/iterator.o
  CC       table/merging_iterator.o
  CC       table/meta_blocks.o
  CC       table/persistent_cache_helper.o
  CC       table/plain/plain_table_builder.o
  CC       table/plain/plain_table_factory.o
  CC       table/plain/plain_table_index.o
  CC       table/plain/plain_table_key_coding.o
  CC       table/plain/plain_table_reader.o
  CC       table/sst_file_reader.o
  CC       table/sst_file_writer.o
  CC       table/table_properties.o
  CC       table/two_level_iterator.o
  CC       test_util/sync_point.o
  CC       test_util/sync_point_impl.o
  CC       test_util/transaction_test_util.o
  CC       tools/dump/db_dump_tool.o
  CC       trace_replay/trace_replay.o
  CC       trace_replay/block_cache_tracer.o
  CC       util/bloom.o
  CC       util/build_version.o
  CC       util/coding.o
  CC       util/compaction_job_stats_impl.o
  CC       util/comparator.o
  CC       util/compression_context_cache.o
  CC       util/concurrent_task_limiter_impl.o
  CC       util/crc32c.o
  CC       util/dynamic_bloom.o
  CC       util/file_reader_writer.o
  CC       util/filter_policy.o
  CC       util/hash.o
  CC       util/murmurhash.o
  CC       util/random.o
  CC       util/rate_limiter.o
  CC       util/slice.o
  CC       util/status.o
  CC       util/string_util.o
  CC       util/thread_local.o
  CC       util/threadpool_imp.o
  CC       util/xxhash.o
  CC       utilities/backupable/backupable_db.o
  CC       utilities/blob_db/blob_compaction_filter.o
  CC       utilities/blob_db/blob_db.o
  CC       utilities/blob_db/blob_db_impl.o
  CC       utilities/blob_db/blob_db_impl_filesnapshot.o
  CC       utilities/blob_db/blob_file.o
  CC       utilities/blob_db/blob_log_format.o
  CC       utilities/blob_db/blob_log_reader.o
  CC       utilities/blob_db/blob_log_writer.o
  CC       utilities/cassandra/cassandra_compaction_filter.o
  CC       utilities/cassandra/format.o
  CC       utilities/cassandra/merge_operator.o
  CC       utilities/checkpoint/checkpoint_impl.o
  CC       utilities/compaction_filters/remove_emptyvalue_compactionfilter.o
  CC       utilities/convenience/info_log_finder.o
  CC       utilities/debug.o
  CC       utilities/env_mirror.o
  CC       utilities/env_timed.o
  CC       utilities/leveldb_options/leveldb_options.o
  CC       utilities/memory/memory_util.o
  CC       utilities/merge_operators/max.o
  CC       utilities/merge_operators/put.o
  CC       utilities/merge_operators/string_append/stringappend.o
  CC       utilities/merge_operators/string_append/stringappend2.o
  CC       utilities/merge_operators/uint64add.o
  CC       utilities/merge_operators/bytesxor.o
  CC       utilities/option_change_migration/option_change_migration.o
  CC       utilities/options/options_util.o
  CC       utilities/persistent_cache/block_cache_tier.o
  CC       utilities/persistent_cache/block_cache_tier_file.o
  CC       utilities/persistent_cache/block_cache_tier_metadata.o
  CC       utilities/persistent_cache/persistent_cache_tier.o
  CC       utilities/persistent_cache/volatile_tier_impl.o
  CC       utilities/simulator_cache/sim_cache.o
  CC       utilities/table_properties_collectors/compact_on_deletion_collector.o
  CC       utilities/trace/file_trace_reader_writer.o
  CC       utilities/transactions/optimistic_transaction.o
  CC       utilities/transactions/optimistic_transaction_db_impl.o
  CC       utilities/transactions/pessimistic_transaction.o
  CC       utilities/transactions/pessimistic_transaction_db.o
  CC       utilities/transactions/snapshot_checker.o
  CC       utilities/transactions/transaction_base.o
  CC       utilities/transactions/transaction_db_mutex_impl.o
  CC       utilities/transactions/transaction_lock_mgr.o
  CC       utilities/transactions/transaction_util.o
  CC       utilities/transactions/write_prepared_txn.o
  CC       utilities/transactions/write_prepared_txn_db.o
  CC       utilities/transactions/write_unprepared_txn.o
  CC       utilities/transactions/write_unprepared_txn_db.o
  CC       utilities/ttl/db_ttl_impl.o
  CC       utilities/write_batch_with_index/write_batch_with_index.o
  CC       utilities/write_batch_with_index/write_batch_with_index_internal.o
  CC       util/crc32c_arm64.o
  CC       tools/ldb_cmd.o
  CC       tools/ldb_tool.o
  CC       tools/sst_dump_tool.o
  CC       utilities/blob_db/blob_dump_tool.o
  AR       librocksdb.a
ar: creating librocksdb.a

Dragonboat HEAD using librocksdb v6.3.6 and the example you provided:

root@ubuntu:~/sources/dragonboat# CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb
# github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb
/usr/bin/ld: /usr/local/lib/librocksdb.a(db_impl.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:446: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_reader.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_reader.o):/root/sources/rocksdb/./util/compression.h:115: more undefined references to `ZSTD_freeDCtx' follow
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:882: undefined reference to `BZ2_bzDecompressInit'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::ZSTD_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:1265: undefined reference to `ZSTD_decompress_usingDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Snappy_GetUncompressedLength(char const*, unsigned long, unsigned long*)':
/root/sources/rocksdb/./util/compression.h:563: undefined reference to `snappy::GetUncompressedLength(char const*, unsigned long, unsigned long*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Snappy_Uncompress(char const*, unsigned long, char*)':
/root/sources/rocksdb/./util/compression.h:574: undefined reference to `snappy::RawUncompress(char const*, unsigned long, char*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::LZ4_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:1042: undefined reference to `LZ4_createStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1045: undefined reference to `LZ4_setStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1048: undefined reference to `LZ4_decompress_safe_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1051: undefined reference to `LZ4_freeStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1042: undefined reference to `LZ4_createStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1045: undefined reference to `LZ4_setStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1048: undefined reference to `LZ4_decompress_safe_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1051: undefined reference to `LZ4_freeStreamDecode'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Zlib_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*, int)':
/root/sources/rocksdb/./util/compression.h:723: undefined reference to `inflateInit2_'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:749: undefined reference to `inflate'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:781: undefined reference to `inflateEnd'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:731: undefined reference to `inflateSetDictionary'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:897: undefined reference to `BZ2_bzDecompress'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:927: undefined reference to `BZ2_bzDecompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Zlib_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*, int)':
/root/sources/rocksdb/./util/compression.h:773: undefined reference to `inflateEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:919: undefined reference to `BZ2_bzDecompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::BZip2_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:822: undefined reference to `BZ2_bzCompressInit'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4HC_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1103: undefined reference to `LZ4_compressBound'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1114: undefined reference to `LZ4_createStreamHC'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1115: undefined reference to `LZ4_resetStreamHC'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1120: undefined reference to `LZ4_loadDictHC'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1125: undefined reference to `LZ4_compress_HC_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1132: undefined reference to `LZ4_freeStreamHC'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::Snappy_Compress(rocksdb::CompressionInfo const&, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:547: undefined reference to `snappy::MaxCompressedLength(unsigned long)'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:549: undefined reference to `snappy::RawCompress(char const*, unsigned long, char*, unsigned long*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_Compress(rocksdb::CompressionInfo const&, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1195: undefined reference to `ZSTD_compressBound'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1211: undefined reference to `ZSTD_compress_usingCDict'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1217: undefined reference to `ZSTD_compress_usingDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:967: undefined reference to `LZ4_compressBound'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:972: undefined reference to `LZ4_createStream'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:980: undefined reference to `LZ4_compress_fast_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:987: undefined reference to `LZ4_freeStream'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::Zlib_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:642: undefined reference to `deflateInit2_'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:651: undefined reference to `deflateSetDictionary'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:655: undefined reference to `deflateEnd'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:669: undefined reference to `deflate'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:678: undefined reference to `deflateEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::BZip2_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:836: undefined reference to `BZ2_bzCompress'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:845: undefined reference to `BZ2_bzCompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:975: undefined reference to `LZ4_loadDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:307: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:446: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:446: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:307: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::CreateNativeContext(rocksdb::CompressionType)':
/root/sources/rocksdb/./util/compression.h:301: undefined reference to `ZSTD_createCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:307: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:307: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:307: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::CompressionDict(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, rocksdb::CompressionType, int)':
/root/sources/rocksdb/./util/compression.h:181: undefined reference to `ZSTD_createCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_TrainDictionary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long)':
/root/sources/rocksdb/./util/compression.h:1310: undefined reference to `ZDICT_trainFromBuffer'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1313: undefined reference to `ZDICT_isError'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::CreateNativeContext(rocksdb::CompressionType)':
/root/sources/rocksdb/./util/compression.h:301: undefined reference to `ZSTD_createCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:307: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(options_helper.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:446: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:446: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_TrainDictionarySupported()':
/root/sources/rocksdb/./util/compression.h:1292: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:446: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::CreateIfNeeded()':
/root/sources/rocksdb/./util/compression.h:104: undefined reference to `ZSTD_createDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:104: undefined reference to `ZSTD_createDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
collect2: error: ld returned 1 exit status

Dragonboat HEAD using librocksdb v6.3.6 and the example you provided with additional CGO_LDFLAGS:

CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -lz -llz4 -lbz2 -lzstd -lsnappy -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb

root@ubuntu:~/sources/dragonboat# ldd test-logdb.bin
	linux-vdso.so.1 (0x0000ffffa30c9000)
	libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffffa306f000)
	liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffffa3041000)
	libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffffa3020000)
	libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffffa2f7f000)
	libsnappy.so.1 => /lib/aarch64-linux-gnu/libsnappy.so.1 (0x0000ffffa2f66000)
	libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffa2f52000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffa2d70000)
	libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffa2cc5000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffa2c95000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffa2c70000)
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffa2aff000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffffa3099000)


root@ubuntu:~/sources/dragonboat# ./test-logdb.bin -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-18 03:03:29.038557 I | logdb: using batched ShardedDB
2020-08-18 03:03:29.042023 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (0.22s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-18 03:03:29.259358 I | logdb: using batched ShardedDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.22s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-18 03:03:29.491856 I | logdb: using batched ShardedDB
2020-08-18 03:03:29.695180 I | logdb: idx 48
2020-08-18 03:03:29.695266 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (0.24s)
=== RUN   TestCachedNodeInfoCanBeSet
--- PASS: TestCachedNodeInfoCanBeSet (0.00s)
=== RUN   TestCachedStateCanBeSet
--- PASS: TestCachedStateCanBeSet (0.00s)
=== RUN   TestLastEntryBatchCanBeSetAndGet
--- PASS: TestLastEntryBatchCanBeSetAndGet (0.00s)
=== RUN   TestLastEntryBatchCanBeUpdated
--- PASS: TestLastEntryBatchCanBeUpdated (0.00s)
=== RUN   TestChangeReturnedLastBatchWillNotAffectTheCache
--- PASS: TestChangeReturnedLastBatchWillNotAffectTheCache (0.00s)
=== RUN   TestMaxIndexCanBeSetAndGet
--- PASS: TestMaxIndexCanBeSetAndGet (0.00s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.00s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.00s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.00s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.02s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.00s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.01s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.00s)
=== RUN   TestRDBContextCanBeCreated
--- PASS: TestRDBContextCanBeCreated (0.00s)
=== RUN   TestRDBContextCaBeDestroyed
--- PASS: TestRDBContextCaBeDestroyed (0.00s)
=== RUN   TestRDBContextCaBeReset
--- PASS: TestRDBContextCaBeReset (0.00s)
=== RUN   TestGetValueBuffer
--- PASS: TestGetValueBuffer (0.00s)
=== RUN   TestGetUpdates
--- PASS: TestGetUpdates (0.00s)
=== RUN   TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap
2020-08-18 03:03:29.776489 I | logdb: using plain ShardedDB
2020-08-18 03:03:29.979138 I | logdb: using batched ShardedDB
--- PASS: TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap (0.41s)
=== RUN   TestBootstrapInfoCanBeSavedAndChecked
2020-08-18 03:03:30.183452 I | logdb: using plain ShardedDB
2020-08-18 03:03:30.412411 I | logdb: using batched ShardedDB
--- PASS: TestBootstrapInfoCanBeSavedAndChecked (0.45s)
=== RUN   TestSnapshotHasMaxIndexSet
2020-08-18 03:03:30.630890 I | logdb: using plain ShardedDB
2020-08-18 03:03:30.858579 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotHasMaxIndexSet (0.45s)
=== RUN   TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic
2020-08-18 03:03:31.089131 I | logdb: using plain ShardedDB
2020-08-18 03:03:31.278016 C | logdb: max index not handled, 5, 4
--- PASS: TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic (0.23s)
=== RUN   TestSnapshotsSavedInSaveRaftState
2020-08-18 03:03:31.302908 I | logdb: using plain ShardedDB
2020-08-18 03:03:31.513827 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotsSavedInSaveRaftState (0.41s)
=== RUN   TestSnapshotOnlyNodeIsHandledByReadRaftState
2020-08-18 03:03:31.719642 I | logdb: using plain ShardedDB
2020-08-18 03:03:31.934903 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotOnlyNodeIsHandledByReadRaftState (0.43s)
=== RUN   TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved
2020-08-18 03:03:32.148079 I | logdb: using plain ShardedDB
2020-08-18 03:03:32.356391 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved (0.42s)
=== RUN   TestMaxIndexRuleIsEnforced
2020-08-18 03:03:32.574981 I | logdb: using plain ShardedDB
2020-08-18 03:03:32.801793 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexRuleIsEnforced (0.45s)
=== RUN   TestSavedEntrieseAreOrderedByTheKey
2020-08-18 03:03:33.027173 I | logdb: using plain ShardedDB
2020-08-18 03:03:33.256780 I | logdb: using batched ShardedDB
--- PASS: TestSavedEntrieseAreOrderedByTheKey (0.45s)
=== RUN   TestSaveRaftState
2020-08-18 03:03:33.479180 I | logdb: using plain ShardedDB
2020-08-18 03:03:33.692281 I | logdb: using batched ShardedDB
--- PASS: TestSaveRaftState (0.43s)
=== RUN   TestStateIsUpdated
2020-08-18 03:03:33.905137 I | logdb: using plain ShardedDB
2020-08-18 03:03:34.143678 I | logdb: using batched ShardedDB
--- PASS: TestStateIsUpdated (0.48s)
=== RUN   TestMaxIndexIsUpdated
2020-08-18 03:03:34.383491 I | logdb: using plain ShardedDB
2020-08-18 03:03:34.607405 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexIsUpdated (0.45s)
=== RUN   TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode
2020-08-18 03:03:34.839886 I | logdb: using plain ShardedDB
2020-08-18 03:03:35.072256 I | logdb: using batched ShardedDB
--- PASS: TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode (0.47s)
=== RUN   TestIterateEntriesOnlyReturnCurrentNodeEntries
2020-08-18 03:03:35.310096 I | logdb: using plain ShardedDB
2020-08-18 03:03:35.537868 I | logdb: using batched ShardedDB
--- PASS: TestIterateEntriesOnlyReturnCurrentNodeEntries (0.46s)
=== RUN   TestIterateEntries
2020-08-18 03:03:35.769725 I | logdb: using plain ShardedDB
2020-08-18 03:03:35.992389 I | logdb: using batched ShardedDB
--- PASS: TestIterateEntries (0.45s)
=== RUN   TestDeleteNotExistSnapshotIsAllowed
2020-08-18 03:03:36.224335 I | logdb: using plain ShardedDB
2020-08-18 03:03:36.525008 I | logdb: using batched ShardedDB
--- PASS: TestDeleteNotExistSnapshotIsAllowed (0.53s)
=== RUN   TestSaveSnapshot
2020-08-18 03:03:36.750705 I | logdb: using plain ShardedDB
2020-08-18 03:03:36.978580 I | logdb: using batched ShardedDB
--- PASS: TestSaveSnapshot (0.46s)
=== RUN   TestParseNodeInfoKeyPanicOnUnexpectedKeySize
--- PASS: TestParseNodeInfoKeyPanicOnUnexpectedKeySize (0.00s)
=== RUN   TestSaveEntriesWithIndexGap
2020-08-18 03:03:37.212539 I | logdb: using plain ShardedDB
2020-08-18 03:03:37.444108 I | logdb: using batched ShardedDB
--- PASS: TestSaveEntriesWithIndexGap (0.47s)
=== RUN   TestRemoveEntriesTo
2020-08-18 03:03:37.680988 I | logdb: using plain ShardedDB
2020-08-18 03:03:37.871535 I | logdb: name: sharded-rocksdb
2020-08-18 03:03:38.114793 I | logdb: count: 1, done
2020-08-18 03:03:38.120693 I | logdb: sz: 0
--- PASS: TestRemoveEntriesTo (0.46s)
=== RUN   TestAllWantedEntriesAreAccessible
2020-08-18 03:03:38.143585 I | logdb: using plain ShardedDB
2020-08-18 03:03:38.366936 I | logdb: using batched ShardedDB
2020-08-18 03:03:38.596133 I | logdb: using plain ShardedDB
2020-08-18 03:03:38.823420 I | logdb: using batched ShardedDB
2020-08-18 03:03:39.054230 I | logdb: using plain ShardedDB
2020-08-18 03:03:39.459100 I | logdb: using batched ShardedDB
2020-08-18 03:03:39.686664 I | logdb: using plain ShardedDB
2020-08-18 03:03:39.912582 I | logdb: using batched ShardedDB
2020-08-18 03:03:40.159426 I | logdb: using plain ShardedDB
2020-08-18 03:03:40.390207 I | logdb: using batched ShardedDB
2020-08-18 03:03:40.618584 I | logdb: using plain ShardedDB
2020-08-18 03:03:40.855428 I | logdb: using batched ShardedDB
2020-08-18 03:03:41.070670 I | logdb: using plain ShardedDB
2020-08-18 03:03:41.353584 I | logdb: using batched ShardedDB
2020-08-18 03:03:41.582724 I | logdb: using plain ShardedDB
2020-08-18 03:03:41.819640 I | logdb: using batched ShardedDB
2020-08-18 03:03:42.061965 I | logdb: using plain ShardedDB
2020-08-18 03:03:42.287933 I | logdb: using batched ShardedDB
2020-08-18 03:03:42.525347 I | logdb: using plain ShardedDB
2020-08-18 03:03:42.763667 I | logdb: using batched ShardedDB
2020-08-18 03:03:42.988390 I | logdb: using plain ShardedDB
2020-08-18 03:03:43.222259 I | logdb: using batched ShardedDB
2020-08-18 03:03:43.457358 I | logdb: using plain ShardedDB
2020-08-18 03:03:43.687987 I | logdb: using batched ShardedDB
2020-08-18 03:03:43.913315 I | logdb: using plain ShardedDB
2020-08-18 03:03:44.145577 I | logdb: using batched ShardedDB
2020-08-18 03:03:44.391423 I | logdb: using plain ShardedDB
2020-08-18 03:03:44.624618 I | logdb: using batched ShardedDB
2020-08-18 03:03:44.862965 I | logdb: using plain ShardedDB
2020-08-18 03:03:45.089023 I | logdb: using batched ShardedDB
2020-08-18 03:03:45.336714 I | logdb: using plain ShardedDB
2020-08-18 03:03:45.575787 I | logdb: using batched ShardedDB
2020-08-18 03:03:45.818204 I | logdb: using plain ShardedDB
2020-08-18 03:03:46.056582 I | logdb: using batched ShardedDB
--- PASS: TestAllWantedEntriesAreAccessible (8.20s)
=== RUN   TestReadRaftStateWithSnapshot
2020-08-18 03:03:46.342846 I | logdb: using plain ShardedDB
2020-08-18 03:03:46.575525 I | logdb: using batched ShardedDB
2020-08-18 03:03:46.810870 I | logdb: using plain ShardedDB
2020-08-18 03:03:47.048496 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateWithSnapshot (0.93s)
=== RUN   TestReadRaftStateWithEntriesOnly
2020-08-18 03:03:47.270611 I | logdb: using plain ShardedDB
2020-08-18 03:03:47.504056 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateWithEntriesOnly (0.46s)
=== RUN   TestRemoveNodeData
2020-08-18 03:03:47.735707 I | logdb: using plain ShardedDB
2020-08-18 03:03:48.003421 I | logdb: RemoveNodeData done
2020-08-18 03:03:48.039649 I | logdb: using batched ShardedDB
2020-08-18 03:03:48.255676 I | logdb: RemoveNodeData done
--- PASS: TestRemoveNodeData (0.55s)
=== RUN   TestImportSnapshot
2020-08-18 03:03:48.283832 I | logdb: using plain ShardedDB
2020-08-18 03:03:48.519637 I | logdb: using batched ShardedDB
--- PASS: TestImportSnapshot (0.47s)
=== RUN   TestEntryKeysOrdered
--- PASS: TestEntryKeysOrdered (0.07s)
=== RUN   TestSnapshotKeysOrdered
--- PASS: TestSnapshotKeysOrdered (0.08s)
=== RUN   TestNodeInfoKeyCanBeParsed
--- PASS: TestNodeInfoKeyCanBeParsed (0.00s)
=== RUN   TestKVCanBeCreatedAndClosed
--- PASS: TestKVCanBeCreatedAndClosed (0.09s)
=== RUN   TestKVGetAndSet
--- PASS: TestKVGetAndSet (0.06s)
=== RUN   TestKVValueCanBeDeleted
--- PASS: TestKVValueCanBeDeleted (0.07s)
=== RUN   TestKVWriteBatch
--- PASS: TestKVWriteBatch (0.06s)
=== RUN   TestKVIterateValue
--- PASS: TestKVIterateValue (0.20s)
=== RUN   TestWriteBatchCanBeCleared
--- PASS: TestWriteBatchCanBeCleared (0.07s)
=== RUN   TestHasEntryRecord
--- PASS: TestHasEntryRecord (0.06s)
=== RUN   TestEntriesCanBeRemovedFromKVStore
--- PASS: TestEntriesCanBeRemovedFromKVStore (0.11s)
=== RUN   TestCompactionReleaseStorageSpace
--- PASS: TestCompactionReleaseStorageSpace (1.52s)
=== RUN   TestTailCorruptionIsIgnored
--- PASS: TestTailCorruptionIsIgnored (0.10s)
=== RUN   TestSSTCorruptionIsHandled
--- PASS: TestSSTCorruptionIsHandled (0.13s)
=== RUN   TestWALCorruptionIsHandled
--- PASS: TestWALCorruptionIsHandled (0.07s)
=== RUN   TestRLLTFindConflict
2020-08-18 03:03:51.442675 I | logdb: using plain ShardedDB
--- PASS: TestRLLTFindConflict (0.21s)
=== RUN   TestRLLTIsUpToDate
2020-08-18 03:03:51.667670 I | logdb: using plain ShardedDB
--- PASS: TestRLLTIsUpToDate (0.25s)
=== RUN   TestRLLTAppend
2020-08-18 03:03:51.905325 I | logdb: using plain ShardedDB
2020-08-18 03:03:52.102650 I | logdb: stable first index: 1
2020-08-18 03:03:52.128606 I | logdb: using plain ShardedDB
2020-08-18 03:03:52.325458 I | logdb: stable first index: 1
2020-08-18 03:03:52.357963 I | logdb: using plain ShardedDB
2020-08-18 03:03:52.613827 I | logdb: stable first index: 1
2020-08-18 03:03:52.636100 I | logdb: using plain ShardedDB
2020-08-18 03:03:52.847539 I | logdb: stable first index: 1
--- PASS: TestRLLTAppend (0.97s)
=== RUN   TestRLLTLogMaybeAppend
2020-08-18 03:03:53.049291 I | logdb: using plain ShardedDB
2020-08-18 03:03:53.293178 I | logdb: using plain ShardedDB
2020-08-18 03:03:53.519591 I | logdb: using plain ShardedDB
2020-08-18 03:03:53.738264 I | logdb: using plain ShardedDB
2020-08-18 03:03:53.960282 I | logdb: using plain ShardedDB
2020-08-18 03:03:54.175891 I | logdb: using plain ShardedDB
2020-08-18 03:03:54.412830 I | logdb: using plain ShardedDB
2020-08-18 03:03:54.648295 I | logdb: using plain ShardedDB
2020-08-18 03:03:54.885830 I | logdb: using plain ShardedDB
2020-08-18 03:03:55.122931 I | logdb: using plain ShardedDB
2020-08-18 03:03:55.366389 I | logdb: using plain ShardedDB
2020-08-18 03:03:55.591665 I | logdb: using plain ShardedDB
2020-08-18 03:03:55.824544 I | logdb: using plain ShardedDB
2020-08-18 03:03:56.063498 I | logdb: using plain ShardedDB
2020-08-18 03:03:56.268248 C | raft: entry 1 conflicts with committed entry, committed 1
2020-08-18 03:03:56.292047 I | logdb: using plain ShardedDB
--- PASS: TestRLLTLogMaybeAppend (3.65s)
=== RUN   TestRLLTHasNextEnts
2020-08-18 03:03:56.521028 I | logdb: using plain ShardedDB
2020-08-18 03:03:56.749637 I | logdb: using plain ShardedDB
2020-08-18 03:03:56.966723 I | logdb: using plain ShardedDB
2020-08-18 03:03:57.226387 I | logdb: using plain ShardedDB
--- PASS: TestRLLTHasNextEnts (0.90s)
=== RUN   TestRLLTNextEnts
2020-08-18 03:03:57.434072 I | logdb: using plain ShardedDB
2020-08-18 03:03:57.653403 I | logdb: using plain ShardedDB
2020-08-18 03:03:57.860752 I | logdb: using plain ShardedDB
2020-08-18 03:03:58.068216 I | logdb: using plain ShardedDB
--- PASS: TestRLLTNextEnts (0.86s)
=== RUN   TestRLLTCompaction
2020-08-18 03:03:58.285439 I | logdb: using plain ShardedDB
2020-08-18 03:03:58.504502 I | logdb: using plain ShardedDB
2020-08-18 03:03:58.721505 I | logdb: using plain ShardedDB
--- PASS: TestRLLTCompaction (0.68s)
=== RUN   TestRLLTLogRestore
2020-08-18 03:03:58.960241 I | logdb: using plain ShardedDB
--- PASS: TestRLLTLogRestore (0.21s)
=== RUN   TestRLLTIsOutOfBounds
2020-08-18 03:03:59.168943 I | logdb: using plain ShardedDB
2020-08-18 03:03:59.359869 C | raft: requested range [201,202) is out of bound [101,200]
2020-08-18 03:03:59.359967 C | raft: requested range [202,202) is out of bound [101,200]
--- PASS: TestRLLTIsOutOfBounds (0.21s)
=== RUN   TestRLLTTerm
2020-08-18 03:03:59.381552 I | logdb: using plain ShardedDB
--- PASS: TestRLLTTerm (0.21s)
=== RUN   TestRLLTSlice
2020-08-18 03:03:59.594182 I | logdb: using plain ShardedDB
2020-08-18 03:04:00.058557 C | raft: requested range [200,201) is out of bound [101,199]
--- PASS: TestRLLTSlice (0.48s)
=== RUN   TestLogReaderEntries
2020-08-18 03:04:00.081250 I | logdb: using plain ShardedDB
2020-08-18 03:04:00.305210 I | logdb: using plain ShardedDB
2020-08-18 03:04:00.519814 I | logdb: using plain ShardedDB
2020-08-18 03:04:00.781075 I | logdb: using plain ShardedDB
2020-08-18 03:04:01.002291 I | logdb: using plain ShardedDB
2020-08-18 03:04:01.231953 I | logdb: using plain ShardedDB
2020-08-18 03:04:01.452953 I | logdb: using plain ShardedDB
2020-08-18 03:04:01.678671 I | logdb: using plain ShardedDB
2020-08-18 03:04:01.901214 I | logdb: using plain ShardedDB
2020-08-18 03:04:02.179303 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderEntries (2.33s)
=== RUN   TestLogReaderTerm
2020-08-18 03:04:02.410543 I | logdb: using plain ShardedDB
2020-08-18 03:04:02.635462 I | logdb: using plain ShardedDB
2020-08-18 03:04:02.857277 I | logdb: using plain ShardedDB
2020-08-18 03:04:03.078002 I | logdb: using plain ShardedDB
2020-08-18 03:04:03.298878 I | logdb: using plain ShardedDB
2020-08-18 03:04:03.500340 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
--- PASS: TestLogReaderTerm (1.12s)
=== RUN   TestLogReaderLastIndex
2020-08-18 03:04:03.527644 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderLastIndex (0.24s)
=== RUN   TestLogReaderFirstIndex
2020-08-18 03:04:03.770042 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderFirstIndex (0.23s)
=== RUN   TestLogReaderAppend
2020-08-18 03:04:04.005817 I | logdb: using plain ShardedDB
2020-08-18 03:04:04.214067 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-18 03:04:04.236910 I | logdb: using plain ShardedDB
2020-08-18 03:04:04.435623 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-18 03:04:04.457980 I | logdb: using plain ShardedDB
2020-08-18 03:04:04.671190 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-18 03:04:04.671313 I | logdb: going to check term for index 6
2020-08-18 03:04:04.671363 I | logdb: Term returned
2020-08-18 03:04:04.692857 I | logdb: using plain ShardedDB
2020-08-18 03:04:04.915066 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-18 03:04:04.937147 I | logdb: using plain ShardedDB
2020-08-18 03:04:05.150045 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-18 03:04:05.171818 I | logdb: using plain ShardedDB
2020-08-18 03:04:05.383272 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-18 03:04:05.383409 I | logdb: going to check term for index 6
2020-08-18 03:04:05.383460 I | logdb: Term returned
--- PASS: TestLogReaderAppend (1.41s)
=== RUN   TestLogReaderApplySnapshot
2020-08-18 03:04:05.410175 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderApplySnapshot (0.23s)
=== RUN   TestLogReaderCreateSnapshot
2020-08-18 03:04:05.637415 I | logdb: using plain ShardedDB
2020-08-18 03:04:05.851117 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderCreateSnapshot (0.44s)
=== RUN   TestLogReaderSetRange
2020-08-18 03:04:06.074775 I | logdb: using plain ShardedDB
2020-08-18 03:04:06.294397 I | logdb: using plain ShardedDB
2020-08-18 03:04:06.569248 I | logdb: using plain ShardedDB
2020-08-18 03:04:06.967571 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderSetRange (1.11s)
=== RUN   TestLogReaderGetSnapshot
2020-08-18 03:04:07.192216 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderGetSnapshot (0.23s)
=== RUN   TestLogReaderInitialState
2020-08-18 03:04:07.430738 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderInitialState (0.23s)
=== RUN   TestLogReaderNewLogReader
--- PASS: TestLogReaderNewLogReader (0.00s)
=== RUN   TestInitialState
--- PASS: TestInitialState (0.00s)
=== RUN   TestApplySnapshotUpdateMarkerIndexTerm
--- PASS: TestApplySnapshotUpdateMarkerIndexTerm (0.00s)
=== RUN   TestLogReaderIndexRange
--- PASS: TestLogReaderIndexRange (0.00s)
=== RUN   TestSetRange
--- PASS: TestSetRange (0.00s)
=== RUN   TestSetRangePanicWhenThereIsIndexHole
--- PASS: TestSetRangePanicWhenThereIsIndexHole (0.00s)
PASS
root@ubuntu:~/sources/rocksdb# git checkout tags/v6.11.4
Previous HEAD position was d47cdbc18 Bump up version to 6.3.6
HEAD is now at 48bfca38f update HISTORY.md and version.h for 6.11.4

root@ubuntu:~/sources/rocksdb# make clean
.....SNIPPED....

root@ubuntu:~/sources/rocksdb# git clean -f

root@ubuntu:~/sources/rocksdb# make -j4 static_lib
$DEBUG_LEVEL is 0
  GEN      util/build_version.cc
$DEBUG_LEVEL is 0
  GEN      util/build_version.cc
  CC       cache/cache.o
  CC       cache/clock_cache.o
  CC       cache/lru_cache.o
  CC       cache/sharded_cache.o
  CC       db/arena_wrapped_db_iter.o
  CC       db/blob/blob_file_addition.o
  CC       db/blob/blob_file_garbage.o
  CC       db/blob/blob_file_meta.o
  CC       db/blob/blob_log_format.o
  CC       db/blob/blob_log_reader.o
  CC       db/blob/blob_log_writer.o
  CC       db/builder.o
  CC       db/c.o
  CC       db/column_family.o
  CC       db/compacted_db_impl.o
  CC       db/compaction/compaction.o
  CC       db/compaction/compaction_iterator.o
  CC       db/compaction/compaction_job.o
  CC       db/compaction/compaction_picker.o
  CC       db/compaction/compaction_picker_fifo.o
  CC       db/compaction/compaction_picker_level.o
  CC       db/compaction/compaction_picker_universal.o
  CC       db/convenience.o
  CC       db/db_filesnapshot.o
  CC       db/db_impl/db_impl.o
  CC       db/db_impl/db_impl_compaction_flush.o
  CC       db/db_impl/db_impl_debug.o
  CC       db/db_impl/db_impl_experimental.o
  CC       db/db_impl/db_impl_files.o
  CC       db/db_impl/db_impl_open.o
  CC       db/db_impl/db_impl_readonly.o
  CC       db/db_impl/db_impl_secondary.o
  CC       db/db_impl/db_impl_write.o
  CC       db/db_info_dumper.o
  CC       db/db_iter.o
  CC       db/dbformat.o
  CC       db/error_handler.o
  CC       db/event_helpers.o
  CC       db/experimental.o
  CC       db/external_sst_file_ingestion_job.o
  CC       db/file_indexer.o
  CC       db/flush_job.o
  CC       db/flush_scheduler.o
  CC       db/forward_iterator.o
  CC       db/import_column_family_job.o
  CC       db/internal_stats.o
  CC       db/logs_with_prep_tracker.o
  CC       db/log_reader.o
  CC       db/log_writer.o
  CC       db/malloc_stats.o
  CC       db/memtable.o
  CC       db/memtable_list.o
  CC       db/merge_helper.o
  CC       db/merge_operator.o
  CC       db/range_del_aggregator.o
  CC       db/range_tombstone_fragmenter.o
  CC       db/repair.o
  CC       db/snapshot_impl.o
  CC       db/table_cache.o
  CC       db/table_properties_collector.o
  CC       db/transaction_log_impl.o
  CC       db/trim_history_scheduler.o
  CC       db/version_builder.o
  CC       db/version_edit.o
  CC       db/version_edit_handler.o
  CC       db/version_set.o
  CC       db/wal_manager.o
  CC       db/write_batch.o
  CC       db/write_batch_base.o
  CC       db/write_controller.o
  CC       db/write_thread.o
  CC       env/env.o
  CC       env/env_chroot.o
  CC       env/env_encryption.o
  CC       env/env_hdfs.o
  CC       env/env_posix.o
  CC       env/file_system.o
  CC       env/fs_posix.o
  CC       env/io_posix.o
  CC       env/mock_env.o
  CC       file/delete_scheduler.o
  CC       file/file_prefetch_buffer.o
  CC       file/file_util.o
  CC       file/filename.o
  CC       file/random_access_file_reader.o
  CC       file/read_write_util.o
  CC       file/readahead_raf.o
  CC       file/sequence_file_reader.o
  CC       file/sst_file_manager_impl.o
  CC       file/writable_file_writer.o
  CC       logging/auto_roll_logger.o
  CC       logging/event_logger.o
  CC       logging/log_buffer.o
  CC       memory/arena.o
  CC       memory/concurrent_arena.o
  CC       memory/jemalloc_nodump_allocator.o
  CC       memory/memkind_kmem_allocator.o
  CC       memtable/alloc_tracker.o
  CC       memtable/hash_linklist_rep.o
  CC       memtable/hash_skiplist_rep.o
  CC       memtable/skiplistrep.o
  CC       memtable/vectorrep.o
  CC       memtable/write_buffer_manager.o
  CC       monitoring/histogram.o
  CC       monitoring/histogram_windowing.o
  CC       monitoring/in_memory_stats_history.o
  CC       monitoring/instrumented_mutex.o
  CC       monitoring/iostats_context.o
  CC       monitoring/perf_context.o
  CC       monitoring/perf_level.o
  CC       monitoring/persistent_stats_history.o
  CC       monitoring/statistics.o
  CC       monitoring/thread_status_impl.o
  CC       monitoring/thread_status_updater.o
  CC       monitoring/thread_status_updater_debug.o
  CC       monitoring/thread_status_util.o
  CC       monitoring/thread_status_util_debug.o
  CC       options/cf_options.o
  CC       options/db_options.o
  CC       options/options.o
  CC       options/options_helper.o
  CC       options/options_parser.o
  CC       port/port_posix.o
  CC       port/stack_trace.o
  CC       table/adaptive/adaptive_table_factory.o
  CC       table/block_based/binary_search_index_reader.o
  CC       table/block_based/block.o
  CC       table/block_based/block_based_filter_block.o
  CC       table/block_based/block_based_table_builder.o
  CC       table/block_based/block_based_table_factory.o
  CC       table/block_based/block_based_table_iterator.o
  CC       table/block_based/block_based_table_reader.o
  CC       table/block_based/block_builder.o
  CC       table/block_based/block_prefetcher.o
  CC       table/block_based/block_prefix_index.o
  CC       table/block_based/data_block_hash_index.o
  CC       table/block_based/data_block_footer.o
  CC       table/block_based/filter_block_reader_common.o
  CC       table/block_based/filter_policy.o
  CC       table/block_based/flush_block_policy.o
  CC       table/block_based/full_filter_block.o
  CC       table/block_based/hash_index_reader.o
  CC       table/block_based/index_builder.o
  CC       table/block_based/index_reader_common.o
  CC       table/block_based/parsed_full_filter_block.o
  CC       table/block_based/partitioned_filter_block.o
  CC       table/block_based/partitioned_index_iterator.o
  CC       table/block_based/partitioned_index_reader.o
  CC       table/block_based/reader_common.o
  CC       table/block_based/uncompression_dict_reader.o
  CC       table/block_fetcher.o
  CC       table/cuckoo/cuckoo_table_builder.o
  CC       table/cuckoo/cuckoo_table_factory.o
  CC       table/cuckoo/cuckoo_table_reader.o
  CC       table/format.o
  CC       table/get_context.o
  CC       table/iterator.o
  CC       table/merging_iterator.o
  CC       table/meta_blocks.o
  CC       table/persistent_cache_helper.o
  CC       table/plain/plain_table_bloom.o
  CC       table/plain/plain_table_builder.o
  CC       table/plain/plain_table_factory.o
  CC       table/plain/plain_table_index.o
  CC       table/plain/plain_table_key_coding.o
  CC       table/plain/plain_table_reader.o
  CC       table/sst_file_reader.o
  CC       table/sst_file_writer.o
  CC       table/table_properties.o
  CC       table/two_level_iterator.o
  CC       test_util/sync_point.o
  CC       test_util/sync_point_impl.o
  CC       test_util/transaction_test_util.o
  CC       tools/dump/db_dump_tool.o
  CC       trace_replay/trace_replay.o
  CC       trace_replay/block_cache_tracer.o
  CC       util/build_version.o
  CC       util/coding.o
  CC       util/compaction_job_stats_impl.o
  CC       util/comparator.o
  CC       util/compression_context_cache.o
  CC       util/concurrent_task_limiter_impl.o
  CC       util/crc32c.o
  CC       util/dynamic_bloom.o
  CC       util/hash.o
  CC       util/murmurhash.o
  CC       util/random.o
  CC       util/rate_limiter.o
  CC       util/slice.o
  CC       util/file_checksum_helper.o
  CC       util/status.o
  CC       util/string_util.o
  CC       util/thread_local.o
  CC       util/threadpool_imp.o
  CC       util/xxhash.o
  CC       utilities/backupable/backupable_db.o
  CC       utilities/blob_db/blob_compaction_filter.o
  CC       utilities/blob_db/blob_db.o
  CC       utilities/blob_db/blob_db_impl.o
  CC       utilities/blob_db/blob_db_impl_filesnapshot.o
  CC       utilities/blob_db/blob_file.o
  CC       utilities/cassandra/cassandra_compaction_filter.o
  CC       utilities/cassandra/format.o
  CC       utilities/cassandra/merge_operator.o
  CC       utilities/checkpoint/checkpoint_impl.o
  CC       utilities/compaction_filters/remove_emptyvalue_compactionfilter.o
  CC       utilities/convenience/info_log_finder.o
  CC       utilities/debug.o
  CC       utilities/env_mirror.o
  CC       utilities/env_timed.o
  CC       utilities/leveldb_options/leveldb_options.o
  CC       utilities/memory/memory_util.o
  CC       utilities/merge_operators/max.o
  CC       utilities/merge_operators/put.o
  CC       utilities/merge_operators/sortlist.o
  CC       utilities/merge_operators/string_append/stringappend.o
  CC       utilities/merge_operators/string_append/stringappend2.o
  CC       utilities/merge_operators/uint64add.o
  CC       utilities/merge_operators/bytesxor.o
  CC       utilities/object_registry.o
  CC       utilities/option_change_migration/option_change_migration.o
  CC       utilities/options/options_util.o
  CC       utilities/persistent_cache/block_cache_tier.o
  CC       utilities/persistent_cache/block_cache_tier_file.o
  CC       utilities/persistent_cache/block_cache_tier_metadata.o
  CC       utilities/persistent_cache/persistent_cache_tier.o
  CC       utilities/persistent_cache/volatile_tier_impl.o
  CC       utilities/simulator_cache/cache_simulator.o
  CC       utilities/simulator_cache/sim_cache.o
  CC       utilities/table_properties_collectors/compact_on_deletion_collector.o
  CC       utilities/trace/file_trace_reader_writer.o
  CC       utilities/transactions/optimistic_transaction.o
  CC       utilities/transactions/optimistic_transaction_db_impl.o
  CC       utilities/transactions/pessimistic_transaction.o
  CC       utilities/transactions/pessimistic_transaction_db.o
  CC       utilities/transactions/snapshot_checker.o
  CC       utilities/transactions/transaction_base.o
  CC       utilities/transactions/transaction_db_mutex_impl.o
  CC       utilities/transactions/transaction_lock_mgr.o
  CC       utilities/transactions/transaction_util.o
  CC       utilities/transactions/write_prepared_txn.o
  CC       utilities/transactions/write_prepared_txn_db.o
  CC       utilities/transactions/write_unprepared_txn.o
  CC       utilities/transactions/write_unprepared_txn_db.o
  CC       utilities/ttl/db_ttl_impl.o
  CC       utilities/write_batch_with_index/write_batch_with_index.o
  CC       utilities/write_batch_with_index/write_batch_with_index_internal.o
  CC       util/crc32c_arm64.o
  CC       tools/ldb_cmd.o
  CC       tools/ldb_tool.o
  CC       tools/sst_dump_tool.o
  CC       utilities/blob_db/blob_dump_tool.o
  AR       librocksdb.a
ar: creating librocksdb.a


root@ubuntu:~/sources/rocksdb# make install
$DEBUG_LEVEL is 0
  GEN      util/build_version.cc
install -d /usr/local/lib
for header_dir in `find "include/rocksdb" -type d`; do \
	install -d /usr/local/$header_dir; \
done
for header in `find "include/rocksdb" -type f -name *.h`; do \
	install -C -m 644 $header /usr/local/$header; \
done
install -C -m 755 librocksdb.a /usr/local/lib
[ -e librocksdb.so.6.11.4 ] && make install-shared || :

Dragonboat HEAD using librocksdb v6.11.4 and the example you provided:

CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb
# github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_reader.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_reader.o):/root/sources/rocksdb/./util/compression.h:115: more undefined references to `ZSTD_freeDCtx' follow
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:940: undefined reference to `BZ2_bzDecompressInit'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::ZSTD_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:1321: undefined reference to `ZSTD_decompress_usingDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Snappy_GetUncompressedLength(char const*, unsigned long, unsigned long*)':
/root/sources/rocksdb/./util/compression.h:621: undefined reference to `snappy::GetUncompressedLength(char const*, unsigned long, unsigned long*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Snappy_Uncompress(char const*, unsigned long, char*)':
/root/sources/rocksdb/./util/compression.h:632: undefined reference to `snappy::RawUncompress(char const*, unsigned long, char*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::LZ4_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:1099: undefined reference to `LZ4_createStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1102: undefined reference to `LZ4_setStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1105: undefined reference to `LZ4_decompress_safe_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1108: undefined reference to `LZ4_freeStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1099: undefined reference to `LZ4_createStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1102: undefined reference to `LZ4_setStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1105: undefined reference to `LZ4_decompress_safe_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1108: undefined reference to `LZ4_freeStreamDecode'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Zlib_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*, int)':
/root/sources/rocksdb/./util/compression.h:781: undefined reference to `inflateInit2_'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:807: undefined reference to `inflate'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:839: undefined reference to `inflateEnd'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:789: undefined reference to `inflateSetDictionary'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:955: undefined reference to `BZ2_bzDecompress'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:985: undefined reference to `BZ2_bzDecompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Zlib_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*, int)':
/root/sources/rocksdb/./util/compression.h:831: undefined reference to `inflateEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:977: undefined reference to `BZ2_bzDecompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::BZip2_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:880: undefined reference to `BZ2_bzCompressInit'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4HC_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1159: undefined reference to `LZ4_compressBound'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1170: undefined reference to `LZ4_createStreamHC'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1171: undefined reference to `LZ4_resetStreamHC'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1176: undefined reference to `LZ4_loadDictHC'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1181: undefined reference to `LZ4_compress_HC_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1188: undefined reference to `LZ4_freeStreamHC'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::Snappy_Compress(rocksdb::CompressionInfo const&, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:605: undefined reference to `snappy::MaxCompressedLength(unsigned long)'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:607: undefined reference to `snappy::RawCompress(char const*, unsigned long, char*, unsigned long*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_Compress(rocksdb::CompressionInfo const&, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1251: undefined reference to `ZSTD_compressBound'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1267: undefined reference to `ZSTD_compress_usingCDict'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1273: undefined reference to `ZSTD_compress_usingDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1025: undefined reference to `LZ4_compressBound'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1030: undefined reference to `LZ4_createStream'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1038: undefined reference to `LZ4_compress_fast_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1045: undefined reference to `LZ4_freeStream'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::Zlib_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:700: undefined reference to `deflateInit2_'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:709: undefined reference to `deflateSetDictionary'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:713: undefined reference to `deflateEnd'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:727: undefined reference to `deflate'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:736: undefined reference to `deflateEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::BZip2_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:894: undefined reference to `BZ2_bzCompress'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:903: undefined reference to `BZ2_bzCompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1033: undefined reference to `LZ4_loadDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::CreateNativeContext(rocksdb::CompressionType)':
/root/sources/rocksdb/./util/compression.h:361: undefined reference to `ZSTD_createCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::CompressionDict(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, rocksdb::CompressionType, int)':
/root/sources/rocksdb/./util/compression.h:181: undefined reference to `ZSTD_createCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_TrainDictionary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long)':
/root/sources/rocksdb/./util/compression.h:1366: undefined reference to `ZDICT_trainFromBuffer'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1369: undefined reference to `ZDICT_isError'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::CreateNativeContext(rocksdb::CompressionType)':
/root/sources/rocksdb/./util/compression.h:361: undefined reference to `ZSTD_createCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(db_impl.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(options_helper.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_TrainDictionarySupported()':
/root/sources/rocksdb/./util/compression.h:1348: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::CreateIfNeeded()':
/root/sources/rocksdb/./util/compression.h:104: undefined reference to `ZSTD_createDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:104: undefined reference to `ZSTD_createDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
collect2: error: ld returned 1 exit status

Dragonboat HEAD using librocksdb v6.11.4 and the example you provided with additional CGO_LDFLAGS:

CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -lz -llz4 -lbz2 -lzstd -lsnappy -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb

root@ubuntu:~/sources/dragonboat# ldd test-logdb.bin
	linux-vdso.so.1 (0x0000ffff97767000)
	libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff9770d000)
	liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffff976df000)
	libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffff976be000)
	libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffff9761d000)
	libsnappy.so.1 => /lib/aarch64-linux-gnu/libsnappy.so.1 (0x0000ffff97604000)
	libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffff975f0000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff9740e000)
	libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff97363000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff97333000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff9730e000)
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff9719d000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffff97737000)

root@ubuntu:~/sources/dragonboat# ./test-logdb.bin -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-18 03:59:17.401008 I | logdb: using batched ShardedDB
2020-08-18 03:59:17.404671 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (0.21s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-18 03:59:17.613704 I | logdb: using batched ShardedDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.22s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-18 03:59:17.836602 I | logdb: using batched ShardedDB
2020-08-18 03:59:18.018063 I | logdb: idx 48
2020-08-18 03:59:18.018136 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (0.21s)
=== RUN   TestCachedNodeInfoCanBeSet
--- PASS: TestCachedNodeInfoCanBeSet (0.00s)
=== RUN   TestCachedStateCanBeSet
--- PASS: TestCachedStateCanBeSet (0.00s)
=== RUN   TestLastEntryBatchCanBeSetAndGet
--- PASS: TestLastEntryBatchCanBeSetAndGet (0.00s)
=== RUN   TestLastEntryBatchCanBeUpdated
--- PASS: TestLastEntryBatchCanBeUpdated (0.00s)
=== RUN   TestChangeReturnedLastBatchWillNotAffectTheCache
--- PASS: TestChangeReturnedLastBatchWillNotAffectTheCache (0.00s)
=== RUN   TestMaxIndexCanBeSetAndGet
--- PASS: TestMaxIndexCanBeSetAndGet (0.00s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.01s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.00s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.00s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.00s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.02s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.00s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.00s)
=== RUN   TestRDBContextCanBeCreated
--- PASS: TestRDBContextCanBeCreated (0.00s)
=== RUN   TestRDBContextCaBeDestroyed
--- PASS: TestRDBContextCaBeDestroyed (0.00s)
=== RUN   TestRDBContextCaBeReset
--- PASS: TestRDBContextCaBeReset (0.00s)
=== RUN   TestGetValueBuffer
--- PASS: TestGetValueBuffer (0.00s)
=== RUN   TestGetUpdates
--- PASS: TestGetUpdates (0.00s)
=== RUN   TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap
2020-08-18 03:59:18.092735 I | logdb: using plain ShardedDB
2020-08-18 03:59:18.338390 I | logdb: using batched ShardedDB
--- PASS: TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap (0.44s)
=== RUN   TestBootstrapInfoCanBeSavedAndChecked
2020-08-18 03:59:18.535518 I | logdb: using plain ShardedDB
2020-08-18 03:59:18.752829 I | logdb: using batched ShardedDB
--- PASS: TestBootstrapInfoCanBeSavedAndChecked (0.43s)
=== RUN   TestSnapshotHasMaxIndexSet
2020-08-18 03:59:18.961688 I | logdb: using plain ShardedDB
2020-08-18 03:59:19.169594 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotHasMaxIndexSet (0.42s)
=== RUN   TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic
2020-08-18 03:59:19.384257 I | logdb: using plain ShardedDB
2020-08-18 03:59:19.549157 C | logdb: max index not handled, 5, 4
--- PASS: TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic (0.19s)
=== RUN   TestSnapshotsSavedInSaveRaftState
2020-08-18 03:59:19.573984 I | logdb: using plain ShardedDB
2020-08-18 03:59:19.775279 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotsSavedInSaveRaftState (0.40s)
=== RUN   TestSnapshotOnlyNodeIsHandledByReadRaftState
2020-08-18 03:59:19.979476 I | logdb: using plain ShardedDB
2020-08-18 03:59:20.188135 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotOnlyNodeIsHandledByReadRaftState (0.42s)
=== RUN   TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved
2020-08-18 03:59:20.388865 I | logdb: using plain ShardedDB
2020-08-18 03:59:20.589660 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved (0.40s)
=== RUN   TestMaxIndexRuleIsEnforced
2020-08-18 03:59:20.794720 I | logdb: using plain ShardedDB
2020-08-18 03:59:21.003870 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexRuleIsEnforced (0.43s)
=== RUN   TestSavedEntrieseAreOrderedByTheKey
2020-08-18 03:59:21.221136 I | logdb: using plain ShardedDB
SIGILL: illegal instruction
PC=0xc5c664 m=0 sigcode=1
instruction bytes: 0x42 0xe0 0xe1 0xe 0x21 0x0 0x10 0x91 0x29 0x80 0x5e 0xf8 0x0 0x5c 0xca 0x9a

goroutine 0 [idle]:
runtime: unknown pc 0xc5c664
stack: frame={sp:0xffffc78af9a0, fp:0x0} stack=[0xffffc70b13b8,0xffffc78b03e0)
0000ffffc78af8a0:  0000000000000000  0000000000000000 
0000ffffc78af8b0:  0000000000000000  0000000000000000 
0000ffffc78af8c0:  0000000000000000  0000000000000000 
0000ffffc78af8d0:  0000000000000000  0000000000000000 
0000ffffc78af8e0:  0000000000000000  0000ffffc78af8a8 
0000ffffc78af8f0:  0000000000000000  0000000000000000 
0000ffffc78af900:  0000000000000000  0000000000000000 
0000ffffc78af910:  0000000000000000  0000000000000000 
0000ffffc78af920:  0000000000000000  0000ffffc78af8e8 
0000ffffc78af930:  0000000000000000  0000000000000000 
0000ffffc78af940:  0000000000000000  0000000000000000 
0000ffffc78af950:  0000000001000000  3231360000000002 
0000ffffc78af960:  4000000000000000  0000000029d22340 
0000ffffc78af970:  0000000029d2235c  0000000029d2235c 
0000ffffc78af980:  0000000000000000  0000001000000000 
0000ffffc78af990:  0000004000000000  0000000100a60300 
0000ffffc78af9a0: <0000ffffc78afa30  0000000000ac5470 
0000ffffc78af9b0:  0000ffffc78afc18  000000000000bfc9 
0000ffffc78af9c0:  0000000029d1eb40  0000000000007ff9 
0000ffffc78af9d0:  0000000029d90ca0  0000000000000001 
0000ffffc78af9e0:  0000000000000007  0000000000000007 
0000ffffc78af9f0:  0000000000000000  0000000000000000 
0000ffffc78afa00:  0000000000000000  fffffffffffffffe 
0000ffffc78afa10:  fffffffffffffffe  00027ff900000000 
0000ffffc78afa20:  0000000065757274  2a2f432f63b3c300 
0000ffffc78afa30:  0000ffffc78afaf0  0000000000a86c58 
0000ffffc78afa40:  0000000029ce42c0  0000ffffc78afc18 
0000ffffc78afa50:  00000000012ec000  0000000000000000 
0000ffffc78afa60:  0000000029d1eb40  0000000029ce4f30 
0000ffffc78afa70:  0000000029d1eb40  0000000000000001 
0000ffffc78afa80:  0000000000000000  0000ffffc78afc18 
0000ffffc78afa90:  0000000000f132c8  0000ffffc78afad0 
runtime: unknown pc 0xc5c664
stack: frame={sp:0xffffc78af9a0, fp:0x0} stack=[0xffffc70b13b8,0xffffc78b03e0)
0000ffffc78af8a0:  0000000000000000  0000000000000000 
0000ffffc78af8b0:  0000000000000000  0000000000000000 
0000ffffc78af8c0:  0000000000000000  0000000000000000 
0000ffffc78af8d0:  0000000000000000  0000000000000000 
0000ffffc78af8e0:  0000000000000000  0000ffffc78af8a8 
0000ffffc78af8f0:  0000000000000000  0000000000000000 
0000ffffc78af900:  0000000000000000  0000000000000000 
0000ffffc78af910:  0000000000000000  0000000000000000 
0000ffffc78af920:  0000000000000000  0000ffffc78af8e8 
0000ffffc78af930:  0000000000000000  0000000000000000 
0000ffffc78af940:  0000000000000000  0000000000000000 
0000ffffc78af950:  0000000001000000  3231360000000002 
0000ffffc78af960:  4000000000000000  0000000029d22340 
0000ffffc78af970:  0000000029d2235c  0000000029d2235c 
0000ffffc78af980:  0000000000000000  0000001000000000 
0000ffffc78af990:  0000004000000000  0000000100a60300 
0000ffffc78af9a0: <0000ffffc78afa30  0000000000ac5470 
0000ffffc78af9b0:  0000ffffc78afc18  000000000000bfc9 
0000ffffc78af9c0:  0000000029d1eb40  0000000000007ff9 
0000ffffc78af9d0:  0000000029d90ca0  0000000000000001 
0000ffffc78af9e0:  0000000000000007  0000000000000007 
0000ffffc78af9f0:  0000000000000000  0000000000000000 
0000ffffc78afa00:  0000000000000000  fffffffffffffffe 
0000ffffc78afa10:  fffffffffffffffe  00027ff900000000 
0000ffffc78afa20:  0000000065757274  2a2f432f63b3c300 
0000ffffc78afa30:  0000ffffc78afaf0  0000000000a86c58 
0000ffffc78afa40:  0000000029ce42c0  0000ffffc78afc18 
0000ffffc78afa50:  00000000012ec000  0000000000000000 
0000ffffc78afa60:  0000000029d1eb40  0000000029ce4f30 
0000ffffc78afa70:  0000000029d1eb40  0000000000000001 
0000ffffc78afa80:  0000000000000000  0000ffffc78afc18 
0000ffffc78afa90:  0000000000f132c8  0000ffffc78afad0 

goroutine 89 [syscall]:
runtime.cgocall(0x9f0920, 0x4000129318, 0x400060c028)
	/usr/local/go/src/runtime/cgocall.go:133 +0x50 fp=0x40001292e0 sp=0x40001292a0 pc=0x50ffe0
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb._Cfunc_rocksdb_write(0x29dd3910, 0x29dd38f0, 0x29d77890, 0x400060c028)
	_cgo_gotypes.go:4070 +0x40 fp=0x4000129310 sp=0x40001292e0 pc=0x99d8e0
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write.func1(0x40001a6000, 0x400060c008, 0x400060c020, 0x400060c028)
	/root/sources/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0xec fp=0x4000129360 sp=0x4000129310 pc=0x9a98ac
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write(0x40001a6000, 0x400060c008, 0x400060c020, 0x0, 0x0)
	/root/sources/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0x60 fp=0x40001293c0 sp=0x4000129360 pc=0x9a0720
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb.(*KV).CommitWriteBatch(0x400016a000, 0xefd1e0, 0x400060c020, 0x1, 0xefd1e0)
	/root/sources/dragonboat/internal/logdb/kv/rocksdb/kv_rocksdb.go:329 +0x50 fp=0x4000129400 sp=0x40001293c0 pc=0x9b2f00
github.com/lni/dragonboat/v3/internal/logdb.(*db).saveRaftState(0x400009c120, 0x4000150540, 0x1, 0x1, 0xeffc40, 0x4000092080, 0x4000129a58, 0x9dfed8)
	/root/sources/dragonboat/internal/logdb/db.go:206 +0x1ec fp=0x4000129a10 sp=0x4000129400 pc=0x9bd1ec
github.com/lni/dragonboat/v3/internal/logdb.(*ShardedDB).SaveRaftState(0x4000392050, 0x4000150540, 0x1, 0x1, 0xeffc40, 0x4000092080, 0x266, 0x4cc)
	/root/sources/dragonboat/internal/logdb/sharded.go:175 +0x90 fp=0x4000129a60 sp=0x4000129a10 pc=0x9c4960
github.com/lni/dragonboat/v3/internal/logdb.TestSavedEntrieseAreOrderedByTheKey.func1(0x4000602c00, 0xf01fe0, 0x4000392050)
	/root/sources/dragonboat/internal/logdb/db_test.go:465 +0x45c fp=0x4000129e40 sp=0x4000129a60 pc=0x9dff1c
github.com/lni/dragonboat/v3/internal/logdb.runLogDBTestAs(0x4000602c00, 0x593d00, 0xe67748, 0xf01ea0, 0x1379b20)
	/root/sources/dragonboat/internal/logdb/db_test.go:104 +0x2e0 fp=0x4000129f00 sp=0x4000129e40 pc=0x9caf30
github.com/lni/dragonboat/v3/internal/logdb.runLogDBTest(0x4000602c00, 0xe67748, 0xf01ea0, 0x1379b20)
	/root/sources/dragonboat/internal/logdb/db_test.go:108 +0x44 fp=0x4000129f40 sp=0x4000129f00 pc=0x9cafe4
github.com/lni/dragonboat/v3/internal/logdb.TestSavedEntrieseAreOrderedByTheKey(0x4000602c00)
	/root/sources/dragonboat/internal/logdb/db_test.go:492 +0x54 fp=0x4000129f70 sp=0x4000129f40 pc=0x9cb444
testing.tRunner(0x4000602c00, 0xe67750)
	/usr/local/go/src/testing/testing.go:1108 +0xdc fp=0x4000129fc0 sp=0x4000129f70 pc=0x6048bc
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm64.s:1136 +0x4 fp=0x4000129fc0 sp=0x4000129fc0 pc=0x5733c4
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1159 +0x2ec

goroutine 1 [chan receive]:
testing.(*T).Run(0x4000602c00, 0xe0c6d6, 0x23, 0xe67750, 0x5f3b5201)
	/usr/local/go/src/testing/testing.go:1160 +0x308
testing.runTests.func1(0x4000001e00)
	/usr/local/go/src/testing/testing.go:1430 +0x74
testing.tRunner(0x4000001e00, 0x4000133d98)
	/usr/local/go/src/testing/testing.go:1108 +0xdc
testing.runTests(0x40003a6f20, 0x12fcac0, 0x63, 0x63, 0x0, 0x0, 0x0, 0x2)
	/usr/local/go/src/testing/testing.go:1428 +0x294
testing.(*M).Run(0x40003a8180, 0x0)
	/usr/local/go/src/testing/testing.go:1338 +0x218
main.main()
	_testmain.go:239 +0x15c

goroutine 78 [select]:
github.com/lni/dragonboat/v3/internal/logdb.(*ShardedDB).compactionWorkerMain(0x4000392050)
	/root/sources/dragonboat/internal/logdb/sharded.go:307 +0x78
github.com/lni/dragonboat/v3/internal/logdb.OpenShardedDB.func1()
	/root/sources/dragonboat/internal/logdb/sharded.go:131 +0x28
github.com/lni/goutils/syncutil.(*Stopper).runWorker.func1(0x40001a6040, 0x40003da010, 0x0, 0x0, 0x4000198020)
	/root/go/pkg/mod/github.com/lni/[email protected]/syncutil/stopper.go:104 +0x50
created by github.com/lni/goutils/syncutil.(*Stopper).runWorker
	/root/go/pkg/mod/github.com/lni/[email protected]/syncutil/stopper.go:94 +0x88

r0      0x466fe44
r1      0x29d90ca0
r2      0x0
r3      0x7bf9
r4      0x29d988a0
r5      0x1e
r6      0xd0cae680
r7      0x58d316cf
r8      0x30000
r9      0x1
r10     0x3
r11     0xffffc78aff98
r12     0x6
r13     0xffffc78b03a0
r14     0x400019c5b0
r15     0x1c017f617461642d
r16     0xc0ad50
r17     0xffffb86603e8
r18     0x2
r19     0x7ff9
r20     0x29d1eb40
r21     0xffffc78afab8
r22     0x12ec000
r23     0x7
r24     0x29d90ca0
r25     0xffffc78afa18
r26     0x7
r27     0xffffc78afab8
r28     0xffffc78afaa0
r29     0xffffc78af9a0
lr      0xac52d0
sp      0xffffc78af9a0
pc      0xc5c664
fault   0x0

Dragonboat release-3.2 using lobrocksdb v6.11.4 and the example you provided:

root@ubuntu:~/sources/dragonboat# git checkout release-3.2
Branch 'release-3.2' set up to track remote branch 'release-3.2' from 'origin'.
Switched to a new branch 'release-3.2'

root@ubuntu:~/sources/dragonboat# git clean -f

root@ubuntu:~/sources/dragonboat# go clean
go: downloading github.com/golang/protobuf v1.3.3

root@ubuntu:~/sources/dragonboat# git status
On branch release-3.2
Your branch is up to date with 'origin/release-3.2'.

nothing to commit, working tree clean

root@ubuntu:~/sources/dragonboat# CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb
# github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_reader.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_reader.o):/root/sources/rocksdb/./util/compression.h:115: more undefined references to `ZSTD_freeDCtx' follow
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:940: undefined reference to `BZ2_bzDecompressInit'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::ZSTD_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:1321: undefined reference to `ZSTD_decompress_usingDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Snappy_GetUncompressedLength(char const*, unsigned long, unsigned long*)':
/root/sources/rocksdb/./util/compression.h:621: undefined reference to `snappy::GetUncompressedLength(char const*, unsigned long, unsigned long*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Snappy_Uncompress(char const*, unsigned long, char*)':
/root/sources/rocksdb/./util/compression.h:632: undefined reference to `snappy::RawUncompress(char const*, unsigned long, char*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::LZ4_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:1099: undefined reference to `LZ4_createStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1102: undefined reference to `LZ4_setStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1105: undefined reference to `LZ4_decompress_safe_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1108: undefined reference to `LZ4_freeStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1099: undefined reference to `LZ4_createStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1102: undefined reference to `LZ4_setStreamDecode'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1105: undefined reference to `LZ4_decompress_safe_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1108: undefined reference to `LZ4_freeStreamDecode'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Zlib_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*, int)':
/root/sources/rocksdb/./util/compression.h:781: undefined reference to `inflateInit2_'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:807: undefined reference to `inflate'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:839: undefined reference to `inflateEnd'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:789: undefined reference to `inflateSetDictionary'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:955: undefined reference to `BZ2_bzDecompress'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:985: undefined reference to `BZ2_bzDecompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Zlib_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*, int)':
/root/sources/rocksdb/./util/compression.h:831: undefined reference to `inflateEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/sources/rocksdb/./util/compression.h:977: undefined reference to `BZ2_bzDecompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::BZip2_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:880: undefined reference to `BZ2_bzCompressInit'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4HC_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1159: undefined reference to `LZ4_compressBound'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1170: undefined reference to `LZ4_createStreamHC'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1171: undefined reference to `LZ4_resetStreamHC'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1176: undefined reference to `LZ4_loadDictHC'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1181: undefined reference to `LZ4_compress_HC_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1188: undefined reference to `LZ4_freeStreamHC'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::Snappy_Compress(rocksdb::CompressionInfo const&, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:605: undefined reference to `snappy::MaxCompressedLength(unsigned long)'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:607: undefined reference to `snappy::RawCompress(char const*, unsigned long, char*, unsigned long*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_Compress(rocksdb::CompressionInfo const&, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1251: undefined reference to `ZSTD_compressBound'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1267: undefined reference to `ZSTD_compress_usingCDict'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1273: undefined reference to `ZSTD_compress_usingDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1025: undefined reference to `LZ4_compressBound'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1030: undefined reference to `LZ4_createStream'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1038: undefined reference to `LZ4_compress_fast_continue'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1045: undefined reference to `LZ4_freeStream'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::Zlib_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:700: undefined reference to `deflateInit2_'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:709: undefined reference to `deflateSetDictionary'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:713: undefined reference to `deflateEnd'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:727: undefined reference to `deflate'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:736: undefined reference to `deflateEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::BZip2_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:894: undefined reference to `BZ2_bzCompress'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:903: undefined reference to `BZ2_bzCompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/sources/rocksdb/./util/compression.h:1033: undefined reference to `LZ4_loadDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::CreateNativeContext(rocksdb::CompressionType)':
/root/sources/rocksdb/./util/compression.h:361: undefined reference to `ZSTD_createCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::CompressionDict(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, rocksdb::CompressionType, int)':
/root/sources/rocksdb/./util/compression.h:181: undefined reference to `ZSTD_createCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_TrainDictionary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long)':
/root/sources/rocksdb/./util/compression.h:1366: undefined reference to `ZDICT_trainFromBuffer'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:1369: undefined reference to `ZDICT_isError'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::CreateNativeContext(rocksdb::CompressionType)':
/root/sources/rocksdb/./util/compression.h:361: undefined reference to `ZSTD_createCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/sources/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/sources/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(db_impl.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(options_helper.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_TrainDictionarySupported()':
/root/sources/rocksdb/./util/compression.h:1348: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_Supported()':
/root/sources/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::CreateIfNeeded()':
/root/sources/rocksdb/./util/compression.h:104: undefined reference to `ZSTD_createDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:104: undefined reference to `ZSTD_createDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/sources/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
collect2: error: ld returned 1 exit status

Dragonboat release-3.2 using lobrocksdb v6.11.4 and the example you provided with additional CGO_LDFLAGS:

root@ubuntu:~/sources/dragonboat# CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -lz -llz4 -lbz2 -lzstd -lsnappy -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb

root@ubuntu:~/sources/dragonboat# ldd test-logdb.bin 
	linux-vdso.so.1 (0x0000ffff9c11f000)
	libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff9c0c5000)
	liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffff9c097000)
	libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffff9c076000)
	libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffff9bfd5000)
	libsnappy.so.1 => /lib/aarch64-linux-gnu/libsnappy.so.1 (0x0000ffff9bfbc000)
	libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffff9bfa8000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff9bdc6000)
	libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff9bd1b000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff9bceb000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff9bcc6000)
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff9bb55000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffff9c0ef000)

root@ubuntu:~/sources/dragonboat# ./test-logdb.bin -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-18 04:04:56.418873 I | logdb: using batched ShardedRDB
2020-08-18 04:04:56.422607 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (0.80s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-18 04:04:57.226928 I | logdb: using batched ShardedRDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.79s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-18 04:04:58.021574 I | logdb: using batched ShardedRDB
2020-08-18 04:04:58.763210 I | logdb: idx 48
2020-08-18 04:04:58.763281 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (0.79s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.00s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.00s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.02s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.00s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.00s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.00s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.00s)
=== RUN   TestKVCanBeCreatedAndClosed
--- PASS: TestKVCanBeCreatedAndClosed (0.05s)
=== RUN   TestKVGetAndSet
--- PASS: TestKVGetAndSet (0.06s)
=== RUN   TestKVValueCanBeDeleted
--- PASS: TestKVValueCanBeDeleted (0.06s)
=== RUN   TestKVWriteBatch
--- PASS: TestKVWriteBatch (0.10s)
=== RUN   TestKVIterateValue
--- PASS: TestKVIterateValue (0.20s)
=== RUN   TestWriteBatchCanBeCleared
--- PASS: TestWriteBatchCanBeCleared (0.05s)
=== RUN   TestHasEntryRecord
--- PASS: TestHasEntryRecord (0.06s)
=== RUN   TestEntriesCanBeRemovedFromKVStore
SIGILL: illegal instruction
PC=0x9fb364 m=5 sigcode=1
instruction bytes: 0x42 0xe0 0xe1 0xe 0x21 0x0 0x10 0x91 0x29 0x80 0x5e 0xf8 0x0 0x5c 0xca 0x9a

goroutine 0 [idle]:
runtime: unknown pc 0x9fb364
stack: frame={sp:0xffff86ffbb60, fp:0x0} stack=[0xffff867fc980,0xffff86ffc580)
0000ffff86ffba60:  0000000000000000  0000000000000000 
0000ffff86ffba70:  0000000000000000  0000000000000000 
0000ffff86ffba80:  0000000000000000  0000000000000000 
0000ffff86ffba90:  0000000000000000  0000000000000000 
0000ffff86ffbaa0:  0000000000000000  0000ffff86ffba68 
0000ffff86ffbab0:  0000000000000000  0000000000000000 
0000ffff86ffbac0:  0000000000000000  0000000000000000 
0000ffff86ffbad0:  0000000000000000  0000000000000000 
0000ffff86ffbae0:  0000000000000000  0000ffff86ffbaa8 
0000ffff86ffbaf0:  0000000000000000  0000000000000000 
0000ffff86ffbb00:  0000000000000000  0000000000000000 
0000ffff86ffbb10:  0000000001000000  3231360000000002 
0000ffff86ffbb20:  4000000000000000  0000ffff7c06fb20 
0000ffff86ffbb30:  0000ffff7c06fb3c  0000ffff7c06fb3c 
0000ffff86ffbb40:  0000000000000000  0000001000000000 
0000ffff86ffbb50:  0000004000000000  0000000100000300 
0000ffff86ffbb60: <0000ffff86ffbbf0  0000000000863170 
0000ffff86ffbb70:  0000ffff86ffbdd8  0000000000001268 
0000ffff86ffbb80:  0000ffff7c0e35a0  0000000000001268 
0000ffff86ffbb90:  0000ffff7c30bd50  0000000000000001 
0000ffff86ffbba0:  0000000000000007  0000000000000007 
0000ffff86ffbbb0:  0000000000000000  0000000000000000 
0000ffff86ffbbc0:  0000000000000000  fffffffffffffffe 
0000ffff86ffbbd0:  fffffffffffffffe  0001126800000000 
0000ffff86ffbbe0:  0000000020202020  c0637072a2e1c900 
0000ffff86ffbbf0:  0000ffff86ffbcb0  0000000000824958 
0000ffff86ffbc00:  0000ffff7c047e90  0000ffff86ffbdd8 
0000ffff86ffbc10:  0000000000de1000  0000000000000000 
0000ffff86ffbc20:  0000ffff7c0e35a0  0000ffff7c048b00 
0000ffff86ffbc30:  0000ffff7c0e35a0  0000000000000001 
0000ffff86ffbc40:  0000000000000000  0000ffff86ffbdd8 
0000ffff86ffbc50:  0000000000b86fc0  0000ffff86ffbc90 
runtime: unknown pc 0x9fb364
stack: frame={sp:0xffff86ffbb60, fp:0x0} stack=[0xffff867fc980,0xffff86ffc580)
0000ffff86ffba60:  0000000000000000  0000000000000000 
0000ffff86ffba70:  0000000000000000  0000000000000000 
0000ffff86ffba80:  0000000000000000  0000000000000000 
0000ffff86ffba90:  0000000000000000  0000000000000000 
0000ffff86ffbaa0:  0000000000000000  0000ffff86ffba68 
0000ffff86ffbab0:  0000000000000000  0000000000000000 
0000ffff86ffbac0:  0000000000000000  0000000000000000 
0000ffff86ffbad0:  0000000000000000  0000000000000000 
0000ffff86ffbae0:  0000000000000000  0000ffff86ffbaa8 
0000ffff86ffbaf0:  0000000000000000  0000000000000000 
0000ffff86ffbb00:  0000000000000000  0000000000000000 
0000ffff86ffbb10:  0000000001000000  3231360000000002 
0000ffff86ffbb20:  4000000000000000  0000ffff7c06fb20 
0000ffff86ffbb30:  0000ffff7c06fb3c  0000ffff7c06fb3c 
0000ffff86ffbb40:  0000000000000000  0000001000000000 
0000ffff86ffbb50:  0000004000000000  0000000100000300 
0000ffff86ffbb60: <0000ffff86ffbbf0  0000000000863170 
0000ffff86ffbb70:  0000ffff86ffbdd8  0000000000001268 
0000ffff86ffbb80:  0000ffff7c0e35a0  0000000000001268 
0000ffff86ffbb90:  0000ffff7c30bd50  0000000000000001 
0000ffff86ffbba0:  0000000000000007  0000000000000007 
0000ffff86ffbbb0:  0000000000000000  0000000000000000 
0000ffff86ffbbc0:  0000000000000000  fffffffffffffffe 
0000ffff86ffbbd0:  fffffffffffffffe  0001126800000000 
0000ffff86ffbbe0:  0000000020202020  c0637072a2e1c900 
0000ffff86ffbbf0:  0000ffff86ffbcb0  0000000000824958 
0000ffff86ffbc00:  0000ffff7c047e90  0000ffff86ffbdd8 
0000ffff86ffbc10:  0000000000de1000  0000000000000000 
0000ffff86ffbc20:  0000ffff7c0e35a0  0000ffff7c048b00 
0000ffff86ffbc30:  0000ffff7c0e35a0  0000000000000001 
0000ffff86ffbc40:  0000000000000000  0000ffff86ffbdd8 
0000ffff86ffbc50:  0000000000b86fc0  0000ffff86ffbc90 

goroutine 12 [syscall]:
runtime.cgocall(0x790620, 0x400003cc28, 0x40000a6048)
	/usr/local/go/src/runtime/cgocall.go:133 +0x50 fp=0x400003cbf0 sp=0x400003cbb0 pc=0x50ffc0
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb._Cfunc_rocksdb_write(0xffff7c002d20, 0xffff7c0e60c0, 0xffff7c0d2290, 0x40000a6048)
	_cgo_gotypes.go:4070 +0x40 fp=0x400003cc20 sp=0x400003cbf0 pc=0x6f9720
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write.func1(0x40000aa100, 0x40000a6020, 0x40000a6040, 0x40000a6048)
	/root/sources/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0xec fp=0x400003cc70 sp=0x400003cc20 pc=0x7056ec
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write(0x40000aa100, 0x40000a6020, 0x40000a6040, 0x0, 0x0)
	/root/sources/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0x60 fp=0x400003ccd0 sp=0x400003cc70 pc=0x6fc560
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb.(*KV).CommitWriteBatch(0x4000042000, 0xb782c0, 0x40000a6040, 0x1c, 0x4000102660)
	/root/sources/dragonboat/internal/logdb/kv/rocksdb/kv_rocksdb.go:323 +0x50 fp=0x400003cd10 sp=0x400003ccd0 pc=0x70ebf0
github.com/lni/dragonboat/v3/internal/logdb.TestEntriesCanBeRemovedFromKVStore.func1(0x40004f0780, 0xb79d80, 0x4000042000)
	/root/sources/dragonboat/internal/logdb/kv_test.go:290 +0x174 fp=0x400003ce70 sp=0x400003cd10 pc=0x77dfe4
github.com/lni/dragonboat/v3/internal/logdb.runKVTest(0x40004f0780, 0xb284c0, 0xb7a2c0, 0xe56480)
	/root/sources/dragonboat/internal/logdb/kv_test.go:58 +0x1a0 fp=0x400003cf40 sp=0x400003ce70 pc=0x768700
github.com/lni/dragonboat/v3/internal/logdb.TestEntriesCanBeRemovedFromKVStore(0x40004f0780)
	/root/sources/dragonboat/internal/logdb/kv_test.go:325 +0x54 fp=0x400003cf70 sp=0x400003cf40 pc=0x768c24
testing.tRunner(0x40004f0780, 0xb284c8)
	/usr/local/go/src/testing/testing.go:1108 +0xdc fp=0x400003cfc0 sp=0x400003cf70 pc=0x5f9e7c
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm64.s:1136 +0x4 fp=0x400003cfc0 sp=0x400003cfc0 pc=0x5724e4
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1159 +0x2ec

goroutine 1 [chan receive]:
testing.(*T).Run(0x40004f0780, 0xb1b098, 0x22, 0xb284c8, 0x5f3b5301)
	/usr/local/go/src/testing/testing.go:1160 +0x308
testing.runTests.func1(0x4000082900)
	/usr/local/go/src/testing/testing.go:1430 +0x74
testing.tRunner(0x4000082900, 0x40000f9d98)
	/usr/local/go/src/testing/testing.go:1108 +0xdc
testing.runTests(0x40000aa540, 0xdeac80, 0x63, 0x63, 0x0, 0x0, 0x0, 0x2)
	/usr/local/go/src/testing/testing.go:1428 +0x294
testing.(*M).Run(0x40000e6100, 0x0)
	/usr/local/go/src/testing/testing.go:1338 +0x218
main.main()
	_testmain.go:239 +0x15c

r0      0xbc6266eb
r1      0xffff7c30bd50
r2      0x0
r3      0xe68
r4      0xffff7c30cd50
r5      0x3
r6      0x7631c980
r7      0xbbbe1fc8
r8      0x100000000000000
r9      0x0
r10     0x11c010000000000
r11     0xffff86ffc158
r12     0xa
r13     0xffff86ffc560
r14     0x100000000000000
r15     0x3800000000000000
r16     0x9a9a50
r17     0xffffb3ca63e8
r18     0x1
r19     0x1268
r20     0xffff7c0e35a0
r21     0xffff86ffbc78
r22     0xde1000
r23     0x7
r24     0xffff7c30bd50
r25     0xffff86ffbbd8
r26     0x7
r27     0xffff86ffbc78
r28     0xffff86ffbc60
r29     0xffff86ffbb60
lr      0x862fd0
sp      0xffff86ffbb60
pc      0x9fb364
fault   0x0

@lni
Copy link
Owner

lni commented Aug 18, 2020

Let's first rule out hardware issue here, e.g. golang/go#28431 had similar illegal instruction error caused by some particular processors.

For the above test-logdb.bin executable that generated the reported illegal instruction error, you can copy that executable to an ARM64 based AWS m6g instance running the same version of Ubuntu and run from there to see whether it works. You may also want to build that test-logdb.bin using RocksDB v6.11.4 on an AWS m6g instance (which has been confirmed to work fine) and copy it over to your Raspberry Pi4 to see whether it works. When RocksDB is used as a shared lib, make you the share lib is also copied over to the new platform.

@lni
Copy link
Owner

lni commented Aug 18, 2020

Another thing I noticed is that you are using RocksDB as a static lib, it shouldn't be a problem in theory but just saw similar illegal instruction errors reported by other Go users when statically linked binaries were used.

https://groups.google.com/forum/#!topic/golang-nuts/1R4yayrgWUI

Can you try building RocksDB as a shared lib as well?

@jeremyhahn
Copy link
Author

static_lib test results

test-logdb.bin built with librocksdb-v6.11.4 on the RPI, run on the m6g instance:

root@ip-172-31-45-27:/home/ubuntu$ ./test-logdb.bin -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-18 18:59:08.113509 I | logdb: using batched ShardedRDB
2020-08-18 18:59:08.114762 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (1.46s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-18 18:59:09.626566 I | logdb: using batched ShardedRDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.80s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-18 18:59:10.373294 I | logdb: using batched ShardedRDB
2020-08-18 18:59:11.435215 I | logdb: idx 48
2020-08-18 18:59:11.435239 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (1.07s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.00s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.00s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.00s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.00s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.00s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.00s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.00s)
=== RUN   TestKVCanBeCreatedAndClosed
--- PASS: TestKVCanBeCreatedAndClosed (0.09s)
=== RUN   TestKVGetAndSet
--- PASS: TestKVGetAndSet (0.15s)
=== RUN   TestKVValueCanBeDeleted
--- PASS: TestKVValueCanBeDeleted (0.02s)
=== RUN   TestKVWriteBatch
--- PASS: TestKVWriteBatch (0.12s)
=== RUN   TestKVIterateValue
--- PASS: TestKVIterateValue (0.20s)
=== RUN   TestWriteBatchCanBeCleared
--- PASS: TestWriteBatchCanBeCleared (0.09s)
=== RUN   TestHasEntryRecord
--- PASS: TestHasEntryRecord (0.02s)
=== RUN   TestEntriesCanBeRemovedFromKVStore
--- PASS: TestEntriesCanBeRemovedFromKVStore (0.28s)
=== RUN   TestCompactionReleaseStorageSpace
--- PASS: TestCompactionReleaseStorageSpace (0.63s)
=== RUN   TestTailCorruptionIsIgnored
--- PASS: TestTailCorruptionIsIgnored (0.25s)
=== RUN   TestSSTCorruptionIsHandled
--- PASS: TestSSTCorruptionIsHandled (0.12s)
=== RUN   TestWALCorruptionIsHandled
--- PASS: TestWALCorruptionIsHandled (0.01s)
=== RUN   TestRLLTFindConflict
2020-08-18 18:59:13.432467 I | logdb: using plain ShardedRDB
--- PASS: TestRLLTFindConflict (1.24s)
=== RUN   TestRLLTIsUpToDate
2020-08-18 18:59:14.668612 I | logdb: using plain ShardedRDB
--- PASS: TestRLLTIsUpToDate (0.59s)
=== RUN   TestRLLTAppend
2020-08-18 18:59:15.254722 I | logdb: using plain ShardedRDB
2020-08-18 18:59:16.163094 I | logdb: stable first index: 1
2020-08-18 18:59:16.170595 I | logdb: using plain ShardedRDB
2020-08-18 18:59:17.271437 I | logdb: stable first index: 1
2020-08-18 18:59:17.280827 I | logdb: using plain ShardedRDB
2020-08-18 18:59:18.129713 I | logdb: stable first index: 1
2020-08-18 18:59:18.138270 I | logdb: using plain ShardedRDB
2020-08-18 18:59:18.370382 I | logdb: stable first index: 1
--- PASS: TestRLLTAppend (3.12s)
=== RUN   TestRLLTLogMaybeAppend
2020-08-18 18:59:18.377730 I | logdb: using plain ShardedRDB
2020-08-18 18:59:18.588838 I | logdb: using plain ShardedRDB
2020-08-18 18:59:18.812090 I | logdb: using plain ShardedRDB
2020-08-18 18:59:19.048891 I | logdb: using plain ShardedRDB
2020-08-18 18:59:19.297566 I | logdb: using plain ShardedRDB
2020-08-18 18:59:19.536639 I | logdb: using plain ShardedRDB
2020-08-18 18:59:19.774075 I | logdb: using plain ShardedRDB
2020-08-18 18:59:20.041741 I | logdb: using plain ShardedRDB
2020-08-18 18:59:20.294600 I | logdb: using plain ShardedRDB
2020-08-18 18:59:20.534192 I | logdb: using plain ShardedRDB
2020-08-18 18:59:20.763522 I | logdb: using plain ShardedRDB
2020-08-18 18:59:20.985907 I | logdb: using plain ShardedRDB
2020-08-18 18:59:21.229803 I | logdb: using plain ShardedRDB
2020-08-18 18:59:21.447539 I | logdb: using plain ShardedRDB
2020-08-18 18:59:21.700834 C | raft: entry 1 conflicts with committed entry, committed 1
2020-08-18 18:59:21.708208 I | logdb: using plain ShardedRDB
--- PASS: TestRLLTLogMaybeAppend (3.53s)
=== RUN   TestRLLTHasNextEnts
2020-08-18 18:59:21.903755 I | logdb: using plain ShardedRDB
2020-08-18 18:59:22.111149 I | logdb: using plain ShardedRDB
2020-08-18 18:59:22.372302 I | logdb: using plain ShardedRDB
2020-08-18 18:59:22.579296 I | logdb: using plain ShardedRDB
--- PASS: TestRLLTHasNextEnts (0.88s)
=== RUN   TestRLLTNextEnts
2020-08-18 18:59:22.781331 I | logdb: using plain ShardedRDB
2020-08-18 18:59:23.015683 I | logdb: using plain ShardedRDB
2020-08-18 18:59:23.232890 I | logdb: using plain ShardedRDB
2020-08-18 18:59:23.443502 I | logdb: using plain ShardedRDB
--- PASS: TestRLLTNextEnts (0.87s)
=== RUN   TestRLLTCompaction
2020-08-18 18:59:23.652022 I | logdb: using plain ShardedRDB
2020-08-18 18:59:23.857101 I | logdb: using plain ShardedRDB
2020-08-18 18:59:24.076104 I | logdb: using plain ShardedRDB
--- PASS: TestRLLTCompaction (0.69s)
=== RUN   TestRLLTLogRestore
2020-08-18 18:59:24.345173 I | logdb: using plain ShardedRDB
--- PASS: TestRLLTLogRestore (0.21s)
=== RUN   TestRLLTIsOutOfBounds
2020-08-18 18:59:24.559543 I | logdb: using plain ShardedRDB
2020-08-18 18:59:24.763813 C | raft: requested range [201,202) is out of bound [101,200]
2020-08-18 18:59:24.763842 C | raft: requested range [202,202) is out of bound [101,200]
--- PASS: TestRLLTIsOutOfBounds (0.21s)
=== RUN   TestRLLTTerm
2020-08-18 18:59:24.771516 I | logdb: using plain ShardedRDB
--- PASS: TestRLLTTerm (0.20s)
=== RUN   TestRLLTSlice
2020-08-18 18:59:24.972725 I | logdb: using plain ShardedRDB
2020-08-18 18:59:25.263980 C | raft: requested range [200,201) is out of bound [101,199]
--- PASS: TestRLLTSlice (0.30s)
=== RUN   TestLogReaderEntries
2020-08-18 18:59:25.271916 I | logdb: using plain ShardedRDB
2020-08-18 18:59:25.500224 I | logdb: using plain ShardedRDB
2020-08-18 18:59:25.720673 I | logdb: using plain ShardedRDB
2020-08-18 18:59:25.943267 I | logdb: using plain ShardedRDB
2020-08-18 18:59:26.173105 I | logdb: using plain ShardedRDB
2020-08-18 18:59:26.424556 I | logdb: using plain ShardedRDB
2020-08-18 18:59:26.680289 I | logdb: using plain ShardedRDB
2020-08-18 18:59:26.940951 I | logdb: using plain ShardedRDB
2020-08-18 18:59:27.172271 I | logdb: using plain ShardedRDB
2020-08-18 18:59:27.411112 I | logdb: using plain ShardedRDB
--- PASS: TestLogReaderEntries (2.34s)
=== RUN   TestLogReaderTerm
2020-08-18 18:59:27.608135 I | logdb: using plain ShardedRDB
2020-08-18 18:59:27.785581 I | logdb: using plain ShardedRDB
2020-08-18 18:59:27.966349 I | logdb: using plain ShardedRDB
2020-08-18 18:59:28.148168 I | logdb: using plain ShardedRDB
2020-08-18 18:59:29.039532 I | logdb: using plain ShardedRDB
2020-08-18 18:59:29.783798 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
--- PASS: TestLogReaderTerm (2.18s)
=== RUN   TestLogReaderLastIndex
2020-08-18 18:59:29.792518 I | logdb: using plain ShardedRDB
--- PASS: TestLogReaderLastIndex (1.00s)
=== RUN   TestLogReaderFirstIndex
2020-08-18 18:59:30.788842 I | logdb: using plain ShardedRDB
--- PASS: TestLogReaderFirstIndex (0.85s)
=== RUN   TestLogReaderAppend
2020-08-18 18:59:31.643163 I | logdb: using plain ShardedRDB
2020-08-18 18:59:32.362954 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-18 18:59:32.370472 I | logdb: using plain ShardedRDB
2020-08-18 18:59:33.205893 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-18 18:59:33.214080 I | logdb: using plain ShardedRDB
2020-08-18 18:59:33.775018 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-18 18:59:33.775055 I | logdb: going to check term for index 6
2020-08-18 18:59:33.775064 I | logdb: Term returned
2020-08-18 18:59:33.782481 I | logdb: using plain ShardedRDB
2020-08-18 18:59:34.483533 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-18 18:59:34.491190 I | logdb: using plain ShardedRDB
2020-08-18 18:59:35.315696 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-18 18:59:35.323680 I | logdb: using plain ShardedRDB
2020-08-18 18:59:36.562380 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-18 18:59:36.562420 I | logdb: going to check term for index 6
2020-08-18 18:59:36.562429 I | logdb: Term returned
--- PASS: TestLogReaderAppend (4.93s)
=== RUN   TestLogReaderApplySnapshot
2020-08-18 18:59:36.570511 I | logdb: using plain ShardedRDB
--- PASS: TestLogReaderApplySnapshot (0.80s)
=== RUN   TestLogReaderCreateSnapshot
2020-08-18 18:59:37.375384 I | logdb: using plain ShardedRDB
2020-08-18 18:59:37.980996 I | logdb: using plain ShardedRDB
--- PASS: TestLogReaderCreateSnapshot (1.44s)
=== RUN   TestLogReaderSetRange
2020-08-18 18:59:38.813515 I | logdb: using plain ShardedRDB
2020-08-18 18:59:39.617074 I | logdb: using plain ShardedRDB
2020-08-18 18:59:40.504009 I | logdb: using plain ShardedRDB
2020-08-18 18:59:41.432085 I | logdb: using plain ShardedRDB
--- PASS: TestLogReaderSetRange (3.57s)
=== RUN   TestLogReaderGetSnapshot
2020-08-18 18:59:42.385306 I | logdb: using plain ShardedRDB
--- PASS: TestLogReaderGetSnapshot (0.75s)
=== RUN   TestLogReaderInitialState
2020-08-18 18:59:43.137440 I | logdb: using plain ShardedRDB
--- PASS: TestLogReaderInitialState (0.71s)
=== RUN   TestLogReaderNewLogReader
--- PASS: TestLogReaderNewLogReader (0.00s)
=== RUN   TestInitialState
--- PASS: TestInitialState (0.00s)
=== RUN   TestApplySnapshotUpdateMarkerIndexTerm
--- PASS: TestApplySnapshotUpdateMarkerIndexTerm (0.00s)
=== RUN   TestLogReaderIndexRange
--- PASS: TestLogReaderIndexRange (0.00s)
=== RUN   TestSetRange
--- PASS: TestSetRange (0.00s)
=== RUN   TestSetRangePanicWhenThereIsIndexHole
--- PASS: TestSetRangePanicWhenThereIsIndexHole (0.00s)
=== RUN   TestEntryKeysOrdered
--- PASS: TestEntryKeysOrdered (0.02s)
=== RUN   TestSnapshotKeysOrdered
--- PASS: TestSnapshotKeysOrdered (0.02s)
=== RUN   TestNodeInfoKeyCanBeParsed
--- PASS: TestNodeInfoKeyCanBeParsed (0.00s)
=== RUN   TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap
2020-08-18 18:59:43.882210 I | logdb: using plain ShardedRDB
2020-08-18 18:59:44.321119 I | logdb: using batched ShardedRDB
--- PASS: TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap (0.61s)
=== RUN   TestBootstrapInfoCanBeSavedAndChecked
2020-08-18 18:59:44.497111 I | logdb: using plain ShardedRDB
2020-08-18 18:59:44.678432 I | logdb: using batched ShardedRDB
--- PASS: TestBootstrapInfoCanBeSavedAndChecked (0.37s)
=== RUN   TestSnapshotHasMaxIndexSet
2020-08-18 18:59:44.864769 I | logdb: using plain ShardedRDB
2020-08-18 18:59:45.053078 I | logdb: using batched ShardedRDB
--- PASS: TestSnapshotHasMaxIndexSet (0.37s)
=== RUN   TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic
2020-08-18 18:59:45.239870 I | logdb: using plain ShardedRDB
2020-08-18 18:59:45.414245 C | logdb: max index not handled, 5, 4
--- PASS: TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic (0.18s)
=== RUN   TestSnapshotsSavedInSaveRaftState
2020-08-18 18:59:45.422120 I | logdb: using plain ShardedRDB
2020-08-18 18:59:45.612485 I | logdb: using batched ShardedRDB
--- PASS: TestSnapshotsSavedInSaveRaftState (0.38s)
=== RUN   TestSnapshotOnlyNodeIsHandledByReadRaftState
2020-08-18 18:59:45.804221 I | logdb: using plain ShardedRDB
2020-08-18 18:59:45.992038 I | logdb: using batched ShardedRDB
--- PASS: TestSnapshotOnlyNodeIsHandledByReadRaftState (0.37s)
=== RUN   TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved
2020-08-18 18:59:46.176537 I | logdb: using plain ShardedRDB
2020-08-18 18:59:46.361045 I | logdb: using batched ShardedRDB
--- PASS: TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved (0.37s)
=== RUN   TestMaxIndexRuleIsEnforced
2020-08-18 18:59:46.543362 I | logdb: using plain ShardedRDB
2020-08-18 18:59:46.725432 I | logdb: using batched ShardedRDB
--- PASS: TestMaxIndexRuleIsEnforced (0.37s)
=== RUN   TestSavedEntrieseAreOrderedByTheKey
2020-08-18 18:59:46.910229 I | logdb: using plain ShardedRDB
2020-08-18 18:59:47.099632 I | logdb: using batched ShardedRDB
--- PASS: TestSavedEntrieseAreOrderedByTheKey (0.38s)
=== RUN   TestSaveRaftState
2020-08-18 18:59:47.288503 I | logdb: using plain ShardedRDB
2020-08-18 18:59:47.472308 I | logdb: using batched ShardedRDB
--- PASS: TestSaveRaftState (0.36s)
=== RUN   TestStateIsUpdated
2020-08-18 18:59:47.653628 I | logdb: using plain ShardedRDB
2020-08-18 18:59:47.841426 I | logdb: using batched ShardedRDB
--- PASS: TestStateIsUpdated (0.38s)
=== RUN   TestMaxIndexIsUpdated
2020-08-18 18:59:48.030331 I | logdb: using plain ShardedRDB
2020-08-18 18:59:48.224338 I | logdb: using batched ShardedRDB
--- PASS: TestMaxIndexIsUpdated (0.39s)
=== RUN   TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode
2020-08-18 18:59:48.422133 I | logdb: using plain ShardedRDB
2020-08-18 18:59:48.607371 I | logdb: using batched ShardedRDB
--- PASS: TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode (0.37s)
=== RUN   TestIterateEntriesOnlyReturnCurrentNodeEntries
2020-08-18 18:59:48.791656 I | logdb: using plain ShardedRDB
2020-08-18 18:59:49.454538 I | logdb: using batched ShardedRDB
--- PASS: TestIterateEntriesOnlyReturnCurrentNodeEntries (1.79s)
=== RUN   TestIterateEntries
2020-08-18 18:59:50.578643 I | logdb: using plain ShardedRDB
2020-08-18 18:59:50.764626 I | logdb: using batched ShardedRDB
--- PASS: TestIterateEntries (0.38s)
=== RUN   TestDeleteNotExistSnapshotIsAllowed
2020-08-18 18:59:50.959691 I | logdb: using plain ShardedRDB
2020-08-18 18:59:51.185399 I | logdb: using batched ShardedRDB
--- PASS: TestDeleteNotExistSnapshotIsAllowed (0.41s)
=== RUN   TestSaveSnapshot
2020-08-18 18:59:51.367406 I | logdb: using plain ShardedRDB
2020-08-18 18:59:51.551313 I | logdb: using batched ShardedRDB
--- PASS: TestSaveSnapshot (0.37s)
=== RUN   TestParseNodeInfoKeyPanicOnUnexpectedKeySize
--- PASS: TestParseNodeInfoKeyPanicOnUnexpectedKeySize (0.00s)
=== RUN   TestSaveEntriesWithIndexGap
2020-08-18 18:59:51.738857 I | logdb: using plain ShardedRDB
2020-08-18 18:59:51.925522 I | logdb: using batched ShardedRDB
--- PASS: TestSaveEntriesWithIndexGap (0.37s)
=== RUN   TestRemoveEntriesTo
2020-08-18 18:59:52.111705 I | logdb: using plain ShardedRDB
2020-08-18 18:59:52.285662 I | logdb: name: sharded-rocksdb
2020-08-18 18:59:52.469040 I | logdb: count: 1, done
2020-08-18 18:59:52.471653 I | logdb: sz: 0
--- PASS: TestRemoveEntriesTo (0.37s)
=== RUN   TestAllWantedEntriesAreAccessible
2020-08-18 18:59:52.477253 I | logdb: using plain ShardedRDB
2020-08-18 18:59:52.663381 I | logdb: using batched ShardedRDB
2020-08-18 18:59:52.842051 I | logdb: using plain ShardedRDB
2020-08-18 18:59:53.018700 I | logdb: using batched ShardedRDB
2020-08-18 18:59:53.201565 I | logdb: using plain ShardedRDB
2020-08-18 18:59:53.379963 I | logdb: using batched ShardedRDB
2020-08-18 18:59:53.554356 I | logdb: using plain ShardedRDB
2020-08-18 18:59:53.733694 I | logdb: using batched ShardedRDB
2020-08-18 18:59:53.908484 I | logdb: using plain ShardedRDB
2020-08-18 18:59:54.088507 I | logdb: using batched ShardedRDB
2020-08-18 18:59:54.272552 I | logdb: using plain ShardedRDB
2020-08-18 18:59:54.459389 I | logdb: using batched ShardedRDB
2020-08-18 18:59:54.642511 I | logdb: using plain ShardedRDB
2020-08-18 18:59:54.824570 I | logdb: using batched ShardedRDB
2020-08-18 18:59:55.007944 I | logdb: using plain ShardedRDB
2020-08-18 18:59:55.189163 I | logdb: using batched ShardedRDB
2020-08-18 18:59:55.372444 I | logdb: using plain ShardedRDB
2020-08-18 18:59:55.547855 I | logdb: using batched ShardedRDB
2020-08-18 18:59:55.720442 I | logdb: using plain ShardedRDB
2020-08-18 18:59:55.893069 I | logdb: using batched ShardedRDB
2020-08-18 18:59:56.069676 I | logdb: using plain ShardedRDB
2020-08-18 18:59:56.254443 I | logdb: using batched ShardedRDB
2020-08-18 18:59:56.430711 I | logdb: using plain ShardedRDB
2020-08-18 18:59:56.606655 I | logdb: using batched ShardedRDB
2020-08-18 18:59:56.781319 I | logdb: using plain ShardedRDB
2020-08-18 18:59:56.961525 I | logdb: using batched ShardedRDB
2020-08-18 18:59:57.138564 I | logdb: using plain ShardedRDB
2020-08-18 18:59:57.324801 I | logdb: using batched ShardedRDB
2020-08-18 18:59:57.516069 I | logdb: using plain ShardedRDB
2020-08-18 18:59:57.709788 I | logdb: using batched ShardedRDB
2020-08-18 18:59:57.892774 I | logdb: using plain ShardedRDB
2020-08-18 18:59:58.082374 I | logdb: using batched ShardedRDB
2020-08-18 18:59:58.263694 I | logdb: using plain ShardedRDB
2020-08-18 18:59:58.456365 I | logdb: using batched ShardedRDB
--- PASS: TestAllWantedEntriesAreAccessible (6.19s)
=== RUN   TestReadRaftStateWithSnapshot
2020-08-18 18:59:58.663687 I | logdb: using plain ShardedRDB
2020-08-18 18:59:58.851554 I | logdb: using batched ShardedRDB
2020-08-18 18:59:59.053044 I | logdb: using plain ShardedRDB
2020-08-18 18:59:59.250102 I | logdb: using batched ShardedRDB
--- PASS: TestReadRaftStateWithSnapshot (0.78s)
=== RUN   TestReadRaftStateWithEntriesOnly
2020-08-18 18:59:59.446279 I | logdb: using plain ShardedRDB
2020-08-18 18:59:59.637639 I | logdb: using batched ShardedRDB
--- PASS: TestReadRaftStateWithEntriesOnly (1.23s)
=== RUN   TestRemoveNodeData
2020-08-18 19:00:00.678689 I | logdb: using plain ShardedRDB
2020-08-18 19:00:01.588204 I | logdb: RemoveNodeData done
2020-08-18 19:00:01.597477 I | logdb: using batched ShardedRDB
2020-08-18 19:00:01.768804 I | logdb: RemoveNodeData done
--- PASS: TestRemoveNodeData (1.10s)
=== RUN   TestImportSnapshot
2020-08-18 19:00:01.777160 I | logdb: using plain ShardedRDB
2020-08-18 19:00:03.085178 I | logdb: using batched ShardedRDB
--- PASS: TestImportSnapshot (2.18s)
=== RUN   TestCachedNodeInfoCanBeSet
--- PASS: TestCachedNodeInfoCanBeSet (0.00s)
=== RUN   TestCachedStateCanBeSet
--- PASS: TestCachedStateCanBeSet (0.00s)
=== RUN   TestLastEntryBatchCanBeSetAndGet
--- PASS: TestLastEntryBatchCanBeSetAndGet (0.00s)
=== RUN   TestLastEntryBatchCanBeUpdated
--- PASS: TestLastEntryBatchCanBeUpdated (0.00s)
=== RUN   TestChangeReturnedLastBatchWillNotAffectTheCache
--- PASS: TestChangeReturnedLastBatchWillNotAffectTheCache (0.00s)
=== RUN   TestMaxIndexCanBeSetAndGet
--- PASS: TestMaxIndexCanBeSetAndGet (0.00s)
=== RUN   TestRDBContextCanBeCreated
--- PASS: TestRDBContextCanBeCreated (0.00s)
=== RUN   TestRDBContextCaBeDestroyed
--- PASS: TestRDBContextCaBeDestroyed (0.00s)
=== RUN   TestRDBContextCaBeReset
--- PASS: TestRDBContextCaBeReset (0.00s)
=== RUN   TestGetValueBuffer
--- PASS: TestGetValueBuffer (0.00s)
=== RUN   TestGetUpdates
--- PASS: TestGetUpdates (0.00s)
PASS

Dragonboat HEAD with librocksdb-v6.11.4 on the m6g instance:

root@ip-172-31-45-27:~/dragonboat# CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb
go: downloading github.com/lni/goutils v1.2.0
go: downloading github.com/golang/protobuf v1.4.0
go: downloading github.com/cockroachdb/pebble v0.0.0-20200717134142-4b2d866d3e13
go: downloading google.golang.org/protobuf v1.21.0
go: downloading golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa
go: downloading github.com/cockroachdb/errors v1.2.4
go: downloading github.com/gogo/protobuf v1.3.1
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f
go: downloading github.com/getsentry/raven-go v0.2.0
go: downloading github.com/certifi/gocertifi v0.0.0-20200211180108-c7c1fbc02894
# github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_reader.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_reader.o):/root/rocksdb/./util/compression.h:115: more undefined references to `ZSTD_freeDCtx' follow
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/rocksdb/./util/compression.h:940: undefined reference to `BZ2_bzDecompressInit'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::ZSTD_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, rocksdb::MemoryAllocator*)':
/root/rocksdb/./util/compression.h:1321: undefined reference to `ZSTD_decompress_usingDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Snappy_GetUncompressedLength(char const*, unsigned long, unsigned long*)':
/root/rocksdb/./util/compression.h:621: undefined reference to `snappy::GetUncompressedLength(char const*, unsigned long, unsigned long*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Snappy_Uncompress(char const*, unsigned long, char*)':
/root/rocksdb/./util/compression.h:632: undefined reference to `snappy::RawUncompress(char const*, unsigned long, char*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::LZ4_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/rocksdb/./util/compression.h:1099: undefined reference to `LZ4_createStreamDecode'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1102: undefined reference to `LZ4_setStreamDecode'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1105: undefined reference to `LZ4_decompress_safe_continue'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1108: undefined reference to `LZ4_freeStreamDecode'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1099: undefined reference to `LZ4_createStreamDecode'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1102: undefined reference to `LZ4_setStreamDecode'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1105: undefined reference to `LZ4_decompress_safe_continue'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1108: undefined reference to `LZ4_freeStreamDecode'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Zlib_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*, int)':
/root/rocksdb/./util/compression.h:781: undefined reference to `inflateInit2_'
/usr/bin/ld: /root/rocksdb/./util/compression.h:807: undefined reference to `inflate'
/usr/bin/ld: /root/rocksdb/./util/compression.h:839: undefined reference to `inflateEnd'
/usr/bin/ld: /root/rocksdb/./util/compression.h:789: undefined reference to `inflateSetDictionary'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/rocksdb/./util/compression.h:955: undefined reference to `BZ2_bzDecompress'
/usr/bin/ld: /root/rocksdb/./util/compression.h:985: undefined reference to `BZ2_bzDecompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::Zlib_Uncompress(rocksdb::UncompressionInfo const&, char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*, int)':
/root/rocksdb/./util/compression.h:831: undefined reference to `inflateEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(format.o): in function `rocksdb::BZip2_Uncompress(char const*, unsigned long, int*, unsigned int, rocksdb::MemoryAllocator*)':
/root/rocksdb/./util/compression.h:977: undefined reference to `BZ2_bzDecompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::BZip2_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/rocksdb/./util/compression.h:880: undefined reference to `BZ2_bzCompressInit'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4HC_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/rocksdb/./util/compression.h:1159: undefined reference to `LZ4_compressBound'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1170: undefined reference to `LZ4_createStreamHC'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1171: undefined reference to `LZ4_resetStreamHC'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1176: undefined reference to `LZ4_loadDictHC'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1181: undefined reference to `LZ4_compress_HC_continue'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1188: undefined reference to `LZ4_freeStreamHC'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::Snappy_Compress(rocksdb::CompressionInfo const&, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/rocksdb/./util/compression.h:605: undefined reference to `snappy::MaxCompressedLength(unsigned long)'
/usr/bin/ld: /root/rocksdb/./util/compression.h:607: undefined reference to `snappy::RawCompress(char const*, unsigned long, char*, unsigned long*)'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_Compress(rocksdb::CompressionInfo const&, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/rocksdb/./util/compression.h:1251: undefined reference to `ZSTD_compressBound'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1267: undefined reference to `ZSTD_compress_usingCDict'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1273: undefined reference to `ZSTD_compress_usingDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/rocksdb/./util/compression.h:1025: undefined reference to `LZ4_compressBound'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1030: undefined reference to `LZ4_createStream'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1038: undefined reference to `LZ4_compress_fast_continue'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1045: undefined reference to `LZ4_freeStream'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::Zlib_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/rocksdb/./util/compression.h:700: undefined reference to `deflateInit2_'
/usr/bin/ld: /root/rocksdb/./util/compression.h:709: undefined reference to `deflateSetDictionary'
/usr/bin/ld: /root/rocksdb/./util/compression.h:713: undefined reference to `deflateEnd'
/usr/bin/ld: /root/rocksdb/./util/compression.h:727: undefined reference to `deflate'
/usr/bin/ld: /root/rocksdb/./util/compression.h:736: undefined reference to `deflateEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::BZip2_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/rocksdb/./util/compression.h:894: undefined reference to `BZ2_bzCompress'
/usr/bin/ld: /root/rocksdb/./util/compression.h:903: undefined reference to `BZ2_bzCompressEnd'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::LZ4_Compress(rocksdb::CompressionInfo const&, unsigned int, char const*, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/root/rocksdb/./util/compression.h:1033: undefined reference to `LZ4_loadDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_Supported()':
/root/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /root/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::CreateNativeContext(rocksdb::CompressionType)':
/root/rocksdb/./util/compression.h:361: undefined reference to `ZSTD_createCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /root/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::CompressionDict(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, rocksdb::CompressionType, int)':
/root/rocksdb/./util/compression.h:181: undefined reference to `ZSTD_createCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTD_TrainDictionary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long)':
/root/rocksdb/./util/compression.h:1366: undefined reference to `ZDICT_trainFromBuffer'
/usr/bin/ld: /root/rocksdb/./util/compression.h:1369: undefined reference to `ZDICT_isError'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::CreateNativeContext(rocksdb::CompressionType)':
/root/rocksdb/./util/compression.h:361: undefined reference to `ZSTD_createCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionDict::~CompressionDict()':
/root/rocksdb/./util/compression.h:191: undefined reference to `ZSTD_freeCDict'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::CompressionContext::DestroyNativeContext()':
/root/rocksdb/./util/compression.h:367: undefined reference to `ZSTD_freeCCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(block_based_table_builder.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(db_impl.o): in function `rocksdb::ZSTD_Supported()':
/root/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(options_helper.o): in function `rocksdb::ZSTD_Supported()':
/root/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_Supported()':
/root/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_TrainDictionarySupported()':
/root/rocksdb/./util/compression.h:1348: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(column_family.o): in function `rocksdb::ZSTD_Supported()':
/root/rocksdb/./util/compression.h:502: undefined reference to `ZSTD_versionNumber'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::CreateIfNeeded()':
/root/rocksdb/./util/compression.h:104: undefined reference to `ZSTD_createDCtx'
/usr/bin/ld: /root/rocksdb/./util/compression.h:104: undefined reference to `ZSTD_createDCtx'
/usr/bin/ld: /usr/local/lib/librocksdb.a(compression_context_cache.o): in function `rocksdb::ZSTDUncompressCachedData::~ZSTDUncompressCachedData()':
/root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
/usr/bin/ld: /root/rocksdb/./util/compression.h:115: undefined reference to `ZSTD_freeDCtx'
collect2: error: ld returned 1 exit status

Dragonboat HEAD with librocksdb-v6.11.4 on the m6g instance with additional CGO_LDFLAGS:

root@ip-172-31-45-27:~/dragonboat# CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -lz -llz4 -lbz2 -lzstd -lsnappy -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb

root@ip-172-31-45-27:~/dragonboat# ldd test-logdb.bin 
	linux-vdso.so.1 (0x0000ffffa00f6000)
	libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffffa009c000)
	liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffffa006e000)
	libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffffa004d000)
	libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffff9ffac000)
	libsnappy.so.1 => /lib/aarch64-linux-gnu/libsnappy.so.1 (0x0000ffff9ff93000)
	libdl.so.2 => /lib/aarch64-linux-gnu/atomics/libdl.so.2 (0x0000ffff9ff7f000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff9fd9d000)
	libm.so.6 => /lib/aarch64-linux-gnu/atomics/libm.so.6 (0x0000ffff9fcf1000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/atomics/libpthread.so.0 (0x0000ffff9fcc2000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff9fc9d000)
	libc.so.6 => /lib/aarch64-linux-gnu/atomics/libc.so.6 (0x0000ffff9fb2e000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffffa00c6000)

root@ip-172-31-45-27:~/dragonboat# ./test-logdb.bin -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-18 20:12:36.099906 I | logdb: using batched ShardedDB
2020-08-18 20:12:36.101090 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (0.14s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-18 20:12:36.236614 I | logdb: using batched ShardedDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.13s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-18 20:12:36.361464 I | logdb: using batched ShardedDB
2020-08-18 20:12:36.564125 I | logdb: idx 48
2020-08-18 20:12:36.564150 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (0.21s)
=== RUN   TestCachedNodeInfoCanBeSet
--- PASS: TestCachedNodeInfoCanBeSet (0.00s)
=== RUN   TestCachedStateCanBeSet
--- PASS: TestCachedStateCanBeSet (0.00s)
=== RUN   TestLastEntryBatchCanBeSetAndGet
--- PASS: TestLastEntryBatchCanBeSetAndGet (0.00s)
=== RUN   TestLastEntryBatchCanBeUpdated
--- PASS: TestLastEntryBatchCanBeUpdated (0.00s)
=== RUN   TestChangeReturnedLastBatchWillNotAffectTheCache
--- PASS: TestChangeReturnedLastBatchWillNotAffectTheCache (0.00s)
=== RUN   TestMaxIndexCanBeSetAndGet
--- PASS: TestMaxIndexCanBeSetAndGet (0.00s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.00s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.00s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.00s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.00s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.00s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.00s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.00s)
=== RUN   TestRDBContextCanBeCreated
--- PASS: TestRDBContextCanBeCreated (0.00s)
=== RUN   TestRDBContextCaBeDestroyed
--- PASS: TestRDBContextCaBeDestroyed (0.00s)
=== RUN   TestRDBContextCaBeReset
--- PASS: TestRDBContextCaBeReset (0.00s)
=== RUN   TestGetValueBuffer
--- PASS: TestGetValueBuffer (0.00s)
=== RUN   TestGetUpdates
--- PASS: TestGetUpdates (0.00s)
=== RUN   TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap
2020-08-18 20:12:36.574681 I | logdb: using plain ShardedDB
2020-08-18 20:12:36.627710 I | logdb: using batched ShardedDB
--- PASS: TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap (0.11s)
=== RUN   TestBootstrapInfoCanBeSavedAndChecked
2020-08-18 20:12:36.680889 I | logdb: using plain ShardedDB
2020-08-18 20:12:36.874961 I | logdb: using batched ShardedDB
--- PASS: TestBootstrapInfoCanBeSavedAndChecked (0.25s)
=== RUN   TestSnapshotHasMaxIndexSet
2020-08-18 20:12:36.928911 I | logdb: using plain ShardedDB
2020-08-18 20:12:36.979349 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotHasMaxIndexSet (0.10s)
=== RUN   TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic
2020-08-18 20:12:37.030853 I | logdb: using plain ShardedDB
2020-08-18 20:12:37.073421 C | logdb: max index not handled, 5, 4
--- PASS: TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic (0.05s)
=== RUN   TestSnapshotsSavedInSaveRaftState
2020-08-18 20:12:37.077466 I | logdb: using plain ShardedDB
2020-08-18 20:12:37.127219 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotsSavedInSaveRaftState (0.10s)
=== RUN   TestSnapshotOnlyNodeIsHandledByReadRaftState
2020-08-18 20:12:37.176227 I | logdb: using plain ShardedDB
2020-08-18 20:12:37.228826 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotOnlyNodeIsHandledByReadRaftState (0.10s)
=== RUN   TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved
2020-08-18 20:12:37.280827 I | logdb: using plain ShardedDB
2020-08-18 20:12:37.332262 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved (0.10s)
=== RUN   TestMaxIndexRuleIsEnforced
2020-08-18 20:12:37.383355 I | logdb: using plain ShardedDB
2020-08-18 20:12:37.438354 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexRuleIsEnforced (0.11s)
=== RUN   TestSavedEntrieseAreOrderedByTheKey
2020-08-18 20:12:37.490583 I | logdb: using plain ShardedDB
2020-08-18 20:12:37.544434 I | logdb: using batched ShardedDB
--- PASS: TestSavedEntrieseAreOrderedByTheKey (0.17s)
=== RUN   TestSaveRaftState
2020-08-18 20:12:37.663133 I | logdb: using plain ShardedDB
2020-08-18 20:12:37.715690 I | logdb: using batched ShardedDB
--- PASS: TestSaveRaftState (0.10s)
=== RUN   TestStateIsUpdated
2020-08-18 20:12:37.764997 I | logdb: using plain ShardedDB
2020-08-18 20:12:37.815526 I | logdb: using batched ShardedDB
--- PASS: TestStateIsUpdated (0.10s)
=== RUN   TestMaxIndexIsUpdated
2020-08-18 20:12:37.865949 I | logdb: using plain ShardedDB
2020-08-18 20:12:37.920774 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexIsUpdated (0.11s)
=== RUN   TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode
2020-08-18 20:12:37.971671 I | logdb: using plain ShardedDB
2020-08-18 20:12:38.022841 I | logdb: using batched ShardedDB
--- PASS: TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode (0.11s)
=== RUN   TestIterateEntriesOnlyReturnCurrentNodeEntries
2020-08-18 20:12:38.078712 I | logdb: using plain ShardedDB
2020-08-18 20:12:38.135210 I | logdb: using batched ShardedDB
--- PASS: TestIterateEntriesOnlyReturnCurrentNodeEntries (0.11s)
=== RUN   TestIterateEntries
2020-08-18 20:12:38.188304 I | logdb: using plain ShardedDB
2020-08-18 20:12:38.317495 I | logdb: using batched ShardedDB
--- PASS: TestIterateEntries (0.18s)
=== RUN   TestDeleteNotExistSnapshotIsAllowed
2020-08-18 20:12:38.368138 I | logdb: using plain ShardedDB
2020-08-18 20:12:38.417363 I | logdb: using batched ShardedDB
--- PASS: TestDeleteNotExistSnapshotIsAllowed (0.10s)
=== RUN   TestSaveSnapshot
2020-08-18 20:12:38.468242 I | logdb: using plain ShardedDB
2020-08-18 20:12:38.519868 I | logdb: using batched ShardedDB
--- PASS: TestSaveSnapshot (0.10s)
=== RUN   TestParseNodeInfoKeyPanicOnUnexpectedKeySize
--- PASS: TestParseNodeInfoKeyPanicOnUnexpectedKeySize (0.00s)
=== RUN   TestSaveEntriesWithIndexGap
2020-08-18 20:12:38.571106 I | logdb: using plain ShardedDB
2020-08-18 20:12:38.621571 I | logdb: using batched ShardedDB
--- PASS: TestSaveEntriesWithIndexGap (0.10s)
=== RUN   TestRemoveEntriesTo
2020-08-18 20:12:38.672943 I | logdb: using plain ShardedDB
2020-08-18 20:12:38.715779 I | logdb: name: sharded-rocksdb
2020-08-18 20:12:38.749152 I | logdb: count: 1, done
2020-08-18 20:12:38.749966 I | logdb: sz: 0
--- PASS: TestRemoveEntriesTo (0.08s)
=== RUN   TestAllWantedEntriesAreAccessible
2020-08-18 20:12:38.753800 I | logdb: using plain ShardedDB
2020-08-18 20:12:38.803736 I | logdb: using batched ShardedDB
2020-08-18 20:12:38.856716 I | logdb: using plain ShardedDB
2020-08-18 20:12:38.904857 I | logdb: using batched ShardedDB
2020-08-18 20:12:38.956190 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.008134 I | logdb: using batched ShardedDB
2020-08-18 20:12:39.057076 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.105643 I | logdb: using batched ShardedDB
2020-08-18 20:12:39.152792 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.202290 I | logdb: using batched ShardedDB
2020-08-18 20:12:39.249285 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.298301 I | logdb: using batched ShardedDB
2020-08-18 20:12:39.348200 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.398330 I | logdb: using batched ShardedDB
2020-08-18 20:12:39.446926 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.562269 I | logdb: using batched ShardedDB
2020-08-18 20:12:39.612069 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.660500 I | logdb: using batched ShardedDB
2020-08-18 20:12:39.708949 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.758224 I | logdb: using batched ShardedDB
2020-08-18 20:12:39.808371 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.861275 I | logdb: using batched ShardedDB
2020-08-18 20:12:39.912077 I | logdb: using plain ShardedDB
2020-08-18 20:12:39.963992 I | logdb: using batched ShardedDB
2020-08-18 20:12:40.014654 I | logdb: using plain ShardedDB
2020-08-18 20:12:40.063249 I | logdb: using batched ShardedDB
2020-08-18 20:12:40.111908 I | logdb: using plain ShardedDB
2020-08-18 20:12:40.249449 I | logdb: using batched ShardedDB
2020-08-18 20:12:40.296952 I | logdb: using plain ShardedDB
2020-08-18 20:12:40.345284 I | logdb: using batched ShardedDB
2020-08-18 20:12:40.395567 I | logdb: using plain ShardedDB
2020-08-18 20:12:40.447291 I | logdb: using batched ShardedDB
2020-08-18 20:12:40.495041 I | logdb: using plain ShardedDB
2020-08-18 20:12:40.542163 I | logdb: using batched ShardedDB
--- PASS: TestAllWantedEntriesAreAccessible (1.84s)
=== RUN   TestReadRaftStateWithSnapshot
2020-08-18 20:12:40.592556 I | logdb: using plain ShardedDB
2020-08-18 20:12:40.639653 I | logdb: using batched ShardedDB
2020-08-18 20:12:40.688195 I | logdb: using plain ShardedDB
2020-08-18 20:12:40.736743 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateWithSnapshot (0.19s)
=== RUN   TestReadRaftStateWithEntriesOnly
2020-08-18 20:12:40.785658 I | logdb: using plain ShardedDB
2020-08-18 20:12:40.834770 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateWithEntriesOnly (0.09s)
=== RUN   TestRemoveNodeData
2020-08-18 20:12:40.881332 I | logdb: using plain ShardedDB
2020-08-18 20:12:40.930071 I | logdb: RemoveNodeData done
2020-08-18 20:12:40.935342 I | logdb: using batched ShardedDB
2020-08-18 20:12:40.995970 I | logdb: RemoveNodeData done
--- PASS: TestRemoveNodeData (0.12s)
=== RUN   TestImportSnapshot
2020-08-18 20:12:41.000581 I | logdb: using plain ShardedDB
2020-08-18 20:12:41.048702 I | logdb: using batched ShardedDB
--- PASS: TestImportSnapshot (0.10s)
=== RUN   TestEntryKeysOrdered
--- PASS: TestEntryKeysOrdered (0.02s)
=== RUN   TestSnapshotKeysOrdered
--- PASS: TestSnapshotKeysOrdered (0.02s)
=== RUN   TestNodeInfoKeyCanBeParsed
--- PASS: TestNodeInfoKeyCanBeParsed (0.00s)
=== RUN   TestKVCanBeCreatedAndClosed
--- PASS: TestKVCanBeCreatedAndClosed (0.01s)
=== RUN   TestKVGetAndSet
--- PASS: TestKVGetAndSet (0.01s)
=== RUN   TestKVValueCanBeDeleted
--- PASS: TestKVValueCanBeDeleted (0.02s)
=== RUN   TestKVWriteBatch
--- PASS: TestKVWriteBatch (0.01s)
=== RUN   TestKVIterateValue
--- PASS: TestKVIterateValue (0.06s)
=== RUN   TestWriteBatchCanBeCleared
--- PASS: TestWriteBatchCanBeCleared (0.02s)
=== RUN   TestHasEntryRecord
--- PASS: TestHasEntryRecord (0.10s)
=== RUN   TestEntriesCanBeRemovedFromKVStore
--- PASS: TestEntriesCanBeRemovedFromKVStore (0.02s)
=== RUN   TestCompactionReleaseStorageSpace
--- PASS: TestCompactionReleaseStorageSpace (0.62s)
=== RUN   TestTailCorruptionIsIgnored
--- PASS: TestTailCorruptionIsIgnored (0.02s)
=== RUN   TestSSTCorruptionIsHandled
--- PASS: TestSSTCorruptionIsHandled (0.03s)
=== RUN   TestWALCorruptionIsHandled
--- PASS: TestWALCorruptionIsHandled (0.01s)
=== RUN   TestRLLTFindConflict
2020-08-18 20:12:42.069252 I | logdb: using plain ShardedDB
--- PASS: TestRLLTFindConflict (0.05s)
=== RUN   TestRLLTIsUpToDate
2020-08-18 20:12:42.116285 I | logdb: using plain ShardedDB
--- PASS: TestRLLTIsUpToDate (0.05s)
=== RUN   TestRLLTAppend
2020-08-18 20:12:42.167337 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.211085 I | logdb: stable first index: 1
2020-08-18 20:12:42.214834 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.258663 I | logdb: stable first index: 1
2020-08-18 20:12:42.262354 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.310219 I | logdb: stable first index: 1
2020-08-18 20:12:42.313718 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.358710 I | logdb: stable first index: 1
--- PASS: TestRLLTAppend (0.20s)
=== RUN   TestRLLTLogMaybeAppend
2020-08-18 20:12:42.362492 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.409422 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.459595 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.509895 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.561068 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.611669 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.662542 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.715095 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.765718 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.816556 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.868664 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.918997 I | logdb: using plain ShardedDB
2020-08-18 20:12:42.969322 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.019029 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.064410 C | raft: entry 1 conflicts with committed entry, committed 1
2020-08-18 20:12:43.068185 I | logdb: using plain ShardedDB
--- PASS: TestRLLTLogMaybeAppend (0.75s)
=== RUN   TestRLLTHasNextEnts
2020-08-18 20:12:43.117303 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.164371 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.211210 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.258226 I | logdb: using plain ShardedDB
--- PASS: TestRLLTHasNextEnts (0.19s)
=== RUN   TestRLLTNextEnts
2020-08-18 20:12:43.304398 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.351870 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.397989 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.444902 I | logdb: using plain ShardedDB
--- PASS: TestRLLTNextEnts (0.19s)
=== RUN   TestRLLTCompaction
2020-08-18 20:12:43.491350 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.545270 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.596182 I | logdb: using plain ShardedDB
--- PASS: TestRLLTCompaction (0.16s)
=== RUN   TestRLLTLogRestore
2020-08-18 20:12:43.645574 I | logdb: using plain ShardedDB
--- PASS: TestRLLTLogRestore (0.05s)
=== RUN   TestRLLTIsOutOfBounds
2020-08-18 20:12:43.692324 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.735429 C | raft: requested range [201,202) is out of bound [101,200]
2020-08-18 20:12:43.735539 C | raft: requested range [202,202) is out of bound [101,200]
--- PASS: TestRLLTIsOutOfBounds (0.05s)
=== RUN   TestRLLTTerm
2020-08-18 20:12:43.739103 I | logdb: using plain ShardedDB
--- PASS: TestRLLTTerm (0.05s)
=== RUN   TestRLLTSlice
2020-08-18 20:12:43.786341 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.892993 C | raft: requested range [200,201) is out of bound [101,199]
--- PASS: TestRLLTSlice (0.11s)
=== RUN   TestLogReaderEntries
2020-08-18 20:12:43.896906 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.945031 I | logdb: using plain ShardedDB
2020-08-18 20:12:43.998450 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.045119 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.093123 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.139281 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.191508 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.241089 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.361152 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.410988 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderEntries (0.57s)
=== RUN   TestLogReaderTerm
2020-08-18 20:12:44.462582 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.513027 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.564771 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.612764 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.660689 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.709676 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
--- PASS: TestLogReaderTerm (0.25s)
=== RUN   TestLogReaderLastIndex
2020-08-18 20:12:44.715019 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderLastIndex (0.05s)
=== RUN   TestLogReaderFirstIndex
2020-08-18 20:12:44.768489 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderFirstIndex (0.05s)
=== RUN   TestLogReaderAppend
2020-08-18 20:12:44.820286 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.873578 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-18 20:12:44.877299 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.931551 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-18 20:12:44.935454 I | logdb: using plain ShardedDB
2020-08-18 20:12:44.984580 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-18 20:12:44.984608 I | logdb: going to check term for index 6
2020-08-18 20:12:44.984616 I | logdb: Term returned
2020-08-18 20:12:44.988260 I | logdb: using plain ShardedDB
2020-08-18 20:12:45.110827 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-18 20:12:45.114912 I | logdb: using plain ShardedDB
2020-08-18 20:12:45.163095 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-18 20:12:45.167411 I | logdb: using plain ShardedDB
2020-08-18 20:12:45.214228 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-18 20:12:45.214265 I | logdb: going to check term for index 6
2020-08-18 20:12:45.214278 I | logdb: Term returned
--- PASS: TestLogReaderAppend (0.40s)
=== RUN   TestLogReaderApplySnapshot
2020-08-18 20:12:45.218836 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderApplySnapshot (0.05s)
=== RUN   TestLogReaderCreateSnapshot
2020-08-18 20:12:45.267868 I | logdb: using plain ShardedDB
2020-08-18 20:12:45.317414 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderCreateSnapshot (0.10s)
=== RUN   TestLogReaderSetRange
2020-08-18 20:12:45.366889 I | logdb: using plain ShardedDB
2020-08-18 20:12:45.415008 I | logdb: using plain ShardedDB
2020-08-18 20:12:45.463411 I | logdb: using plain ShardedDB
2020-08-18 20:12:45.511103 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderSetRange (0.19s)
=== RUN   TestLogReaderGetSnapshot
2020-08-18 20:12:45.560158 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderGetSnapshot (0.05s)
=== RUN   TestLogReaderInitialState
2020-08-18 20:12:45.608447 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderInitialState (0.05s)
=== RUN   TestLogReaderNewLogReader
--- PASS: TestLogReaderNewLogReader (0.00s)
=== RUN   TestInitialState
--- PASS: TestInitialState (0.00s)
=== RUN   TestApplySnapshotUpdateMarkerIndexTerm
--- PASS: TestApplySnapshotUpdateMarkerIndexTerm (0.00s)
=== RUN   TestLogReaderIndexRange
--- PASS: TestLogReaderIndexRange (0.00s)
=== RUN   TestSetRange
--- PASS: TestSetRange (0.00s)
=== RUN   TestSetRangePanicWhenThereIsIndexHole
--- PASS: TestSetRangePanicWhenThereIsIndexHole (0.00s)
PASS

Dragonboat HEAD built with librocksdb-v6.11.4 on the m6g instance with additional CGO_LDFLAGS, run on the RPI:

root@ubuntu:/home/ubuntu# ldd test-logdb.bin 
	linux-vdso.so.1 (0x0000ffffba1ba000)
	libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffffba160000)
	liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffffba132000)
	libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffffba111000)
	libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffffba070000)
	libsnappy.so.1 => /lib/aarch64-linux-gnu/libsnappy.so.1 (0x0000ffffba057000)
	libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffba043000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffb9e61000)
	libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffb9db6000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffb9d86000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffb9d61000)
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffb9bf0000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffffba18a000)

root@ubuntu:/home/ubuntu# ./test-logdb.bin -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-18 20:21:46.793490 I | logdb: using batched ShardedDB
2020-08-18 20:21:46.797407 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (0.88s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-18 20:21:47.020660 I | logdb: using batched ShardedDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.21s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-18 20:21:47.233652 I | logdb: using batched ShardedDB
2020-08-18 20:21:47.422947 I | logdb: idx 48
2020-08-18 20:21:47.423019 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (0.22s)
=== RUN   TestCachedNodeInfoCanBeSet
--- PASS: TestCachedNodeInfoCanBeSet (0.00s)
=== RUN   TestCachedStateCanBeSet
--- PASS: TestCachedStateCanBeSet (0.00s)
=== RUN   TestLastEntryBatchCanBeSetAndGet
--- PASS: TestLastEntryBatchCanBeSetAndGet (0.00s)
=== RUN   TestLastEntryBatchCanBeUpdated
--- PASS: TestLastEntryBatchCanBeUpdated (0.00s)
=== RUN   TestChangeReturnedLastBatchWillNotAffectTheCache
--- PASS: TestChangeReturnedLastBatchWillNotAffectTheCache (0.00s)
=== RUN   TestMaxIndexCanBeSetAndGet
--- PASS: TestMaxIndexCanBeSetAndGet (0.00s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.00s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.00s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.00s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.00s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.01s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.01s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.00s)
=== RUN   TestRDBContextCanBeCreated
--- PASS: TestRDBContextCanBeCreated (0.00s)
=== RUN   TestRDBContextCaBeDestroyed
--- PASS: TestRDBContextCaBeDestroyed (0.00s)
=== RUN   TestRDBContextCaBeReset
--- PASS: TestRDBContextCaBeReset (0.00s)
=== RUN   TestGetValueBuffer
--- PASS: TestGetValueBuffer (0.00s)
=== RUN   TestGetUpdates
--- PASS: TestGetUpdates (0.00s)
=== RUN   TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap
2020-08-18 20:21:47.484975 I | logdb: using plain ShardedDB
2020-08-18 20:21:47.676756 I | logdb: using batched ShardedDB
--- PASS: TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap (0.38s)
=== RUN   TestBootstrapInfoCanBeSavedAndChecked
2020-08-18 20:21:47.867621 I | logdb: using plain ShardedDB
2020-08-18 20:21:48.080719 I | logdb: using batched ShardedDB
--- PASS: TestBootstrapInfoCanBeSavedAndChecked (0.43s)
=== RUN   TestSnapshotHasMaxIndexSet
2020-08-18 20:21:48.292284 I | logdb: using plain ShardedDB
2020-08-18 20:21:48.508156 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotHasMaxIndexSet (0.43s)
=== RUN   TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic
2020-08-18 20:21:48.721872 I | logdb: using plain ShardedDB
2020-08-18 20:21:48.888159 C | logdb: max index not handled, 5, 4
--- PASS: TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic (0.19s)
=== RUN   TestSnapshotsSavedInSaveRaftState
2020-08-18 20:21:48.909499 I | logdb: using plain ShardedDB
2020-08-18 20:21:49.111304 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotsSavedInSaveRaftState (0.40s)
=== RUN   TestSnapshotOnlyNodeIsHandledByReadRaftState
2020-08-18 20:21:49.313050 I | logdb: using plain ShardedDB
2020-08-18 20:21:49.516742 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotOnlyNodeIsHandledByReadRaftState (0.41s)
=== RUN   TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved
2020-08-18 20:21:49.720674 I | logdb: using plain ShardedDB
2020-08-18 20:21:49.927500 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved (0.42s)
=== RUN   TestMaxIndexRuleIsEnforced
2020-08-18 20:21:50.143455 I | logdb: using plain ShardedDB
2020-08-18 20:21:50.347074 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexRuleIsEnforced (0.42s)
=== RUN   TestSavedEntrieseAreOrderedByTheKey
2020-08-18 20:21:50.566826 I | logdb: using plain ShardedDB
SIGILL: illegal instruction
PC=0xc5c664 m=4 sigcode=1
instruction bytes: 0x42 0xe0 0xe1 0xe 0x21 0x0 0x10 0x91 0x29 0x80 0x5e 0xf8 0x0 0x5c 0xca 0x9a

goroutine 0 [idle]:
runtime: unknown pc 0xc5c664
stack: frame={sp:0xffff80ae7b60, fp:0x0} stack=[0xffff802e8980,0xffff80ae8580)
0000ffff80ae7a60:  0000000000000000  0000000000000000 
0000ffff80ae7a70:  0000000000000000  0000000000000000 
0000ffff80ae7a80:  0000000000000000  0000000000000000 
0000ffff80ae7a90:  0000000000000000  0000000000000000 
0000ffff80ae7aa0:  0000000000000000  0000ffff80ae7a68 
0000ffff80ae7ab0:  0000000000000000  0000000000000000 
0000ffff80ae7ac0:  0000000000000000  0000000000000000 
0000ffff80ae7ad0:  0000000000000000  0000000000000000 
0000ffff80ae7ae0:  0000000000000000  0000ffff80ae7aa8 
0000ffff80ae7af0:  0000000000000000  0000000000000000 
0000ffff80ae7b00:  0000000000000000  0000000000000000 
0000ffff80ae7b10:  0000000001000000  0000ff0000000002 
0000ffff80ae7b20:  4000000000000000  0000ffff6c0633b0 
0000ffff80ae7b30:  0000ffff6c0633cc  0000ffff6c0633cc 
0000ffff80ae7b40:  0000000000000000  0000001000000000 
0000ffff80ae7b50:  0000004000000000  0000000100000300 
0000ffff80ae7b60: <0000ffff80ae7bf0  0000000000ac5470 
0000ffff80ae7b70:  0000ffff80ae7dd8  000000000000bfc9 
0000ffff80ae7b80:  0000ffff6c0bd230  0000000000007ff9 
0000ffff80ae7b90:  0000ffff6c0de000  0000000000000001 
0000ffff80ae7ba0:  0000000000000007  0000000000000007 
0000ffff80ae7bb0:  0000000000000000  0000000000000000 
0000ffff80ae7bc0:  0000000000000000  fffffffffffffffe 
0000ffff80ae7bd0:  fffffffffffffffe  00027ff900000000 
0000ffff80ae7be0:  000000006c0753e0  3962c107d8081200 
0000ffff80ae7bf0:  0000ffff80ae7cb0  0000000000a86c58 
0000ffff80ae7c00:  0000ffff6c0c3fe0  0000ffff80ae7dd8 
0000ffff80ae7c10:  00000000012ec000  0000000000000000 
0000ffff80ae7c20:  0000ffff6c0bd230  0000ffff6c0c4c50 
0000ffff80ae7c30:  0000ffff6c0bd230  0000000000000001 
0000ffff80ae7c40:  0000000000000000  0000ffff80ae7dd8 
0000ffff80ae7c50:  0000000000f132c8  0000ffff80ae7c90 
runtime: unknown pc 0xc5c664
stack: frame={sp:0xffff80ae7b60, fp:0x0} stack=[0xffff802e8980,0xffff80ae8580)
0000ffff80ae7a60:  0000000000000000  0000000000000000 
0000ffff80ae7a70:  0000000000000000  0000000000000000 
0000ffff80ae7a80:  0000000000000000  0000000000000000 
0000ffff80ae7a90:  0000000000000000  0000000000000000 
0000ffff80ae7aa0:  0000000000000000  0000ffff80ae7a68 
0000ffff80ae7ab0:  0000000000000000  0000000000000000 
0000ffff80ae7ac0:  0000000000000000  0000000000000000 
0000ffff80ae7ad0:  0000000000000000  0000000000000000 
0000ffff80ae7ae0:  0000000000000000  0000ffff80ae7aa8 
0000ffff80ae7af0:  0000000000000000  0000000000000000 
0000ffff80ae7b00:  0000000000000000  0000000000000000 
0000ffff80ae7b10:  0000000001000000  0000ff0000000002 
0000ffff80ae7b20:  4000000000000000  0000ffff6c0633b0 
0000ffff80ae7b30:  0000ffff6c0633cc  0000ffff6c0633cc 
0000ffff80ae7b40:  0000000000000000  0000001000000000 
0000ffff80ae7b50:  0000004000000000  0000000100000300 
0000ffff80ae7b60: <0000ffff80ae7bf0  0000000000ac5470 
0000ffff80ae7b70:  0000ffff80ae7dd8  000000000000bfc9 
0000ffff80ae7b80:  0000ffff6c0bd230  0000000000007ff9 
0000ffff80ae7b90:  0000ffff6c0de000  0000000000000001 
0000ffff80ae7ba0:  0000000000000007  0000000000000007 
0000ffff80ae7bb0:  0000000000000000  0000000000000000 
0000ffff80ae7bc0:  0000000000000000  fffffffffffffffe 
0000ffff80ae7bd0:  fffffffffffffffe  00027ff900000000 
0000ffff80ae7be0:  000000006c0753e0  3962c107d8081200 
0000ffff80ae7bf0:  0000ffff80ae7cb0  0000000000a86c58 
0000ffff80ae7c00:  0000ffff6c0c3fe0  0000ffff80ae7dd8 
0000ffff80ae7c10:  00000000012ec000  0000000000000000 
0000ffff80ae7c20:  0000ffff6c0bd230  0000ffff6c0c4c50 
0000ffff80ae7c30:  0000ffff6c0bd230  0000000000000001 
0000ffff80ae7c40:  0000000000000000  0000ffff80ae7dd8 
0000ffff80ae7c50:  0000000000f132c8  0000ffff80ae7c90 

goroutine 73 [syscall]:
runtime.cgocall(0x9f0920, 0x400014f318, 0x4000188068)
	/usr/local/go/src/runtime/cgocall.go:133 +0x50 fp=0x400014f2e0 sp=0x400014f2a0 pc=0x50ffe0
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb._Cfunc_rocksdb_write(0xffff6c065e00, 0xffff6c065de0, 0xffff6c03e010, 0x4000188068)
	_cgo_gotypes.go:4070 +0x40 fp=0x400014f310 sp=0x400014f2e0 pc=0x99d8e0
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write.func1(0x400000e100, 0x4000188048, 0x4000188060, 0x4000188068)
	/root/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0xec fp=0x400014f360 sp=0x400014f310 pc=0x9a98ac
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write(0x400000e100, 0x4000188048, 0x4000188060, 0x0, 0x0)
	/root/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0x60 fp=0x400014f3c0 sp=0x400014f360 pc=0x9a0720
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb.(*KV).CommitWriteBatch(0x4000374080, 0xefd1e0, 0x4000188060, 0x1, 0xefd1e0)
	/root/dragonboat/internal/logdb/kv/rocksdb/kv_rocksdb.go:329 +0x50 fp=0x400014f400 sp=0x400014f3c0 pc=0x9b2f00
github.com/lni/dragonboat/v3/internal/logdb.(*db).saveRaftState(0x40001c0420, 0x400017a540, 0x1, 0x1, 0xeffc40, 0x40003d8000, 0x400014fa58, 0x9dfed8)
	/root/dragonboat/internal/logdb/db.go:206 +0x1ec fp=0x400014fa10 sp=0x400014f400 pc=0x9bd1ec
github.com/lni/dragonboat/v3/internal/logdb.(*ShardedDB).SaveRaftState(0x40003c20a0, 0x400017a540, 0x1, 0x1, 0xeffc40, 0x40003d8000, 0x266, 0x4cc)
	/root/dragonboat/internal/logdb/sharded.go:175 +0x90 fp=0x400014fa60 sp=0x400014fa10 pc=0x9c4960
github.com/lni/dragonboat/v3/internal/logdb.TestSavedEntrieseAreOrderedByTheKey.func1(0x4000082d80, 0xf01fe0, 0x40003c20a0)
	/root/dragonboat/internal/logdb/db_test.go:465 +0x45c fp=0x400014fe40 sp=0x400014fa60 pc=0x9dff1c
github.com/lni/dragonboat/v3/internal/logdb.runLogDBTestAs(0x4000082d80, 0x593d00, 0xe67748, 0xf01ea0, 0x1379b20)
	/root/dragonboat/internal/logdb/db_test.go:104 +0x2e0 fp=0x400014ff00 sp=0x400014fe40 pc=0x9caf30
github.com/lni/dragonboat/v3/internal/logdb.runLogDBTest(0x4000082d80, 0xe67748, 0xf01ea0, 0x1379b20)
	/root/dragonboat/internal/logdb/db_test.go:108 +0x44 fp=0x400014ff40 sp=0x400014ff00 pc=0x9cafe4
github.com/lni/dragonboat/v3/internal/logdb.TestSavedEntrieseAreOrderedByTheKey(0x4000082d80)
	/root/dragonboat/internal/logdb/db_test.go:492 +0x54 fp=0x400014ff70 sp=0x400014ff40 pc=0x9cb444
testing.tRunner(0x4000082d80, 0xe67750)
	/usr/local/go/src/testing/testing.go:1108 +0xdc fp=0x400014ffc0 sp=0x400014ff70 pc=0x6048bc
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm64.s:1136 +0x4 fp=0x400014ffc0 sp=0x400014ffc0 pc=0x5733c4
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1159 +0x2ec

goroutine 1 [chan receive]:
testing.(*T).Run(0x4000082d80, 0xe0c6d6, 0x23, 0xe67750, 0x5f3c3801)
	/usr/local/go/src/testing/testing.go:1160 +0x308
testing.runTests.func1(0x4000104900)
	/usr/local/go/src/testing/testing.go:1430 +0x74
testing.tRunner(0x4000104900, 0x400015dd98)
	/usr/local/go/src/testing/testing.go:1108 +0xdc
testing.runTests(0x40003d4ea0, 0x12fcac0, 0x63, 0x63, 0x0, 0x0, 0x0, 0x2)
	/usr/local/go/src/testing/testing.go:1428 +0x294
testing.(*M).Run(0x40003d8180, 0x0)
	/usr/local/go/src/testing/testing.go:1338 +0x218
main.main()
	_testmain.go:239 +0x15c

goroutine 46 [select]:
github.com/lni/dragonboat/v3/internal/logdb.(*ShardedDB).compactionWorkerMain(0x40003c20a0)
	/root/dragonboat/internal/logdb/sharded.go:307 +0x78
github.com/lni/dragonboat/v3/internal/logdb.OpenShardedDB.func1()
	/root/dragonboat/internal/logdb/sharded.go:131 +0x28
github.com/lni/goutils/syncutil.(*Stopper).runWorker.func1(0x400000e140, 0x400011c0e0, 0x0, 0x0, 0x40003ca080)
	/root/go/pkg/mod/github.com/lni/[email protected]/syncutil/stopper.go:104 +0x50
created by github.com/lni/goutils/syncutil.(*Stopper).runWorker
	/root/go/pkg/mod/github.com/lni/[email protected]/syncutil/stopper.go:94 +0x88

r0      0x466fe44
r1      0xffff6c0de000
r2      0x0
r3      0x7bf9
r4      0xffff6c0e5c00
r5      0x1e
r6      0xd0cae680
r7      0x58d316cf
r8      0x30000
r9      0x1
r10     0x3
r11     0xffff80ae8158
r12     0xe
r13     0xffff80ae8560
r14     0x40001c65b0
r15     0x1c017f617461642d
r16     0xc0ad50
r17     0xffffa81213e8
r18     0x2
r19     0x7ff9
r20     0xffff6c0bd230
r21     0xffff80ae7c78
r22     0x12ec000
r23     0x7
r24     0xffff6c0de000
r25     0xffff80ae7bd8
r26     0x7
r27     0xffff80ae7c78
r28     0xffff80ae7c60
r29     0xffff80ae7b60
lr      0xac52d0
sp      0xffff80ae7b60
pc      0xc5c664
fault   0x0

@jeremyhahn
Copy link
Author

jeremyhahn commented Aug 18, 2020

shared_lib test results

Dragonboat HEAD with librocksdb-v6.11.4 built on m6g, run on m6g:

root@ip-172-31-45-27:~/dragonboat# CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb

root@ip-172-31-45-27:~/dragonboat# ldd test-logdb.bin 
	linux-vdso.so.1 (0x0000ffff7f932000)
	librocksdb.so.6.11 => /usr/local/lib/librocksdb.so.6.11 (0x0000ffff7f2f2000)
	libdl.so.2 => /lib/aarch64-linux-gnu/atomics/libdl.so.2 (0x0000ffff7f2de000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/atomics/libpthread.so.0 (0x0000ffff7f2af000)
	libc.so.6 => /lib/aarch64-linux-gnu/atomics/libc.so.6 (0x0000ffff7f140000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffff7f902000)
	librt.so.1 => /lib/aarch64-linux-gnu/atomics/librt.so.1 (0x0000ffff7f128000)
	libsnappy.so.1 => /lib/aarch64-linux-gnu/libsnappy.so.1 (0x0000ffff7f10f000)
	libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff7f0e5000)
	libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffff7f0c4000)
	liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffff7f096000)
	libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffff7eff5000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff7ee13000)
	libm.so.6 => /lib/aarch64-linux-gnu/atomics/libm.so.6 (0x0000ffff7ed67000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff7ed42000)

root@ip-172-31-45-27:~/dragonboat# ./test-logdb.bin -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-18 21:12:55.320881 I | logdb: using batched ShardedDB
2020-08-18 21:12:55.322145 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (0.05s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-18 21:12:55.374753 I | logdb: using batched ShardedDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.05s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-18 21:12:55.428367 I | logdb: using batched ShardedDB
2020-08-18 21:12:55.478190 I | logdb: idx 48
2020-08-18 21:12:55.478210 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (0.05s)
=== RUN   TestCachedNodeInfoCanBeSet
--- PASS: TestCachedNodeInfoCanBeSet (0.00s)
=== RUN   TestCachedStateCanBeSet
--- PASS: TestCachedStateCanBeSet (0.00s)
=== RUN   TestLastEntryBatchCanBeSetAndGet
--- PASS: TestLastEntryBatchCanBeSetAndGet (0.00s)
=== RUN   TestLastEntryBatchCanBeUpdated
--- PASS: TestLastEntryBatchCanBeUpdated (0.00s)
=== RUN   TestChangeReturnedLastBatchWillNotAffectTheCache
--- PASS: TestChangeReturnedLastBatchWillNotAffectTheCache (0.00s)
=== RUN   TestMaxIndexCanBeSetAndGet
--- PASS: TestMaxIndexCanBeSetAndGet (0.00s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.00s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.00s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.00s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.00s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.00s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.00s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.00s)
=== RUN   TestRDBContextCanBeCreated
--- PASS: TestRDBContextCanBeCreated (0.00s)
=== RUN   TestRDBContextCaBeDestroyed
--- PASS: TestRDBContextCaBeDestroyed (0.00s)
=== RUN   TestRDBContextCaBeReset
--- PASS: TestRDBContextCaBeReset (0.00s)
=== RUN   TestGetValueBuffer
--- PASS: TestGetValueBuffer (0.00s)
=== RUN   TestGetUpdates
--- PASS: TestGetUpdates (0.00s)
=== RUN   TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap
2020-08-18 21:12:55.489761 I | logdb: using plain ShardedDB
2020-08-18 21:12:55.558314 I | logdb: using batched ShardedDB
--- PASS: TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap (0.12s)
=== RUN   TestBootstrapInfoCanBeSavedAndChecked
2020-08-18 21:12:55.605254 I | logdb: using plain ShardedDB
2020-08-18 21:12:55.657489 I | logdb: using batched ShardedDB
--- PASS: TestBootstrapInfoCanBeSavedAndChecked (0.20s)
=== RUN   TestSnapshotHasMaxIndexSet
2020-08-18 21:12:55.801063 I | logdb: using plain ShardedDB
2020-08-18 21:12:55.849591 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotHasMaxIndexSet (0.10s)
=== RUN   TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic
2020-08-18 21:12:55.900885 I | logdb: using plain ShardedDB
2020-08-18 21:12:55.944691 C | logdb: max index not handled, 5, 4
--- PASS: TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic (0.05s)
=== RUN   TestSnapshotsSavedInSaveRaftState
2020-08-18 21:12:55.949020 I | logdb: using plain ShardedDB
2020-08-18 21:12:55.999026 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotsSavedInSaveRaftState (0.10s)
=== RUN   TestSnapshotOnlyNodeIsHandledByReadRaftState
2020-08-18 21:12:56.047523 I | logdb: using plain ShardedDB
2020-08-18 21:12:56.094892 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotOnlyNodeIsHandledByReadRaftState (0.09s)
=== RUN   TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved
2020-08-18 21:12:56.142307 I | logdb: using plain ShardedDB
2020-08-18 21:12:56.188908 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved (0.09s)
=== RUN   TestMaxIndexRuleIsEnforced
2020-08-18 21:12:56.237611 I | logdb: using plain ShardedDB
2020-08-18 21:12:56.288663 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexRuleIsEnforced (0.10s)
=== RUN   TestSavedEntrieseAreOrderedByTheKey
2020-08-18 21:12:56.341669 I | logdb: using plain ShardedDB
2020-08-18 21:12:56.396213 I | logdb: using batched ShardedDB
--- PASS: TestSavedEntrieseAreOrderedByTheKey (0.11s)
=== RUN   TestSaveRaftState
2020-08-18 21:12:56.448265 I | logdb: using plain ShardedDB
2020-08-18 21:12:56.498442 I | logdb: using batched ShardedDB
--- PASS: TestSaveRaftState (0.10s)
=== RUN   TestStateIsUpdated
2020-08-18 21:12:56.546825 I | logdb: using plain ShardedDB
2020-08-18 21:12:56.597090 I | logdb: using batched ShardedDB
--- PASS: TestStateIsUpdated (0.10s)
=== RUN   TestMaxIndexIsUpdated
2020-08-18 21:12:56.651545 I | logdb: using plain ShardedDB
2020-08-18 21:12:56.706732 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexIsUpdated (0.11s)
=== RUN   TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode
2020-08-18 21:12:56.760818 I | logdb: using plain ShardedDB
2020-08-18 21:12:56.817013 I | logdb: using batched ShardedDB
--- PASS: TestReadAllEntriesOnlyReturnEntriesFromTheSpecifiedNode (0.11s)
=== RUN   TestIterateEntriesOnlyReturnCurrentNodeEntries
2020-08-18 21:12:56.868186 I | logdb: using plain ShardedDB
2020-08-18 21:12:56.920795 I | logdb: using batched ShardedDB
--- PASS: TestIterateEntriesOnlyReturnCurrentNodeEntries (0.10s)
=== RUN   TestIterateEntries
2020-08-18 21:12:56.972944 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.025449 I | logdb: using batched ShardedDB
--- PASS: TestIterateEntries (0.10s)
=== RUN   TestDeleteNotExistSnapshotIsAllowed
2020-08-18 21:12:57.076800 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.125071 I | logdb: using batched ShardedDB
--- PASS: TestDeleteNotExistSnapshotIsAllowed (0.10s)
=== RUN   TestSaveSnapshot
2020-08-18 21:12:57.178206 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.228021 I | logdb: using batched ShardedDB
--- PASS: TestSaveSnapshot (0.10s)
=== RUN   TestParseNodeInfoKeyPanicOnUnexpectedKeySize
--- PASS: TestParseNodeInfoKeyPanicOnUnexpectedKeySize (0.00s)
=== RUN   TestSaveEntriesWithIndexGap
2020-08-18 21:12:57.277483 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.327455 I | logdb: using batched ShardedDB
--- PASS: TestSaveEntriesWithIndexGap (0.10s)
=== RUN   TestRemoveEntriesTo
2020-08-18 21:12:57.377164 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.418820 I | logdb: name: sharded-rocksdb
2020-08-18 21:12:57.450245 I | logdb: count: 1, done
2020-08-18 21:12:57.451132 I | logdb: sz: 0
--- PASS: TestRemoveEntriesTo (0.08s)
=== RUN   TestAllWantedEntriesAreAccessible
2020-08-18 21:12:57.454563 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.502795 I | logdb: using batched ShardedDB
2020-08-18 21:12:57.553362 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.604888 I | logdb: using batched ShardedDB
2020-08-18 21:12:57.654729 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.702974 I | logdb: using batched ShardedDB
2020-08-18 21:12:57.768998 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.819876 I | logdb: using batched ShardedDB
2020-08-18 21:12:57.870190 I | logdb: using plain ShardedDB
2020-08-18 21:12:57.919696 I | logdb: using batched ShardedDB
2020-08-18 21:12:57.970162 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.018480 I | logdb: using batched ShardedDB
2020-08-18 21:12:58.071484 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.124117 I | logdb: using batched ShardedDB
2020-08-18 21:12:58.176131 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.226404 I | logdb: using batched ShardedDB
2020-08-18 21:12:58.275766 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.324324 I | logdb: using batched ShardedDB
2020-08-18 21:12:58.372182 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.420307 I | logdb: using batched ShardedDB
2020-08-18 21:12:58.470279 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.521907 I | logdb: using batched ShardedDB
2020-08-18 21:12:58.575949 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.630339 I | logdb: using batched ShardedDB
2020-08-18 21:12:58.685318 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.734378 I | logdb: using batched ShardedDB
2020-08-18 21:12:58.786835 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.837713 I | logdb: using batched ShardedDB
2020-08-18 21:12:58.890285 I | logdb: using plain ShardedDB
2020-08-18 21:12:58.943768 I | logdb: using batched ShardedDB
2020-08-18 21:12:59.002202 I | logdb: using plain ShardedDB
2020-08-18 21:12:59.057914 I | logdb: using batched ShardedDB
2020-08-18 21:12:59.115973 I | logdb: using plain ShardedDB
2020-08-18 21:12:59.167592 I | logdb: using batched ShardedDB
--- PASS: TestAllWantedEntriesAreAccessible (1.76s)
=== RUN   TestReadRaftStateWithSnapshot
2020-08-18 21:12:59.217893 I | logdb: using plain ShardedDB
2020-08-18 21:12:59.267423 I | logdb: using batched ShardedDB
2020-08-18 21:12:59.320890 I | logdb: using plain ShardedDB
2020-08-18 21:12:59.375565 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateWithSnapshot (0.21s)
=== RUN   TestReadRaftStateWithEntriesOnly
2020-08-18 21:12:59.426454 I | logdb: using plain ShardedDB
2020-08-18 21:12:59.478457 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateWithEntriesOnly (0.10s)
=== RUN   TestRemoveNodeData
2020-08-18 21:12:59.529110 I | logdb: using plain ShardedDB
2020-08-18 21:12:59.582692 I | logdb: RemoveNodeData done
2020-08-18 21:12:59.587209 I | logdb: using batched ShardedDB
2020-08-18 21:12:59.636436 I | logdb: RemoveNodeData done
--- PASS: TestRemoveNodeData (0.11s)
=== RUN   TestImportSnapshot
2020-08-18 21:12:59.641867 I | logdb: using plain ShardedDB
2020-08-18 21:12:59.696788 I | logdb: using batched ShardedDB
--- PASS: TestImportSnapshot (0.11s)
=== RUN   TestEntryKeysOrdered
--- PASS: TestEntryKeysOrdered (0.02s)
=== RUN   TestSnapshotKeysOrdered
--- PASS: TestSnapshotKeysOrdered (0.02s)
=== RUN   TestNodeInfoKeyCanBeParsed
--- PASS: TestNodeInfoKeyCanBeParsed (0.00s)
=== RUN   TestKVCanBeCreatedAndClosed
--- PASS: TestKVCanBeCreatedAndClosed (0.01s)
=== RUN   TestKVGetAndSet
--- PASS: TestKVGetAndSet (0.07s)
=== RUN   TestKVValueCanBeDeleted
--- PASS: TestKVValueCanBeDeleted (0.02s)
=== RUN   TestKVWriteBatch
--- PASS: TestKVWriteBatch (0.01s)
=== RUN   TestKVIterateValue
--- PASS: TestKVIterateValue (0.12s)
=== RUN   TestWriteBatchCanBeCleared
--- PASS: TestWriteBatchCanBeCleared (0.02s)
=== RUN   TestHasEntryRecord
--- PASS: TestHasEntryRecord (0.01s)
=== RUN   TestEntriesCanBeRemovedFromKVStore
--- PASS: TestEntriesCanBeRemovedFromKVStore (0.02s)
=== RUN   TestCompactionReleaseStorageSpace
--- PASS: TestCompactionReleaseStorageSpace (0.57s)
=== RUN   TestTailCorruptionIsIgnored
--- PASS: TestTailCorruptionIsIgnored (0.02s)
=== RUN   TestSSTCorruptionIsHandled
--- PASS: TestSSTCorruptionIsHandled (0.03s)
=== RUN   TestWALCorruptionIsHandled
--- PASS: TestWALCorruptionIsHandled (0.01s)
=== RUN   TestRLLTFindConflict
2020-08-18 21:13:00.705518 I | logdb: using plain ShardedDB
--- PASS: TestRLLTFindConflict (0.08s)
=== RUN   TestRLLTIsUpToDate
2020-08-18 21:13:00.784499 I | logdb: using plain ShardedDB
--- PASS: TestRLLTIsUpToDate (0.06s)
=== RUN   TestRLLTAppend
2020-08-18 21:13:00.846514 I | logdb: using plain ShardedDB
2020-08-18 21:13:00.904108 I | logdb: stable first index: 1
2020-08-18 21:13:00.908313 I | logdb: using plain ShardedDB
2020-08-18 21:13:00.958376 I | logdb: stable first index: 1
2020-08-18 21:13:00.962302 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.011097 I | logdb: stable first index: 1
2020-08-18 21:13:01.014845 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.061504 I | logdb: stable first index: 1
--- PASS: TestRLLTAppend (0.22s)
=== RUN   TestRLLTLogMaybeAppend
2020-08-18 21:13:01.065303 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.114858 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.164491 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.215157 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.264208 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.313394 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.363223 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.412228 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.460746 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.508084 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.560627 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.611835 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.661067 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.709232 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.753224 C | raft: entry 1 conflicts with committed entry, committed 1
2020-08-18 21:13:01.757154 I | logdb: using plain ShardedDB
--- PASS: TestRLLTLogMaybeAppend (0.75s)
=== RUN   TestRLLTHasNextEnts
2020-08-18 21:13:01.813633 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.861681 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.909376 I | logdb: using plain ShardedDB
2020-08-18 21:13:01.956178 I | logdb: using plain ShardedDB
--- PASS: TestRLLTHasNextEnts (0.19s)
=== RUN   TestRLLTNextEnts
2020-08-18 21:13:02.005082 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.052273 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.100927 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.148825 I | logdb: using plain ShardedDB
--- PASS: TestRLLTNextEnts (0.19s)
=== RUN   TestRLLTCompaction
2020-08-18 21:13:02.196464 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.248560 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.304141 I | logdb: using plain ShardedDB
--- PASS: TestRLLTCompaction (0.16s)
=== RUN   TestRLLTLogRestore
2020-08-18 21:13:02.356046 I | logdb: using plain ShardedDB
--- PASS: TestRLLTLogRestore (0.05s)
=== RUN   TestRLLTIsOutOfBounds
2020-08-18 21:13:02.404167 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.449426 C | raft: requested range [201,202) is out of bound [101,200]
2020-08-18 21:13:02.449452 C | raft: requested range [202,202) is out of bound [101,200]
--- PASS: TestRLLTIsOutOfBounds (0.05s)
=== RUN   TestRLLTTerm
2020-08-18 21:13:02.453141 I | logdb: using plain ShardedDB
--- PASS: TestRLLTTerm (0.05s)
=== RUN   TestRLLTSlice
2020-08-18 21:13:02.500224 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.612532 C | raft: requested range [200,201) is out of bound [101,199]
--- PASS: TestRLLTSlice (0.12s)
=== RUN   TestLogReaderEntries
2020-08-18 21:13:02.617052 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.665773 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.713502 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.762250 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.863338 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.912158 I | logdb: using plain ShardedDB
2020-08-18 21:13:02.961659 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.011998 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.063298 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.115247 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderEntries (0.55s)
=== RUN   TestLogReaderTerm
2020-08-18 21:13:03.166624 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.215387 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.267410 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.316554 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.365241 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.409595 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
--- PASS: TestLogReaderTerm (0.25s)
=== RUN   TestLogReaderLastIndex
2020-08-18 21:13:03.414573 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderLastIndex (0.05s)
=== RUN   TestLogReaderFirstIndex
2020-08-18 21:13:03.463077 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderFirstIndex (0.05s)
=== RUN   TestLogReaderAppend
2020-08-18 21:13:03.511243 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.556871 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-18 21:13:03.560397 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.606201 E | logdb: logreader [00002:12345] index 3 term 3 length 3, low 6 high 7, lastIndex 5
2020-08-18 21:13:03.609994 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.654724 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-18 21:13:03.654757 I | logdb: going to check term for index 6
2020-08-18 21:13:03.654766 I | logdb: Term returned
2020-08-18 21:13:03.658796 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.704229 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-18 21:13:03.707750 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.753884 E | logdb: logreader [00002:12345] index 3 term 3 length 2, low 5 high 6, lastIndex 4
2020-08-18 21:13:03.757926 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.802732 E | logdb: logreader [00002:12345] index 3 term 3 length 4, low 7 high 8, lastIndex 6
2020-08-18 21:13:03.802770 I | logdb: going to check term for index 6
2020-08-18 21:13:03.802780 I | logdb: Term returned
--- PASS: TestLogReaderAppend (0.30s)
=== RUN   TestLogReaderApplySnapshot
2020-08-18 21:13:03.807707 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderApplySnapshot (0.05s)
=== RUN   TestLogReaderCreateSnapshot
2020-08-18 21:13:03.857302 I | logdb: using plain ShardedDB
2020-08-18 21:13:03.910831 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderCreateSnapshot (0.10s)
=== RUN   TestLogReaderSetRange
2020-08-18 21:13:03.960246 I | logdb: using plain ShardedDB
2020-08-18 21:13:04.012638 I | logdb: using plain ShardedDB
2020-08-18 21:13:04.063601 I | logdb: using plain ShardedDB
2020-08-18 21:13:04.111520 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderSetRange (0.20s)
=== RUN   TestLogReaderGetSnapshot
2020-08-18 21:13:04.159987 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderGetSnapshot (0.05s)
=== RUN   TestLogReaderInitialState
2020-08-18 21:13:04.208918 I | logdb: using plain ShardedDB
--- PASS: TestLogReaderInitialState (0.05s)
=== RUN   TestLogReaderNewLogReader
--- PASS: TestLogReaderNewLogReader (0.00s)
=== RUN   TestInitialState
--- PASS: TestInitialState (0.00s)
=== RUN   TestApplySnapshotUpdateMarkerIndexTerm
--- PASS: TestApplySnapshotUpdateMarkerIndexTerm (0.00s)
=== RUN   TestLogReaderIndexRange
--- PASS: TestLogReaderIndexRange (0.00s)
=== RUN   TestSetRange
--- PASS: TestSetRange (0.00s)
=== RUN   TestSetRangePanicWhenThereIsIndexHole
--- PASS: TestSetRangePanicWhenThereIsIndexHole (0.00s)
PASS

test-logdb.bin and librocksdb-v6.11.4 built on m6g, run on RPI:

root@ubuntu:/home/ubuntu# ldd ./test-logdb.bin.6.11.4 
	linux-vdso.so.1 (0x0000ffff9fb1d000)
	librocksdb.so.6.11 => /usr/local/lib/librocksdb.so.6.11 (0x0000ffff9f4dd000)
	libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffff9f4c9000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff9f499000)
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff9f328000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffff9faed000)
	librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffff9f310000)
	libsnappy.so.1 => /lib/aarch64-linux-gnu/libsnappy.so.1 (0x0000ffff9f2f7000)
	libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff9f2cd000)
	libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffff9f2ac000)
	liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffff9f27e000)
	libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffff9f1dd000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff9effb000)
	libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff9ef50000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff9ef2b000)

root@ubuntu:/home/ubuntu# ./test-logdb.bin.6.11.4 -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-18 22:33:36.704695 I | logdb: using batched ShardedDB
2020-08-18 22:33:36.708770 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (0.65s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-18 22:33:36.943920 I | logdb: using batched ShardedDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.22s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-18 22:33:37.165190 I | logdb: using batched ShardedDB
2020-08-18 22:33:37.368675 I | logdb: idx 48
2020-08-18 22:33:37.368750 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (0.23s)
=== RUN   TestCachedNodeInfoCanBeSet
--- PASS: TestCachedNodeInfoCanBeSet (0.00s)
=== RUN   TestCachedStateCanBeSet
--- PASS: TestCachedStateCanBeSet (0.00s)
=== RUN   TestLastEntryBatchCanBeSetAndGet
--- PASS: TestLastEntryBatchCanBeSetAndGet (0.00s)
=== RUN   TestLastEntryBatchCanBeUpdated
--- PASS: TestLastEntryBatchCanBeUpdated (0.00s)
=== RUN   TestChangeReturnedLastBatchWillNotAffectTheCache
--- PASS: TestChangeReturnedLastBatchWillNotAffectTheCache (0.00s)
=== RUN   TestMaxIndexCanBeSetAndGet
--- PASS: TestMaxIndexCanBeSetAndGet (0.00s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.00s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.00s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.00s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.00s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.01s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.00s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.02s)
=== RUN   TestRDBContextCanBeCreated
--- PASS: TestRDBContextCanBeCreated (0.00s)
=== RUN   TestRDBContextCaBeDestroyed
--- PASS: TestRDBContextCaBeDestroyed (0.00s)
=== RUN   TestRDBContextCaBeReset
--- PASS: TestRDBContextCaBeReset (0.00s)
=== RUN   TestGetValueBuffer
--- PASS: TestGetValueBuffer (0.00s)
=== RUN   TestGetUpdates
--- PASS: TestGetUpdates (0.00s)
=== RUN   TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap
2020-08-18 22:33:37.440400 I | logdb: using plain ShardedDB
2020-08-18 22:33:37.649542 I | logdb: using batched ShardedDB
--- PASS: TestRDBReturnErrNoBootstrapInfoWhenNoBootstrap (0.42s)
=== RUN   TestBootstrapInfoCanBeSavedAndChecked
2020-08-18 22:33:37.859921 I | logdb: using plain ShardedDB
2020-08-18 22:33:38.137263 I | logdb: using batched ShardedDB
--- PASS: TestBootstrapInfoCanBeSavedAndChecked (0.51s)
=== RUN   TestSnapshotHasMaxIndexSet
2020-08-18 22:33:38.370199 I | logdb: using plain ShardedDB
2020-08-18 22:33:38.590439 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotHasMaxIndexSet (0.44s)
=== RUN   TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic
2020-08-18 22:33:38.803952 I | logdb: using plain ShardedDB
2020-08-18 22:33:38.981303 C | logdb: max index not handled, 5, 4
--- PASS: TestSaveSnapshotTogetherWithUnexpectedEntriesWillPanic (0.20s)
=== RUN   TestSnapshotsSavedInSaveRaftState
2020-08-18 22:33:39.004072 I | logdb: using plain ShardedDB
2020-08-18 22:33:39.259915 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotsSavedInSaveRaftState (0.48s)
=== RUN   TestSnapshotOnlyNodeIsHandledByReadRaftState
2020-08-18 22:33:39.487782 I | logdb: using plain ShardedDB
2020-08-18 22:33:39.715812 I | logdb: using batched ShardedDB
--- PASS: TestSnapshotOnlyNodeIsHandledByReadRaftState (0.45s)
=== RUN   TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved
2020-08-18 22:33:39.936867 I | logdb: using plain ShardedDB
2020-08-18 22:33:40.156429 I | logdb: using batched ShardedDB
--- PASS: TestReadRaftStateReturnsNoSavedLogErrorWhenStateIsNeverSaved (0.44s)
=== RUN   TestMaxIndexRuleIsEnforced
2020-08-18 22:33:40.379662 I | logdb: using plain ShardedDB
2020-08-18 22:33:40.593550 I | logdb: using batched ShardedDB
--- PASS: TestMaxIndexRuleIsEnforced (0.43s)
=== RUN   TestSavedEntrieseAreOrderedByTheKey
2020-08-18 22:33:40.812966 I | logdb: using plain ShardedDB
SIGILL: illegal instruction
PC=0xffffa941199c m=4 sigcode=1
instruction bytes: 0x42 0xe0 0xe1 0xe 0x21 0x0 0x10 0x91 0x29 0x80 0x5e 0xf8 0x0 0x5c 0xca 0x9a

goroutine 0 [idle]:
runtime: unknown pc 0xffffa941199c
stack: frame={sp:0xffff80ca5b70, fp:0x0} stack=[0xffff804a6980,0xffff80ca6580)
0000ffff80ca5a70:  0000000000000000  0000000000000000 
0000ffff80ca5a80:  0000000000000000  0000000000000000 
0000ffff80ca5a90:  0000000000000000  0000000000000000 
0000ffff80ca5aa0:  0000000000000000  0000002100000000 
0000ffff80ca5ab0:  0000000000000000  0000000000000000 
0000ffff80ca5ac0:  0000000000000000  0000000000000000 
0000ffff80ca5ad0:  0000001100000007  0000000000000018 
0000ffff80ca5ae0:  0000000001000000  0000ffff80ca5aa8 
0000ffff80ca5af0:  0000000000000000  0000000000000000 
0000ffff80ca5b00:  0000000000000000  0000000000000000 
0000ffff80ca5b10:  0000000000000000  0000001000000000 
0000ffff80ca5b20:  0000004000000000  0000000163200300 
0000ffff80ca5b30:  ffffffff00000002  ffffffff000000c8 
0000ffff80ca5b40:  0000ff0000000001  0000000040000000 
0000ffff80ca5b50:  0000000000000000  0000000000000008 
0000ffff80ca5b60:  0000ffff780c9a50  0000ffff780c4a40 
0000ffff80ca5b70: <0000ffff80ca5c00  0000ffffa91cc418 
0000ffff80ca5b80:  0000ffff80ca5de8  000000000000bfc9 
0000ffff80ca5b90:  0000ffff78061ff0  0000000000007ff9 
0000ffff80ca5ba0:  0000ffff780e02b0  0000000000000001 
0000ffff80ca5bb0:  0000000000000007  0000000000000007 
0000ffff80ca5bc0:  0000000000000000  0000000100000064 
0000ffff80ca5bd0:  0000ffffa953e7d8  0000000000000000 
0000ffff80ca5be0:  0000000000000000  00027ff900000000 
0000ffff80ca5bf0:  0000000000000000  8060fade183f7b00 
0000ffff80ca5c00:  0000ffff80ca5cc0  0000ffffa918d1f8 
0000ffff80ca5c10:  0000ffff78032ee0  0000ffff80ca5de8 
0000ffff80ca5c20:  0000ffffa952b000  0000000000000000 
0000ffff80ca5c30:  0000ffff78061ff0  0000ffff78033b50 
0000ffff80ca5c40:  0000ffff78061ff0  0000000000000001 
0000ffff80ca5c50:  0000000000000000  0000ffff80ca5de8 
0000ffff80ca5c60:  0000ffffa944da30  0000ffff80ca5ca0 
runtime: unknown pc 0xffffa941199c
stack: frame={sp:0xffff80ca5b70, fp:0x0} stack=[0xffff804a6980,0xffff80ca6580)
0000ffff80ca5a70:  0000000000000000  0000000000000000 
0000ffff80ca5a80:  0000000000000000  0000000000000000 
0000ffff80ca5a90:  0000000000000000  0000000000000000 
0000ffff80ca5aa0:  0000000000000000  0000002100000000 
0000ffff80ca5ab0:  0000000000000000  0000000000000000 
0000ffff80ca5ac0:  0000000000000000  0000000000000000 
0000ffff80ca5ad0:  0000001100000007  0000000000000018 
0000ffff80ca5ae0:  0000000001000000  0000ffff80ca5aa8 
0000ffff80ca5af0:  0000000000000000  0000000000000000 
0000ffff80ca5b00:  0000000000000000  0000000000000000 
0000ffff80ca5b10:  0000000000000000  0000001000000000 
0000ffff80ca5b20:  0000004000000000  0000000163200300 
0000ffff80ca5b30:  ffffffff00000002  ffffffff000000c8 
0000ffff80ca5b40:  0000ff0000000001  0000000040000000 
0000ffff80ca5b50:  0000000000000000  0000000000000008 
0000ffff80ca5b60:  0000ffff780c9a50  0000ffff780c4a40 
0000ffff80ca5b70: <0000ffff80ca5c00  0000ffffa91cc418 
0000ffff80ca5b80:  0000ffff80ca5de8  000000000000bfc9 
0000ffff80ca5b90:  0000ffff78061ff0  0000000000007ff9 
0000ffff80ca5ba0:  0000ffff780e02b0  0000000000000001 
0000ffff80ca5bb0:  0000000000000007  0000000000000007 
0000ffff80ca5bc0:  0000000000000000  0000000100000064 
0000ffff80ca5bd0:  0000ffffa953e7d8  0000000000000000 
0000ffff80ca5be0:  0000000000000000  00027ff900000000 
0000ffff80ca5bf0:  0000000000000000  8060fade183f7b00 
0000ffff80ca5c00:  0000ffff80ca5cc0  0000ffffa918d1f8 
0000ffff80ca5c10:  0000ffff78032ee0  0000ffff80ca5de8 
0000ffff80ca5c20:  0000ffffa952b000  0000000000000000 
0000ffff80ca5c30:  0000ffff78061ff0  0000ffff78033b50 
0000ffff80ca5c40:  0000ffff78061ff0  0000000000000001 
0000ffff80ca5c50:  0000000000000000  0000ffff80ca5de8 
0000ffff80ca5c60:  0000ffffa944da30  0000ffff80ca5ca0 

goroutine 90 [syscall]:
runtime.cgocall(0x8f17c0, 0x400019d318, 0x4000126068)
	/usr/local/go/src/runtime/cgocall.go:133 +0x50 fp=0x400019d2e0 sp=0x400019d2a0 pc=0x410e80
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb._Cfunc_rocksdb_write(0xffff780beca0, 0xffff78091240, 0xffff78169310, 0x4000126068)
	_cgo_gotypes.go:4065 +0x40 fp=0x400019d310 sp=0x400019d2e0 pc=0x89e780
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write.func1(0x4000212100, 0x4000126040, 0x4000126060, 0x4000126068)
	/root/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0xec fp=0x400019d360 sp=0x400019d310 pc=0x8aa74c
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write(0x4000212100, 0x4000126040, 0x4000126060, 0x0, 0x0)
	/root/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0x60 fp=0x400019d3c0 sp=0x400019d360 pc=0x8a15c0
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb.(*KV).CommitWriteBatch(0x40002e6080, 0xb11160, 0x4000126060, 0x1, 0xb11160)
	/root/dragonboat/internal/logdb/kv/rocksdb/kv_rocksdb.go:329 +0x50 fp=0x400019d400 sp=0x400019d3c0 pc=0x8b3da0
github.com/lni/dragonboat/v3/internal/logdb.(*db).saveRaftState(0x400009c090, 0x40001c8540, 0x1, 0x1, 0xb13bc0, 0x4000112080, 0x400019da58, 0x8e0d78)
	/root/dragonboat/internal/logdb/db.go:206 +0x1ec fp=0x400019da10 sp=0x400019d400 pc=0x8be08c
github.com/lni/dragonboat/v3/internal/logdb.(*ShardedDB).SaveRaftState(0x40001000a0, 0x40001c8540, 0x1, 0x1, 0xb13bc0, 0x4000112080, 0x266, 0x4cc)
	/root/dragonboat/internal/logdb/sharded.go:175 +0x90 fp=0x400019da60 sp=0x400019da10 pc=0x8c5800
github.com/lni/dragonboat/v3/internal/logdb.TestSavedEntrieseAreOrderedByTheKey.func1(0x4000430a80, 0xb15f60, 0x40001000a0)
	/root/dragonboat/internal/logdb/db_test.go:465 +0x45c fp=0x400019de40 sp=0x400019da60 pc=0x8e0dbc
github.com/lni/dragonboat/v3/internal/logdb.runLogDBTestAs(0x4000430a80, 0x494b00, 0xa7b6c8, 0xb15e20, 0xed53e0)
	/root/dragonboat/internal/logdb/db_test.go:104 +0x2e0 fp=0x400019df00 sp=0x400019de40 pc=0x8cbdd0
github.com/lni/dragonboat/v3/internal/logdb.runLogDBTest(0x4000430a80, 0xa7b6c8, 0xb15e20, 0xed53e0)
	/root/dragonboat/internal/logdb/db_test.go:108 +0x44 fp=0x400019df40 sp=0x400019df00 pc=0x8cbe84
github.com/lni/dragonboat/v3/internal/logdb.TestSavedEntrieseAreOrderedByTheKey(0x4000430a80)
	/root/dragonboat/internal/logdb/db_test.go:492 +0x54 fp=0x400019df70 sp=0x400019df40 pc=0x8cc2e4
testing.tRunner(0x4000430a80, 0xa7b6d0)
	/usr/local/go/src/testing/testing.go:1108 +0xdc fp=0x400019dfc0 sp=0x400019df70 pc=0x50575c
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm64.s:1136 +0x4 fp=0x400019dfc0 sp=0x400019dfc0 pc=0x474264
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1159 +0x2ec

goroutine 1 [chan receive]:
testing.(*T).Run(0x4000430a80, 0xa20656, 0x23, 0xa7b6d0, 0x5f3c5701)
	/usr/local/go/src/testing/testing.go:1160 +0x308
testing.runTests.func1(0x4000001b00)
	/usr/local/go/src/testing/testing.go:1430 +0x74
testing.tRunner(0x4000001b00, 0x40001abd98)
	/usr/local/go/src/testing/testing.go:1108 +0xdc
testing.runTests(0x400041ef20, 0xe60aa0, 0x63, 0x63, 0x0, 0x0, 0x0, 0x2)
	/usr/local/go/src/testing/testing.go:1428 +0x294
testing.(*M).Run(0x4000420180, 0x0)
	/usr/local/go/src/testing/testing.go:1338 +0x218
main.main()
	_testmain.go:239 +0x15c

goroutine 91 [select]:
github.com/lni/dragonboat/v3/internal/logdb.(*ShardedDB).compactionWorkerMain(0x40001000a0)
	/root/dragonboat/internal/logdb/sharded.go:307 +0x78
github.com/lni/dragonboat/v3/internal/logdb.OpenShardedDB.func1()
	/root/dragonboat/internal/logdb/sharded.go:131 +0x28
github.com/lni/goutils/syncutil.(*Stopper).runWorker.func1(0x4000212140, 0x4000110088, 0x0, 0x0, 0x4000226080)
	/root/go/pkg/mod/github.com/lni/[email protected]/syncutil/stopper.go:104 +0x50
created by github.com/lni/goutils/syncutil.(*Stopper).runWorker
	/root/go/pkg/mod/github.com/lni/[email protected]/syncutil/stopper.go:94 +0x88

r0      0x466fe44
r1      0xffff780e02b0
r2      0x0
r3      0x7bf9
r4      0xffff780e7eb0
r5      0x1e
r6      0xd0cae680
r7      0x58d316cf
r8      0x30000
r9      0x1
r10     0x3
r11     0xffff80ca6140
r12     0xe
r13     0xffff80ca6560
r14     0x40002145b0
r15     0x1c017f617461642d
r16     0xffffa95326a8
r17     0xffffa9411550
r18     0x2
r19     0x7ff9
r20     0xffff78061ff0
r21     0xffff80ca5c88
r22     0xffffa952b000
r23     0x7
r24     0xffff780e02b0
r25     0xffff80ca5be8
r26     0x7
r27     0xffff80ca5c88
r28     0xffff80ca5c70
r29     0xffff80ca5b70
lr      0xffffa91cc278
sp      0xffff80ca5b70
pc      0xffffa941199c
fault   0x0

Dragonboat HEAD and librocksdb-v6.11.4 built and run on RPI:

CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb

root@ubuntu:~/sources/dragonboat# ldd test-logdb.bin 
	linux-vdso.so.1 (0x0000ffffa5b5b000)
	librocksdb.so.6.11 => /usr/local/lib/librocksdb.so.6.11 (0x0000ffffa551b000)
	libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffa5507000)
	libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffa54d7000)
	libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffa5366000)
	/lib/ld-linux-aarch64.so.1 (0x0000ffffa5b2b000)
	librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffffa534e000)
	libsnappy.so.1 => /lib/aarch64-linux-gnu/libsnappy.so.1 (0x0000ffffa5335000)
	libgflags.so.2.2 => /lib/aarch64-linux-gnu/libgflags.so.2.2 (0x0000ffffa5302000)
	libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffffa52d8000)
	libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffffa52b7000)
	liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffffa5289000)
	libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffffa51e8000)
	libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffa5006000)
	libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffa4f5b000)
	libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffa4f36000)

root@ubuntu:~/sources/dragonboat# ./test-logdb.bin -test.v
=== RUN   TestGetBatchIDRange
--- PASS: TestGetBatchIDRange (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenIndexHasGap
--- PASS: TestEntryBatchFieldsNotCompactedWhenIndexHasGap (0.00s)
=== RUN   TestEntryBatchFieldsNotCompactedWhenMultipleTerms
--- PASS: TestEntryBatchFieldsNotCompactedWhenMultipleTerms (0.00s)
=== RUN   TestEntryBatchFieldsCanBeCompacted
--- PASS: TestEntryBatchFieldsCanBeCompacted (0.00s)
=== RUN   TestNotCompactedEntryBatchIsNotRestored
--- PASS: TestNotCompactedEntryBatchIsNotRestored (0.00s)
=== RUN   TestCompactBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestCompactBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestRestoreBatchFieldsPanicWhenBatchIsTooSmall
--- PASS: TestRestoreBatchFieldsPanicWhenBatchIsTooSmall (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenInputBatchIsEmpty
--- PASS: TestMergeFirstBatchPanicWhenInputBatchIsEmpty (0.00s)
=== RUN   TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent
--- PASS: TestMergeFirstBatchPanicWhenIncomingBatchIsNotMoreRecent (0.00s)
=== RUN   TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch
--- PASS: TestIncomingBatchIsTheMergedBatchWhenMoreRecentThanLastBatch (0.00s)
=== RUN   TestGetMergedFirstBatch
--- PASS: TestGetMergedFirstBatch (0.00s)
=== RUN   TestEntryBatchWillNotBeMergedToPreviousBatch
2020-08-18 22:30:06.290679 I | logdb: using batched ShardedRDB
2020-08-18 22:30:06.294549 I | rocksdb: RocksDB's recovery mode set to kTolerateCorruptedTailRecords
--- PASS: TestEntryBatchWillNotBeMergedToPreviousBatch (0.82s)
=== RUN   TestEntryBatchMergedNotLastBatch
2020-08-18 22:30:07.115765 I | logdb: using batched ShardedRDB
--- PASS: TestEntryBatchMergedNotLastBatch (0.80s)
=== RUN   TestSaveEntriesAcrossMultipleBatches
2020-08-18 22:30:07.921323 I | logdb: using batched ShardedRDB
2020-08-18 22:30:08.635146 I | logdb: idx 48
2020-08-18 22:30:08.635232 I | logdb: idx 49
--- PASS: TestSaveEntriesAcrossMultipleBatches (0.76s)
=== RUN   TestCompactionTaskCanBeCreated
--- PASS: TestCompactionTaskCanBeCreated (0.01s)
=== RUN   TestCompactionTaskCanBeAdded
--- PASS: TestCompactionTaskCanBeAdded (0.01s)
=== RUN   TestCompactionTaskCanBeUpdated
--- PASS: TestCompactionTaskCanBeUpdated (0.00s)
=== RUN   TestCompactionDoneChanIsRetained
--- PASS: TestCompactionDoneChanIsRetained (0.00s)
=== RUN   TestCompactionTaskGetReturnTheExpectedValue
--- PASS: TestCompactionTaskGetReturnTheExpectedValue (0.00s)
=== RUN   TestCompactionTaskGetReturnAllExpectedValues
--- PASS: TestCompactionTaskGetReturnAllExpectedValues (0.02s)
=== RUN   TestMovingCompactionIndexBackWillCausePanic
--- PASS: TestMovingCompactionIndexBackWillCausePanic (0.00s)
=== RUN   TestKVCanBeCreatedAndClosed
--- PASS: TestKVCanBeCreatedAndClosed (0.05s)
=== RUN   TestKVGetAndSet
--- PASS: TestKVGetAndSet (0.27s)
=== RUN   TestKVValueCanBeDeleted
--- PASS: TestKVValueCanBeDeleted (0.07s)
=== RUN   TestKVWriteBatch
--- PASS: TestKVWriteBatch (0.06s)
=== RUN   TestKVIterateValue
--- PASS: TestKVIterateValue (0.19s)
=== RUN   TestWriteBatchCanBeCleared
--- PASS: TestWriteBatchCanBeCleared (0.08s)
=== RUN   TestHasEntryRecord
--- PASS: TestHasEntryRecord (0.07s)
=== RUN   TestEntriesCanBeRemovedFromKVStore
SIGILL: illegal instruction
PC=0xffff9ab3f9ac m=7 sigcode=1
instruction bytes: 0x42 0xe0 0xe1 0xe 0x21 0x0 0x10 0x91 0x29 0x80 0x5e 0xf8 0x0 0x5c 0xca 0x9a

goroutine 0 [idle]:
runtime: unknown pc 0xffff9ab3f9ac
stack: frame={sp:0xfffeda7fab70, fp:0x0} stack=[0xfffed9ffb980,0xfffeda7fb580)
0000fffeda7faa70:  0000000000000000  0000000000000000 
0000fffeda7faa80:  0000000000000000  0000000000000000 
0000fffeda7faa90:  0000000000000000  0000000000000000 
0000fffeda7faaa0:  0000000000000000  0000000000000000 
0000fffeda7faab0:  0000000000000000  0000000000000000 
0000fffeda7faac0:  0000000000000000  0000000000000000 
0000fffeda7faad0:  0000001100000007  0000000000000018 
0000fffeda7faae0:  0000000001000000  0000fffeda7faaa8 
0000fffeda7faaf0:  0000000000000000  0000000000000000 
0000fffeda7fab00:  0000000000000000  0000000000000000 
0000fffeda7fab10:  0000000000000000  0000001000000000 
0000fffeda7fab20:  0000004000000000  0000000100000300 
0000fffeda7fab30:  ffffffff00000002  ffffffff000000c8 
0000fffeda7fab40:  0000000000000001  0000000040000000 
0000fffeda7fab50:  0000000000000000  0000000000000008 
0000fffeda7fab60:  0000ffff34020800  0000ffff34045ad0 
0000fffeda7fab70: <0000fffeda7fac00  0000ffff9a8fb428 
0000fffeda7fab80:  0000fffeda7fade8  0000000000001268 
0000fffeda7fab90:  0000ffff340cbcc0  0000000000001268 
0000fffeda7faba0:  0000ffff3401a260  0000000000000001 
0000fffeda7fabb0:  0000000000000007  0000000000000007 
0000fffeda7fabc0:  0000000000000000  0000000100000064 
0000fffeda7fabd0:  0000ffff9ac6c7d8  0000000000000000 
0000fffeda7fabe0:  0000000000000000  0001126800000000 
0000fffeda7fabf0:  0000000000000000  f8c42307f0530c00 
0000fffeda7fac00:  0000fffeda7facc0  0000ffff9a8bb208 
0000fffeda7fac10:  0000ffff34002ff0  0000fffeda7fade8 
0000fffeda7fac20:  0000ffff9ac59000  0000000000000000 
0000fffeda7fac30:  0000ffff340cbcc0  0000ffff34003c60 
0000fffeda7fac40:  0000ffff340cbcc0  0000000000000001 
0000fffeda7fac50:  0000000000000000  0000fffeda7fade8 
0000fffeda7fac60:  0000ffff9ab7ba70  0000fffeda7faca0 
runtime: unknown pc 0xffff9ab3f9ac
stack: frame={sp:0xfffeda7fab70, fp:0x0} stack=[0xfffed9ffb980,0xfffeda7fb580)
0000fffeda7faa70:  0000000000000000  0000000000000000 
0000fffeda7faa80:  0000000000000000  0000000000000000 
0000fffeda7faa90:  0000000000000000  0000000000000000 
0000fffeda7faaa0:  0000000000000000  0000000000000000 
0000fffeda7faab0:  0000000000000000  0000000000000000 
0000fffeda7faac0:  0000000000000000  0000000000000000 
0000fffeda7faad0:  0000001100000007  0000000000000018 
0000fffeda7faae0:  0000000001000000  0000fffeda7faaa8 
0000fffeda7faaf0:  0000000000000000  0000000000000000 
0000fffeda7fab00:  0000000000000000  0000000000000000 
0000fffeda7fab10:  0000000000000000  0000001000000000 
0000fffeda7fab20:  0000004000000000  0000000100000300 
0000fffeda7fab30:  ffffffff00000002  ffffffff000000c8 
0000fffeda7fab40:  0000000000000001  0000000040000000 
0000fffeda7fab50:  0000000000000000  0000000000000008 
0000fffeda7fab60:  0000ffff34020800  0000ffff34045ad0 
0000fffeda7fab70: <0000fffeda7fac00  0000ffff9a8fb428 
0000fffeda7fab80:  0000fffeda7fade8  0000000000001268 
0000fffeda7fab90:  0000ffff340cbcc0  0000000000001268 
0000fffeda7faba0:  0000ffff3401a260  0000000000000001 
0000fffeda7fabb0:  0000000000000007  0000000000000007 
0000fffeda7fabc0:  0000000000000000  0000000100000064 
0000fffeda7fabd0:  0000ffff9ac6c7d8  0000000000000000 
0000fffeda7fabe0:  0000000000000000  0001126800000000 
0000fffeda7fabf0:  0000000000000000  f8c42307f0530c00 
0000fffeda7fac00:  0000fffeda7facc0  0000ffff9a8bb208 
0000fffeda7fac10:  0000ffff34002ff0  0000fffeda7fade8 
0000fffeda7fac20:  0000ffff9ac59000  0000000000000000 
0000fffeda7fac30:  0000ffff340cbcc0  0000ffff34003c60 
0000fffeda7fac40:  0000ffff340cbcc0  0000000000000001 
0000fffeda7fac50:  0000000000000000  0000fffeda7fade8 
0000fffeda7fac60:  0000ffff9ab7ba70  0000fffeda7faca0 

goroutine 39 [syscall]:
runtime.cgocall(0x6914c0, 0x4000041c28, 0x4000096030)
	/usr/local/go/src/runtime/cgocall.go:133 +0x50 fp=0x4000041bf0 sp=0x4000041bb0 pc=0x410e60
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb._Cfunc_rocksdb_write(0xffff340128c0, 0xffff3400ef50, 0xffff3401d710, 0x4000096030)
	_cgo_gotypes.go:4065 +0x40 fp=0x4000041c20 sp=0x4000041bf0 pc=0x5fa5c0
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write.func1(0x400009c0a0, 0x4000096008, 0x4000096028, 0x4000096030)
	/root/sources/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0xec fp=0x4000041c70 sp=0x4000041c20 pc=0x60658c
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb/gorocksdb.(*DB).Write(0x400009c0a0, 0x4000096008, 0x4000096028, 0x0, 0x0)
	/root/sources/dragonboat/internal/logdb/kv/rocksdb/gorocksdb/db.go:381 +0x60 fp=0x4000041cd0 sp=0x4000041c70 pc=0x5fd400
github.com/lni/dragonboat/v3/internal/logdb/kv/rocksdb.(*KV).CommitWriteBatch(0x4000056080, 0x78f240, 0x4000096028, 0x1c, 0x4000014b60)
	/root/sources/dragonboat/internal/logdb/kv/rocksdb/kv_rocksdb.go:323 +0x50 fp=0x4000041d10 sp=0x4000041cd0 pc=0x60fa90
github.com/lni/dragonboat/v3/internal/logdb.TestEntriesCanBeRemovedFromKVStore.func1(0x4000082600, 0x790d00, 0x4000056080)
	/root/sources/dragonboat/internal/logdb/kv_test.go:290 +0x174 fp=0x4000041e70 sp=0x4000041d10 pc=0x67ee84
github.com/lni/dragonboat/v3/internal/logdb.runKVTest(0x4000082600, 0x73f440, 0x791240, 0x9b4d40)
	/root/sources/dragonboat/internal/logdb/kv_test.go:58 +0x1a0 fp=0x4000041f40 sp=0x4000041e70 pc=0x6695a0
github.com/lni/dragonboat/v3/internal/logdb.TestEntriesCanBeRemovedFromKVStore(0x4000082600)
	/root/sources/dragonboat/internal/logdb/kv_test.go:325 +0x54 fp=0x4000041f70 sp=0x4000041f40 pc=0x669ac4
testing.tRunner(0x4000082600, 0x73f448)
	/usr/local/go/src/testing/testing.go:1108 +0xdc fp=0x4000041fc0 sp=0x4000041f70 pc=0x4fad1c
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm64.s:1136 +0x4 fp=0x4000041fc0 sp=0x4000041fc0 pc=0x473384
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1159 +0x2ec

goroutine 1 [chan receive]:
testing.(*T).Run(0x4000082600, 0x732018, 0x22, 0x73f448, 0x5f3c5601)
	/usr/local/go/src/testing/testing.go:1160 +0x308
testing.runTests.func1(0x4000001b00)
	/usr/local/go/src/testing/testing.go:1430 +0x74
testing.tRunner(0x4000001b00, 0x4000139d98)
	/usr/local/go/src/testing/testing.go:1108 +0xdc
testing.runTests(0x400000e5c0, 0x951c60, 0x63, 0x63, 0x0, 0x0, 0x0, 0x2)
	/usr/local/go/src/testing/testing.go:1428 +0x294
testing.(*M).Run(0x4000126100, 0x0)
	/usr/local/go/src/testing/testing.go:1338 +0x218
main.main()
	_testmain.go:239 +0x15c

r0      0xbc6266eb
r1      0xffff3401a260
r2      0x0
r3      0xe68
r4      0xffff3401b260
r5      0x3
r6      0x7631c980
r7      0xbbbe1fc8
r8      0x100000000000000
r9      0x0
r10     0x11c010000000000
r11     0xfffeda7fb140
r12     0x7
r13     0xfffeda7fb560
r14     0x100000000000000
r15     0x3800000000000000
r16     0xffff9ac606a8
r17     0xffff9ab3f560
r18     0x2
r19     0x1268
r20     0xffff340cbcc0
r21     0xfffeda7fac88
r22     0xffff9ac59000
r23     0x7
r24     0xffff3401a260
r25     0xfffeda7fabe8
r26     0x7
r27     0xfffeda7fac88
r28     0xfffeda7fac70
r29     0xfffeda7fab70
lr      0xffff9a8fb288
sp      0xfffeda7fab70
pc      0xffff9ab3f9ac
fault   0x0

Dragonboat HEAD and librocksdb-v6.11.4 built on RPI, run on mg6:

// rpi
root@ubuntu:~/sources/dragonboat# CGO_LDFLAGS="-L/usr/local/lib -lrocksdb -ldl" CGO_CFLAGS="-I/usr/local/include" go test -c -o test-logdb.bin -tags="dragonboat_rocksdb_test" -count=1 -v    github.com/lni/dragonboat/v3/internal/logdb

// mg6 instance
root@ip-172-31-45-27:/home/ubuntu# ./test-logdb.bin -test.v
./test-logdb.bin: error while loading shared libraries: libgflags.so.2.2: cannot open shared object file: No such file or directory

@lni
Copy link
Owner

lni commented Aug 19, 2020

As you can see from the above static_lib test results, the same test executable that works fine on m6g would cause illegal instruction error on Raspberry Pi4. It seems to me that there are some inconsistent behaviors between the ARM64 processors used on m6g and the one on Raspberry Pi4.

I now have the feeling that the error should be reproducible using a minimum Go program (without any Dragonboat code) that uses gorocksdb to open a DB and write a record to it. If such a minimum program can be constructed to reproduce the error, please raise an issue with the Go project. Another quick check you may want to do is to see what actual instruction (pointed by the PC register) was considered illegal. That might provide extra info on what is going on.

Based on what we have seen in the past couple of days, I think the issue is highly unlikely related to any Dragonboat code.

@lni lni changed the title gorocksdb core dump on raspios 64bit gorocksdb core dump on Raspberry Pi 4's BCM2711 processor Aug 21, 2020
@lni
Copy link
Owner

lni commented Jan 22, 2021

facebook/rocksdb#7233 seems to be the fix for this issue. Not verified on my end as I don't have any Raspberry Pi hardware.

@lni lni closed this as completed Jan 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants