diff --git a/core/breaker/breaker.go b/core/breaker/breaker.go index 3da681cdf..a53aca5c1 100644 --- a/core/breaker/breaker.go +++ b/core/breaker/breaker.go @@ -31,9 +31,10 @@ type ( Name() string // Allow checks if the request is allowed. - // If allowed, a promise will be returned, the caller needs to call promise.Accept() - // on success, or call promise.Reject() on failure. - // If not allow, ErrServiceUnavailable will be returned. + // If allowed, a promise will be returned, + // otherwise ErrServiceUnavailable will be returned as the error. + // The caller needs to call promise.Accept() on success, + // or call promise.Reject() on failure. Allow() (Promise, error) // Do runs the given request if the Breaker accepts it. diff --git a/core/breaker/googlebreaker.go b/core/breaker/googlebreaker.go index f58566b03..462729568 100644 --- a/core/breaker/googlebreaker.go +++ b/core/breaker/googlebreaker.go @@ -52,6 +52,7 @@ func (b *googleBreaker) accept() error { func (b *googleBreaker) allow() (internalPromise, error) { if err := b.accept(); err != nil { + b.markFailure() return nil, err }