Skip to content

Commit c259682

Browse files
committed
bridgev2/backfill: catch panics in backfill queue
1 parent 37af19a commit c259682

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

bridgev2/backfillqueue.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package bridgev2
99
import (
1010
"context"
1111
"fmt"
12+
"runtime/debug"
1213
"time"
1314

1415
"github.com/rs/zerolog"
@@ -88,6 +89,19 @@ func (br *Bridge) doBackfillTask(ctx context.Context, task *database.BackfillTas
8889
Object("portal_key", task.PortalKey).
8990
Str("login_id", string(task.UserLoginID)).
9091
Logger()
92+
defer func() {
93+
err := recover()
94+
if err != nil {
95+
logEvt := log.Error().
96+
Bytes(zerolog.ErrorStackFieldName, debug.Stack())
97+
if realErr, ok := err.(error); ok {
98+
logEvt = logEvt.Err(realErr)
99+
} else {
100+
logEvt = logEvt.Any(zerolog.ErrorFieldName, err)
101+
}
102+
logEvt.Msg("Panic in backfill queue")
103+
}
104+
}()
91105
ctx = log.WithContext(ctx)
92106
err := br.DB.BackfillTask.MarkDispatched(ctx, task)
93107
if err != nil {

0 commit comments

Comments
 (0)