File tree Expand file tree Collapse file tree 4 files changed +19
-4
lines changed Expand file tree Collapse file tree 4 files changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ type convincer struct {
1616 sender common.Sender
1717 vdr ids.ShortID
1818 requestID uint32
19+ sent bool
1920 abandoned bool
2021 deps ids.Set
2122 errs * wrappers.Errs
@@ -30,12 +31,16 @@ func (c *convincer) Fulfill(id ids.ID) {
3031}
3132
3233// Abandon this attempt to send chits.
33- func (c * convincer ) Abandon (ids.ID ) { c .abandoned = true }
34+ func (c * convincer ) Abandon (ids.ID ) {
35+ c .abandoned = true
36+ c .Update ()
37+ }
3438
3539func (c * convincer ) Update () {
36- if c .abandoned || c .deps . Len () != 0 || c . errs . Errored ( ) {
40+ if c .sent || c .errs . Errored () || ( ! c . abandoned && c . deps . Len () != 0 ) {
3741 return
3842 }
43+ c .sent = true
3944
4045 c .sender .Chits (c .vdr , c .requestID , c .consensus .Preferences ().List ())
4146}
Original file line number Diff line number Diff line change @@ -727,6 +727,7 @@ func TestEngineAbandonResponse(t *testing.T) {
727727 sender .GetF = func (vID ids.ShortID , requestID uint32 , vtxID ids.ID ) {
728728 * reqID = requestID
729729 }
730+ sender .CantChits = false
730731
731732 if err := te .PullQuery (vdr , 0 , vtx .ID ()); err != nil {
732733 t .Fatal (err )
@@ -2341,6 +2342,7 @@ func TestEngineReissueAbortedVertex(t *testing.T) {
23412342
23422343 sender .GetF = nil
23432344 manager .ParseF = nil
2345+ sender .CantChits = false
23442346
23452347 if err := te .GetFailed (vdr , * requestID ); err != nil {
23462348 t .Fatal (err )
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ type convincer struct {
1616 sender common.Sender
1717 vdr ids.ShortID
1818 requestID uint32
19+ sent bool
1920 abandoned bool
2021 deps ids.Set
2122 errs * wrappers.Errs
@@ -30,12 +31,16 @@ func (c *convincer) Fulfill(id ids.ID) {
3031}
3132
3233// Abandon this attempt to send chits.
33- func (c * convincer ) Abandon (ids.ID ) { c .abandoned = true }
34+ func (c * convincer ) Abandon (ids.ID ) {
35+ c .abandoned = true
36+ c .Update ()
37+ }
3438
3539func (c * convincer ) Update () {
36- if c .abandoned || c .deps . Len () != 0 || c . errs . Errored ( ) {
40+ if c .sent || c .errs . Errored () || ( ! c . abandoned && c . deps . Len () != 0 ) {
3741 return
3842 }
43+ c .sent = true
3944
4045 pref := []ids.ID {c .consensus .Preference ()}
4146 c .sender .Chits (c .vdr , c .requestID , pref )
Original file line number Diff line number Diff line change @@ -1057,6 +1057,8 @@ func TestEngineAbandonQuery(t *testing.T) {
10571057 t .Fatalf ("Should have blocked on request" )
10581058 }
10591059
1060+ sender .CantChits = false
1061+
10601062 if err := te .GetFailed (vdr , * reqID ); err != nil {
10611063 t .Fatal (err )
10621064 }
@@ -1306,6 +1308,7 @@ func TestEngineRetryFetch(t *testing.T) {
13061308
13071309 vm .CantGetBlock = true
13081310 sender .GetF = nil
1311+ sender .CantChits = false
13091312
13101313 if err := te .GetFailed (vdr , * reqID ); err != nil {
13111314 t .Fatal (err )
You can’t perform that action at this time.
0 commit comments