From 26e12e6f6aee7e963848e2e236921ccdb6f21530 Mon Sep 17 00:00:00 2001 From: Dirk McCormick Date: Thu, 12 Nov 2020 17:15:05 +0100 Subject: [PATCH] fix: dont crash on startup if funds migration fails --- node/modules/client.go | 10 +++++++--- node/modules/storageminer.go | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/node/modules/client.go b/node/modules/client.go index 28af538dff4..045ffb2577f 100644 --- a/node/modules/client.go +++ b/node/modules/client.go @@ -55,16 +55,20 @@ func HandleMigrateClientFunds(lc fx.Lifecycle, ds dtypes.MetadataDS, wallet full if xerrors.Is(err, datastore.ErrNotFound) { return nil } - return err + log.Errorf("client funds migration - getting datastore value: %w", err) + return nil } var value abi.TokenAmount if err = value.UnmarshalCBOR(bytes.NewReader(b)); err != nil { - return err + log.Errorf("client funds migration - unmarshalling datastore value: %w", err) + return nil } _, err = fundMgr.Reserve(ctx, addr, addr, value) if err != nil { - return err + log.Errorf("client funds migration - reserving funds (wallet %s, addr %s, funds %d): %w", + addr, addr, value, err) + return nil } return ds.Delete(datastore.NewKey("/marketfunds/client")) diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index 2f529089af8..a612b142bf5 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -263,17 +263,21 @@ func HandleMigrateProviderFunds(lc fx.Lifecycle, ds dtypes.MetadataDS, node api. } ts, err := node.ChainHead(ctx) if err != nil { - return err + log.Errorf("provider funds migration - getting chain head: %w", err) + return nil } mi, err := node.StateMinerInfo(ctx, address.Address(minerAddress), ts.Key()) if err != nil { - return err + log.Errorf("provider funds migration - getting miner info %s: %w", minerAddress, err) + return nil } _, err = node.MarketReserveFunds(ctx, mi.Worker, address.Address(minerAddress), value) if err != nil { - return err + log.Errorf("provider funds migration - reserving funds (wallet %s, addr %s, funds %d): %w", + mi.Worker, minerAddress, value, err) + return nil } return ds.Delete(datastore.NewKey("/marketfunds/provider"))