diff --git a/contractcourt/chain_arbitrator.go b/contractcourt/chain_arbitrator.go index 0ba0d5758..472a6debe 100644 --- a/contractcourt/chain_arbitrator.go +++ b/contractcourt/chain_arbitrator.go @@ -395,6 +395,7 @@ func (c *ChainArbitrator) Start() error { c.chanSource.DB, arbCfg, c.cfg.ChainHash, chanPoint, ) if err != nil { + blockEpoch.Cancel() return err } arbCfg.MarkChannelResolved = func() error { diff --git a/contractcourt/contract_resolvers.go b/contractcourt/contract_resolvers.go index 92049eb52..2606a8347 100644 --- a/contractcourt/contract_resolvers.go +++ b/contractcourt/contract_resolvers.go @@ -865,6 +865,8 @@ func (h *htlcOutgoingContestResolver) Resolve() (ContractResolver, error) { if err != nil { return nil, err } + defer blockEpochs.Cancel() + for { select { @@ -1058,7 +1060,10 @@ func (h *htlcIncomingContestResolver) Resolve() (ContractResolver, error) { if err != nil { return nil, err } - defer preimageSubscription.CancelSubcription() + defer func() { + preimageSubscription.CancelSubcription() + blockEpochs.Cancel() + }() for { select {