Skip to content

Commit

Permalink
remove optimizer from cgo build & small refactor for backoff
Browse files Browse the repository at this point in the history
Signed-off-by: kpango <kpango@vdaas.org>
  • Loading branch information
kpango committed Jan 18, 2021
1 parent 8e6a9ef commit 3fc434b
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 27 deletions.
2 changes: 1 addition & 1 deletion Makefile.d/build.mk
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ cmd/agent/core/ngt/ngt: \
GOPRIVATE=$(GOPRIVATE) \
go build \
--ldflags "-s -w -linkmode 'external' \
-extldflags '-static -fPIC -pthread -fopenmp -std=gnu++20 -lstdc++ -O3 -lm $(EXTLDFLAGS)' \
-extldflags '-static -fPIC -pthread -fopenmp -std=c++20 -lstdc++ -lm $(EXTLDFLAGS)' \
-X '$(GOPKG)/internal/info.Version=$(VERSION)' \
-X '$(GOPKG)/internal/info.GitCommit=$(GIT_COMMIT)' \
-X '$(GOPKG)/internal/info.BuildTime=$(DATETIME)' \
Expand Down
59 changes: 34 additions & 25 deletions internal/backoff/backoff.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,14 @@ func (b *backoff) Do(ctx context.Context, f func(ctx context.Context) (val inter
for cnt := 0; cnt < b.maxRetryCount; cnt++ {
select {
case <-dctx.Done():
return nil, errors.Wrap(err, dctx.Err().Error())
switch dctx.Err() {
case context.DeadlineExceeded:
return nil, errors.ErrBackoffTimeout(err)
case context.Canceled:
return nil, err
default:
return nil, errors.Wrap(err, dctx.Err().Error())
}
default:
res, ret, err = func() (val interface{}, retryable bool, err error) {
ssctx, span := trace.StartSpan(dctx, traceTag+"/"+strconv.Itoa(cnt+1))
Expand All @@ -100,34 +107,36 @@ func (b *backoff) Do(ctx context.Context, f func(ctx context.Context) (val inter
}()
return f(ssctx)
}()
if ret && err != nil {
if b.errLog {
log.Error(err)
if !ret {
return res, err
}
if err == nil {
return res, nil
}
if b.errLog {
log.Error(err)
}
timer.Reset(time.Duration(jdur))
select {
case <-dctx.Done():
switch dctx.Err() {
case context.DeadlineExceeded:
return nil, errors.ErrBackoffTimeout(err)
case context.Canceled:
return nil, err
default:
return nil, errors.Wrap(dctx.Err(), err.Error())
}
timer.Reset(time.Duration(jdur))
select {
case <-dctx.Done():
switch dctx.Err() {
case context.DeadlineExceeded:
return nil, errors.ErrBackoffTimeout(err)
case context.Canceled:
return nil, err
default:
return nil, errors.Wrap(dctx.Err(), err.Error())
}
case <-timer.C:
if dur >= b.durationLimit {
dur = b.maxDuration
jdur = b.maxDuration
} else {
dur *= b.backoffFactor
jdur = b.addJitter(dur)
}
continue
case <-timer.C:
if dur >= b.durationLimit {
dur = b.maxDuration
jdur = b.maxDuration
} else {
dur *= b.backoffFactor
jdur = b.addJitter(dur)
}
}
}
return res, err
}
return res, err
}
Expand Down
2 changes: 1 addition & 1 deletion versions/NGT_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.12.1
1.12.3

0 comments on commit 3fc434b

Please sign in to comment.