Skip to content

Commit 440b046

Browse files
Merge pull request #6522 from oasisprotocol/martin/fixup/log-before-exit
go/oasis-node/cmd/node: Log error on exit
2 parents 4d70017 + be1ad1f commit 440b046

3 files changed

Lines changed: 17 additions & 64 deletions

File tree

.changelog/6522.trivial.md

Whitespace-only changes.

go/oasis-node/cmd/node/node.go

Lines changed: 16 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -174,18 +174,12 @@ func (n *Node) startRuntimeServices(genesisDoc *genesisAPI.Document) error {
174174

175175
// Initialize runtime workers.
176176
if err = n.initRuntimeWorkers(genesisDoc); err != nil {
177-
n.logger.Error("failed to initialize workers",
178-
"err", err,
179-
)
180-
return err
177+
return fmt.Errorf("failed to initialize workers: %w", err)
181178
}
182179

183180
// Start workers (requires NodeController for checking, if nodes are synced).
184181
if err = n.startRuntimeWorkers(); err != nil {
185-
n.logger.Error("failed to start workers",
186-
"err", err,
187-
)
188-
return err
182+
return fmt.Errorf("failed to start workers: %w", err)
189183
}
190184

191185
n.logger.Debug("runtime services started")
@@ -234,10 +228,7 @@ func (n *Node) initRuntimeWorkers(genesisDoc *genesisAPI.Document) error {
234228
n.Provisioner,
235229
)
236230
if err != nil {
237-
n.logger.Error("failed to initialize common worker",
238-
"err", err,
239-
)
240-
return err
231+
return fmt.Errorf("failed to initialize common worker: %w", err)
241232
}
242233
n.svcMgr.Register(n.CommonWorker)
243234

@@ -258,10 +249,7 @@ func (n *Node) initRuntimeWorkers(genesisDoc *genesisAPI.Document) error {
258249
workerRegistration.DebugForceAllowUnroutableAddresses()
259250
}
260251
if err != nil {
261-
n.logger.Error("failed to initialize worker registration",
262-
"err", err,
263-
)
264-
return err
252+
return fmt.Errorf("failed to initialize worker registration: %w", err)
265253
}
266254
n.svcMgr.Register(n.RegistrationWorker)
267255

@@ -443,10 +431,7 @@ func NewNode() (node *Node, err error) { // nolint: gocyclo
443431
genesis := genesisFile.DefaultProvider()
444432
genesisDoc, err := genesis.GetGenesisDocument()
445433
if err != nil {
446-
logger.Error("failed to get genesis document",
447-
"err", err,
448-
)
449-
return nil, err
434+
return nil, fmt.Errorf("failed to get genesis document: %w", err)
450435
}
451436
genesisDoc.SetChainContext()
452437
node.chainContext = genesisDoc.ChainContext()
@@ -509,10 +494,7 @@ func NewNode() (node *Node, err error) { // nolint: gocyclo
509494
// Initialize the internal gRPC server.
510495
node.grpcInternal, err = cmdGrpc.NewServerLocal(false)
511496
if err != nil {
512-
logger.Error("failed to initialize internal gRPC server",
513-
"err", err,
514-
)
515-
return nil, err
497+
return nil, fmt.Errorf("failed to initialize internal gRPC server: %w", err)
516498
}
517499
node.svcMgr.Register(node.grpcInternal)
518500

@@ -522,10 +504,7 @@ func NewNode() (node *Node, err error) { // nolint: gocyclo
522504
// Open the common node store.
523505
node.commonStore, err = persistent.NewCommonStore(node.dataDir)
524506
if err != nil {
525-
logger.Error("failed to open common node store",
526-
"err", err,
527-
)
528-
return nil, err
507+
return nil, fmt.Errorf("failed to open common node store: %w", err)
529508
}
530509

531510
// Initialize P2P network. Since libp2p host starts listening immediately when created, make
@@ -546,27 +525,18 @@ func NewNode() (node *Node, err error) { // nolint: gocyclo
546525
node.svcMgr.Register(node.P2P)
547526

548527
if err = node.P2P.Start(); err != nil {
549-
logger.Error("failed to start P2P service",
550-
"err", err,
551-
)
552-
return nil, err
528+
return nil, fmt.Errorf("failed to start P2P service: %w", err)
553529
}
554530

555531
// Initialize upgrader backend.
556532
node.Upgrader, err = upgrade.New(node.commonStore, node.dataDir, !isArchive)
557533
if err != nil {
558-
logger.Error("failed to initialize upgrade backend",
559-
"err", err,
560-
)
561-
return nil, err
534+
return nil, fmt.Errorf("failed to initialize upgrade backend: %w", err)
562535
}
563536
// If not an archive mode, check if we can even launch.
564537
if !isArchive {
565538
if err = node.Upgrader.StartupUpgrade(); err != nil {
566-
logger.Error("error occurred during startup upgrade",
567-
"err", err,
568-
)
569-
return nil, err
539+
return nil, fmt.Errorf("error occurred during startup upgrade: %w", err)
570540
}
571541
}
572542

@@ -575,10 +545,7 @@ func NewNode() (node *Node, err error) { // nolint: gocyclo
575545
case cometbftAPI.BackendName:
576546
node.Consensus, err = cometbft.New(node.svcMgr.Ctx, node.dataDir, node.Identity, node.Upgrader, genesis, genesisDoc, node.P2P)
577547
if err != nil {
578-
logger.Error("failed to initialize cometbft consensus backend",
579-
"err", err,
580-
)
581-
return nil, err
548+
return nil, fmt.Errorf("failed to initialize cometbft consensus backend: %w", err)
582549
}
583550
default:
584551
return nil, fmt.Errorf("unsupported consensus backend: %s", backend)
@@ -589,10 +556,7 @@ func NewNode() (node *Node, err error) { // nolint: gocyclo
589556
// Initialize CometBFT light client.
590557
node.LightService, err = cometbft.NewLightService(node.svcMgr.Ctx, genesisDoc, node.P2P)
591558
if err != nil {
592-
logger.Error("failed to initialize cometbft light client service",
593-
"err", err,
594-
)
595-
return nil, err
559+
return nil, fmt.Errorf("failed to initialize cometbft light client service: %w", err)
596560
}
597561

598562
// Register consensus light client P2P protocol server.
@@ -601,21 +565,15 @@ func NewNode() (node *Node, err error) { // nolint: gocyclo
601565
// Register the consensus service with the peer registry.
602566
if mgr := node.P2P.PeerManager(); mgr != nil {
603567
if err = mgr.PeerRegistry().RegisterConsensus(node.chainContext, node.Consensus); err != nil {
604-
logger.Error("failed to register consensus with peer registry",
605-
"err", err,
606-
)
607-
return nil, err
568+
return nil, fmt.Errorf("failed to register consensus with peer registry: %w", err)
608569
}
609570
}
610571

611572
// If the consensus backend supports communicating with consensus services, we can also start
612573
// all services required for runtime operation.
613574
if node.Consensus.SupportedFeatures().Has(consensusAPI.FeatureServices) {
614575
if err = node.startRuntimeServices(genesisDoc); err != nil {
615-
logger.Error("failed to initialize runtime services",
616-
"err", err,
617-
)
618-
return nil, err
576+
return nil, fmt.Errorf("failed to initialize runtime services: %w", err)
619577
}
620578

621579
if flags.DebugDontBlameOasis() {
@@ -629,18 +587,12 @@ func NewNode() (node *Node, err error) { // nolint: gocyclo
629587

630588
// Start the internal gRPC server.
631589
if err = node.grpcInternal.Start(); err != nil {
632-
logger.Error("failed to start internal gRPC server",
633-
"err", err,
634-
)
635-
return nil, err
590+
return nil, fmt.Errorf("failed to start internal gRPC server: %w", err)
636591
}
637592

638593
// Start the consensus backend service.
639594
if err = node.Consensus.Start(); err != nil {
640-
logger.Error("failed to start consensus backend service",
641-
"err", err,
642-
)
643-
return nil, err
595+
return nil, fmt.Errorf("failed to start consensus backend service: %w", err)
644596
}
645597

646598
logger.Info("initialization complete: ready to serve")

go/oasis-node/cmd/node/run.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ func Run(_ *cobra.Command, _ []string) {
3939
// Shutdown requested during startup.
4040
return
4141
default:
42+
cmdCommon.Logger().Error("failed to start oasis node", "err", err)
4243
os.Exit(1)
4344
}
4445

0 commit comments

Comments
 (0)