Skip to content

Commit

Permalink
fix: save to disk after max retry
Browse files Browse the repository at this point in the history
  • Loading branch information
debendraoli committed Jun 4, 2024
1 parent dafb61e commit 7986cc6
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 19 deletions.
4 changes: 0 additions & 4 deletions relayer/chains/evm/events.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package evm

import (
"fmt"

ethereum "github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
Expand Down Expand Up @@ -38,8 +36,6 @@ func (p *Config) eventMap() map[string]providerTypes.EventMap {
}

func (p *Config) GetMonitorEventFilters() ethereum.FilterQuery {
fmt.Println(CallMessageHash)

var (
addresses []common.Address
topics []common.Hash
Expand Down
1 change: 1 addition & 0 deletions relayer/chains/evm/route.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ func (p *Provider) Route(ctx context.Context, message *providerTypes.Message, ca
if err != nil {
return fmt.Errorf("routing failed: %w", err)
}
p.log.Info("transaction sent", zap.String("tx_hash", tx.Hash().String()), zap.Any("message", messageKey))
return p.WaitForTxResult(ctx, tx, messageKey, callback)
}

Expand Down
29 changes: 15 additions & 14 deletions relayer/relay.go
Original file line number Diff line number Diff line change
Expand Up @@ -373,22 +373,23 @@ func (r *Relayer) ExecuteCall(ctx context.Context, msg *types.RouteMessage, dst
func (r *Relayer) HandleMessageFailed(routeMessage *types.RouteMessage, dst, src *ChainRuntime) {
routeMessage.ToggleProcessing()
routeMessage.AddNextTry()
// save to db
if err := r.messageStore.StoreMessage(routeMessage); err != nil {
r.log.Error("error occured when storing the message after max retry", zap.Error(err))
return
}
if routeMessage.Retry > types.MaxTxRetry {
if err := r.messageStore.StoreMessage(routeMessage); err != nil {
r.log.Error("error occured when storing the message after max retry", zap.Error(err))
return
}

// removed message from messageCache
src.MessageCache.Remove(routeMessage.MessageKey())
// removed message from messageCache
src.MessageCache.Remove(routeMessage.MessageKey())

dst.log.Error("message relay failed",
zap.String("src", routeMessage.Src),
zap.String("dst", routeMessage.Dst),
zap.Uint64("sn", routeMessage.Sn.Uint64()),
zap.String("event_type", routeMessage.EventType),
zap.Uint8("count", routeMessage.Retry),
)
dst.log.Error("message relay failed",
zap.String("src", routeMessage.Src),
zap.String("dst", routeMessage.Dst),
zap.Uint64("sn", routeMessage.Sn.Uint64()),
zap.String("event_type", routeMessage.EventType),
zap.Uint8("count", routeMessage.Retry),
)
}
return
}

Expand Down
2 changes: 1 addition & 1 deletion relayer/types/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ func (r *RouteMessage) GetRetry() uint8 {

// ResetLastTry resets the last try time to the current time plus the retry interval
func (r *RouteMessage) AddNextTry() {
r.LastTry = time.Now().Add(RetryInterval + time.Duration(math.Pow(2, float64(r.Retry)))) // exponential backoff
r.LastTry = time.Now().Add(RetryInterval * time.Duration(math.Pow(2, float64(r.Retry)))) // exponential backoff
}

func (r *RouteMessage) IsProcessing() bool {
Expand Down

0 comments on commit 7986cc6

Please sign in to comment.