Skip to content

Commit fa60dca

Browse files
authored
If there is a problem talking to tessera we should exit after a retry (#1575)
1 parent 6702b2b commit fa60dca

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

private/engine/tessera/tessera.go

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ import (
88
"io/ioutil"
99
"net/http"
1010
"net/url"
11+
"os"
1112
"strconv"
1213
"strings"
14+
"time"
1315

1416
"github.com/ethereum/go-ethereum/common"
1517
"github.com/ethereum/go-ethereum/log"
@@ -310,18 +312,30 @@ func (t *tesseraPrivateTxManager) receive(data common.EncryptedPayloadHash, isRa
310312
return cacheItem.Extra.Sender, cacheItem.Extra.ManagedParties, cacheItem.Payload, &cacheItem.Extra, nil
311313
}
312314

313-
response := new(receiveResponse)
314315
uri := fmt.Sprintf("/transaction/%s?isRaw=%v", url.PathEscape(data.ToBase64()), isRaw)
315-
if statusCode, err := t.submitJSON("GET", uri, nil, response); err != nil {
316-
317-
if statusCode == http.StatusNotFound {
318-
log.Debug("data not found in tessera", "uri", uri, "statuscode", statusCode, "err", err)
319-
return "", nil, nil, nil, nil
320-
} else {
321-
log.Error("Failed to fetch data from tessera", "uri", uri, "statuscode", statusCode, "err", err)
322-
return "", nil, nil, nil, err
316+
317+
var statusCode int
318+
var err error
319+
response := new(receiveResponse)
320+
321+
for i := 0; i < 5; i++ {
322+
statusCode, err = t.submitJSON("GET", uri, nil, response)
323+
if err != nil && statusCode != http.StatusNotFound {
324+
log.Warn("Failed to fetch data from tessera", "retry", i, "uri", uri, "statuscode", statusCode, "err", err)
325+
time.Sleep(1 * time.Second)
326+
continue
323327
}
328+
break
324329
}
330+
331+
if statusCode == http.StatusNotFound {
332+
log.Debug("data not found in tessera", "uri", uri, "statuscode", statusCode, "err", err)
333+
return "", nil, nil, nil, nil
334+
} else if err != nil {
335+
log.Error("Failed to fetch data from tessera", "uri", uri, "statuscode", statusCode, "err", err)
336+
os.Exit(112)
337+
}
338+
325339
var extra engine.ExtraMetadata
326340
if !isRaw {
327341
acHashes, err := common.Base64sToEncryptedPayloadHashes(response.AffectedContractTransactions)

0 commit comments

Comments
 (0)