@@ -2747,7 +2747,17 @@ func (c *KVStore) delChannelEdgeUnsafe(edges, edgeIndex, chanIndex,
27472747
27482748 nodeKey1 , nodeKey2 := edgeInfo .NodeKey1Bytes , edgeInfo .NodeKey2Bytes
27492749 if strictZombie {
2750- nodeKey1 , nodeKey2 = makeZombiePubkeys (& edgeInfo , edge1 , edge2 )
2750+ var e1UpdateTime , e2UpdateTime * time.Time
2751+ if edge1 != nil {
2752+ e1UpdateTime = & edge1 .LastUpdate
2753+ }
2754+ if edge2 != nil {
2755+ e2UpdateTime = & edge2 .LastUpdate
2756+ }
2757+
2758+ nodeKey1 , nodeKey2 = makeZombiePubkeys (
2759+ & edgeInfo , e1UpdateTime , e2UpdateTime ,
2760+ )
27512761 }
27522762
27532763 return & edgeInfo , markEdgeZombie (
@@ -2772,7 +2782,7 @@ func (c *KVStore) delChannelEdgeUnsafe(edges, edgeIndex, chanIndex,
27722782// marked with the correct lagging channel since we received an update from only
27732783// one side.
27742784func makeZombiePubkeys (info * models.ChannelEdgeInfo ,
2775- e1 , e2 * models. ChannelEdgePolicy ) ([33 ]byte , [33 ]byte ) {
2785+ e1 , e2 * time. Time ) ([33 ]byte , [33 ]byte ) {
27762786
27772787 switch {
27782788 // If we don't have either edge policy, we'll return both pubkeys so
@@ -2784,7 +2794,7 @@ func makeZombiePubkeys(info *models.ChannelEdgeInfo,
27842794 // older, we'll return edge1's pubkey and a blank pubkey for edge2. This
27852795 // means that only an update from edge1 will be able to resurrect the
27862796 // channel.
2787- case e1 == nil || (e2 != nil && e1 .LastUpdate . Before (e2 . LastUpdate )):
2797+ case e1 == nil || (e2 != nil && e1 .Before (* e2 )):
27882798 return info .NodeKey1Bytes , [33 ]byte {}
27892799
27902800 // Otherwise, we're missing edge2 or edge2 is the older side, so we
0 commit comments