diff --git a/routing/missioncontrol.go b/routing/missioncontrol.go index 5d91e69cb..2c1ca116c 100644 --- a/routing/missioncontrol.go +++ b/routing/missioncontrol.go @@ -221,6 +221,9 @@ func NewMissionControl(db kvdb.Backend, self route.Vertex, func (m *MissionControl) init() error { log.Debugf("Mission control state reconstruction started") + m.Lock() + defer m.Unlock() + start := time.Now() results, err := m.store.fetchAll() @@ -314,6 +317,9 @@ func (m *MissionControl) ReportPaymentFail(paymentID uint64, rt *route.Route, failureSourceIdx *int, failure lnwire.FailureMessage) ( *channeldb.FailureReason, error) { + m.Lock() + defer m.Unlock() + timestamp := m.now() result := &paymentResult{ @@ -334,6 +340,9 @@ func (m *MissionControl) ReportPaymentFail(paymentID uint64, rt *route.Route, func (m *MissionControl) ReportPaymentSuccess(paymentID uint64, rt *route.Route) error { + m.Lock() + defer m.Unlock() + timestamp := m.now() result := &paymentResult{ @@ -376,10 +385,6 @@ func (m *MissionControl) applyPaymentResult( result.failure, ) - // Update mission control state using the interpretation. - m.Lock() - defer m.Unlock() - if i.policyFailure != nil { if m.state.requestSecondChance( result.timeReply,