최신 블록 싱크 시 blockchain.(*BlockChain).insertChain 에서 발생하는 에러

genesis 블록부터 sync하여 모든 블록의 state를 저장하는 archive node를 운영하고 있습니다.
(config. ADDITIONAL="–gcmode archive")

최신 블록까지 따라온 후에 정상적으로 싱크가 되지 않고 kend가 down됩니다.

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x131a4e3]

goroutine 73414 [running]:
github.com/klaytn/klaytn/blockchain/types.(*Block).Root(...)
	/ext-go/1/src/github.com/klaytn/klaytn/blockchain/types/block.go:295
github.com/klaytn/klaytn/blockchain.(*BlockChain).insertChain.func1(0x0, 0xc0003ce800, 0xc0a591b1f0, 0xc08eb29a50, 0xc0892d5169d3a4b4, 0xf175ce96f, 0x306fea0)
	/ext-go/1/src/github.com/klaytn/klaytn/blockchain/blockchain.go:1787 +0x63
created by github.com/klaytn/klaytn/blockchain.(*BlockChain).insertChain
	/ext-go/1/src/github.com/klaytn/klaytn/blockchain/blockchain.go:1786 +0x1279

ken 버전: v1.8.2

isArchiveMode=true 인 것과 관련있는것인가요?

INFO[03/30,11:43:51 Z] [5] Inserted a new block                      number=86756666 hash=e3aac6…af0da5 txs=15    gas=4446840  elapsed=37.160ms   processTxs=26.219ms  finalize=3.120ms   validateState=798.9µs   totalWrite=6.487147ms   trieWrite=6.204431ms
INFO[03/30,11:43:52 Z] [5] Inserted a new block                      number=86756667 hash=c64b61…ab11af txs=19    gas=1983624  elapsed=98.303ms   processTxs=88.581ms  finalize=1.728ms   validateState=187.557µs totalWrite=7.284242ms   trieWrite=6.972463ms
INFO[03/30,11:43:52 Z] [5] Inserted a new block                      number=86756668 hash=68b12b…d48819 txs=16    gas=1536538  elapsed=18.528ms   processTxs=11.744ms  finalize=1.508ms   validateState=143.333µs totalWrite=4.161751ms   trieWrite=3.888676ms
WARN[03/30,11:43:52 Z] [5] failed to get StateDB for prefetcher      err="missing trie node 396979836ab41669086ddd6510ca5d8cd38f67f7a4a322e1e62b1add436ed476 (path )" parentBlockNum=86756670 currBlockNum=86756668
WARN[03/30,11:43:52 Z] [5] failed to get StateDB for prefetcher      err="missing trie node d97c1a71c622270ac66b5604198324b00b99d1299dc0b1dc3b749a1373a4419c (path )" parentBlockNum=86756669 currBlockNum=86756668
INFO[03/30,11:43:53 Z] [5] Inserted a new block                      number=86756669 hash=6024c0…0cc82e txs=10    gas=877921   elapsed=11.899ms   processTxs=8.447ms   finalize=538.885µs validateState=25.751µs  totalWrite=2.092608ms   trieWrite=1.823923ms
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x131a4e3]

goroutine 422516 [running]:
github.com/klaytn/klaytn/blockchain/types.(*Block).Root(...)
	/ext-go/1/src/github.com/klaytn/klaytn/blockchain/types/block.go:295
github.com/klaytn/klaytn/blockchain.(*BlockChain).insertChain.func1(0x0, 0xc000267400, 0xc08ac209a0, 0xc0b2c182d0, 0xc0892e7e5ca6bae5, 0x2390f367d0, 0x306fea0)
	/ext-go/1/src/github.com/klaytn/klaytn/blockchain/blockchain.go:1787 +0x63
created by github.com/klaytn/klaytn/blockchain.(*BlockChain).insertChain
	/ext-go/1/src/github.com/klaytn/klaytn/blockchain/blockchain.go:1786 +0x1279

상세한 로그까지 공유주셔서 감사합니다.
공유주신 로그만 보면, 블록 싱크 속도를 향상시키기 위한 기능인 Prefetcher 에서 오류가 발생한 것으로 추정됩니다.
코어 개발팀에서 추가 테스트 및 원인분석을 해보겠습니다.

아직 본격적으로 분석을 진행하지 않았지만 Prefetcher 기능을 끄는 것으로 재발을 막을 수 있지 않을까 생각됩니다.
이 기능을 끄면 블록 처리 속도가 저하될 수는 있지만 블록 처리 과정에는 영향을 주지 않습니다.
kend.conf 파일 ADDITIONAL에 아래 설정을 추가하면 Prefetcher를 끌 수 있습니다.

--statedb.cache.num-fetcher-prefetch-worker 0

혹시 다른 이슈나 추가적인 정보있으시면 공유주시면 감사하겠습니다.

감사합니다.

답변 감사합니다.
말씀주신 설정으로 우선 에러는 발생하지 않고 노드가 작동하고 있습니다.
싱크는 몇 블록씩 늦는 듯 합니다.
추가 정보 있으면 공유드리겠습니다.

공유주신 이슈를 해결하는 개선내용이 개발 완료되었으며, 4월말~5월초 사이에 출시될 Klaytn v1.8.3 버전에 반영될 예정입니다. 해당 버전이 정식 출시되면, 노드 버전 업데이트와 함께 --statedb.cache.num-fetcher-prefetch-worker 0 설정하신 내용을 제거하셔도 될 것 같습니다.

이슈 사항에 대해 리포팅해주셔서 감사합니다!