Node/Acct: Fix tmp map key format

Change-Id: Ic2276dd1bb441f4c8b289068fbf23a42d2450b52
This commit is contained in:
Bruce Riley 2023-01-26 15:50:48 +00:00 committed by Evan Gray
parent 8ded72af8b
commit 2005da77f4
2 changed files with 14 additions and 5 deletions

View File

@ -367,6 +367,13 @@ func (pe *pendingEntry) setSubmitPending(val bool) {
pe.state.updTime = time.Now() pe.state.updTime = time.Now()
} }
// submitPending returns the "submit pending" flag from the pending transfer object. It grabs the state lock.
func (pe *pendingEntry) submitPending() bool {
pe.stateLock.Lock()
defer pe.stateLock.Unlock()
return pe.state.submitPending
}
// updTime returns the last update time from the pending transfer object. It grabs the state lock. // updTime returns the last update time from the pending transfer object. It grabs the state lock.
func (pe *pendingEntry) updTime() time.Time { func (pe *pendingEntry) updTime() time.Time {
pe.stateLock.Lock() pe.stateLock.Lock()

View File

@ -21,6 +21,7 @@ import (
"encoding/hex" "encoding/hex"
"encoding/json" "encoding/json"
"fmt" "fmt"
"strings"
"time" "time"
gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1"
@ -94,12 +95,12 @@ func (mo MissingObservation) String() string {
// makeAuditKey creates an audit map key from a missing observation. // makeAuditKey creates an audit map key from a missing observation.
func (mo *MissingObservation) makeAuditKey() string { func (mo *MissingObservation) makeAuditKey() string {
return fmt.Sprintf("%d-%s", mo.ChainId, hex.EncodeToString(mo.TxHash[:])) return fmt.Sprintf("%d-%s", mo.ChainId, strings.TrimPrefix(hex.EncodeToString(mo.TxHash[:]), "0x"))
} }
// makeAuditKey creates an audit map key from a pending observation entry. // makeAuditKey creates an audit map key from a pending observation entry.
func (pe *pendingEntry) makeAuditKey() string { func (pe *pendingEntry) makeAuditKey() string {
return fmt.Sprintf("%d-%s", pe.msg.EmitterChain, pe.msg.TxHash.String()) return fmt.Sprintf("%d-%s", pe.msg.EmitterChain, strings.TrimPrefix(pe.msg.TxHash.String(), "0x"))
} }
// audit is the runnable that executes the audit each interval. // audit is the runnable that executes the audit each interval.
@ -136,8 +137,9 @@ func (acct *Accountant) createAuditMap() map[string]*pendingEntry {
auditErrors.Inc() auditErrors.Inc()
acct.logger.Error("acctaudit: transfer has been in the submit pending state for too long", zap.Stringer("lastUpdateTime", pe.updTime())) acct.logger.Error("acctaudit: transfer has been in the submit pending state for too long", zap.Stringer("lastUpdateTime", pe.updTime()))
} }
acct.logger.Debug("acctaudit: will audit pending transfer", zap.String("msgId", pe.msgId), zap.Stringer("lastUpdateTime", pe.updTime())) key := pe.makeAuditKey()
tmpMap[pe.makeAuditKey()] = pe acct.logger.Debug("acctaudit: will audit pending transfer", zap.String("msgId", pe.msgId), zap.String("moKey", key), zap.Bool("submitPending", pe.submitPending()), zap.Stringer("lastUpdateTime", pe.updTime()))
tmpMap[key] = pe
} }
return tmpMap return tmpMap
@ -248,7 +250,7 @@ func (acct *Accountant) performAudit(tmpMap map[string]*pendingEntry) {
// handleMissingObservation submits a local reobservation request. It relies on the reobservation code to throttle requests. // handleMissingObservation submits a local reobservation request. It relies on the reobservation code to throttle requests.
func (acct *Accountant) handleMissingObservation(mo MissingObservation) { func (acct *Accountant) handleMissingObservation(mo MissingObservation) {
acct.logger.Info("acctaudit: contract reported unknown observation as missing, requesting local reobservation", zap.Stringer("moKey", mo)) acct.logger.Error("acctaudit: contract reported unknown observation as missing, requesting local reobservation", zap.Stringer("moKey", mo))
msg := &gossipv1.ObservationRequest{ChainId: uint32(mo.ChainId), TxHash: mo.TxHash} msg := &gossipv1.ObservationRequest{ChainId: uint32(mo.ChainId), TxHash: mo.TxHash}
select { select {