From d5f11561ac724840535d5d3b173480fdf7630931 Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Tue, 11 Jun 2019 16:27:47 +0200 Subject: [PATCH] Catch and log panic in blockbook main --- bchain/coins/nuls/nulsparser_test.go | 2 +- bchain/coins/ritocoin/ritocoinrpc.go | 2 +- blockbook.go | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bchain/coins/nuls/nulsparser_test.go b/bchain/coins/nuls/nulsparser_test.go index 058e2db9..d87686ed 100644 --- a/bchain/coins/nuls/nulsparser_test.go +++ b/bchain/coins/nuls/nulsparser_test.go @@ -347,7 +347,7 @@ func TestUnpackTx(t *testing.T) { func TestDeriveAddressDescriptorsFromTo(t *testing.T) { parser := NewNulsParser(GetChainParams("main"), &btc.Configuration{}) - + // test xpub xprv math ,and get private key xprv := "xprv9yEvwSfPanK5gLYVnYvNyF2CEWJx1RsktQtKDeT6jnCnqASBiPCvFYHFSApXv39bZbF6hRaha1kWQBVhN1xjo7NHuhAn5uUfzy79TBuGiHh" xpub := "xpub6CEHLxCHR9sNtpcxtaTPLNxvnY9SQtbcFdov22riJ7jmhxmLFvXAoLbjHSzwXwNNuxC1jUP6tsHzFV9rhW9YKELfmR9pJaKFaM8C3zMPgjw" diff --git a/bchain/coins/ritocoin/ritocoinrpc.go b/bchain/coins/ritocoin/ritocoinrpc.go index c096e2d8..0c6cef08 100644 --- a/bchain/coins/ritocoin/ritocoinrpc.go +++ b/bchain/coins/ritocoin/ritocoinrpc.go @@ -31,7 +31,7 @@ func NewRitocoinRPC(config json.RawMessage, pushHandler func(bchain.Notification // Initialize initializes RitocoinRPC instance. func (b *RitocoinRPC) Initialize() error { - ci, err := b.GetChainInfo() + ci, err := b.GetChainInfo() if err != nil { return err } diff --git a/blockbook.go b/blockbook.go index a4581111..444f60f4 100644 --- a/blockbook.go +++ b/blockbook.go @@ -15,6 +15,7 @@ import ( _ "net/http/pprof" "os" "os/signal" + "runtime/debug" "strings" "sync/atomic" "syscall" @@ -105,6 +106,13 @@ func init() { } func main() { + defer func() { + if e := recover(); e != nil { + glog.Error("main recovered from panic: ", e) + debug.PrintStack() + os.Exit(-1) + } + }() os.Exit(mainWithExitCode()) }