Revert "Make the decode function respect the timeout context"
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							74fefd877f
						
					
				
				
					commit
					98a2f22e74
				
			@@ -33,7 +33,6 @@ const (
 | 
				
			|||||||
	ErrCodeResourceVersionConflicts
 | 
						ErrCodeResourceVersionConflicts
 | 
				
			||||||
	ErrCodeInvalidObj
 | 
						ErrCodeInvalidObj
 | 
				
			||||||
	ErrCodeUnreachable
 | 
						ErrCodeUnreachable
 | 
				
			||||||
	ErrCodeTimeout
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var errCodeToMessage = map[int]string{
 | 
					var errCodeToMessage = map[int]string{
 | 
				
			||||||
@@ -42,7 +41,6 @@ var errCodeToMessage = map[int]string{
 | 
				
			|||||||
	ErrCodeResourceVersionConflicts: "resource version conflicts",
 | 
						ErrCodeResourceVersionConflicts: "resource version conflicts",
 | 
				
			||||||
	ErrCodeInvalidObj:               "invalid object",
 | 
						ErrCodeInvalidObj:               "invalid object",
 | 
				
			||||||
	ErrCodeUnreachable:              "server unreachable",
 | 
						ErrCodeUnreachable:              "server unreachable",
 | 
				
			||||||
	ErrCodeTimeout:                  "request timeout",
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewKeyNotFoundError(key string, rv int64) *StorageError {
 | 
					func NewKeyNotFoundError(key string, rv int64) *StorageError {
 | 
				
			||||||
@@ -77,14 +75,6 @@ func NewUnreachableError(key string, rv int64) *StorageError {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewTimeoutError(key, msg string) *StorageError {
 | 
					 | 
				
			||||||
	return &StorageError{
 | 
					 | 
				
			||||||
		Code:               ErrCodeTimeout,
 | 
					 | 
				
			||||||
		Key:                key,
 | 
					 | 
				
			||||||
		AdditionalErrorMsg: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func NewInvalidObjError(key, msg string) *StorageError {
 | 
					func NewInvalidObjError(key, msg string) *StorageError {
 | 
				
			||||||
	return &StorageError{
 | 
						return &StorageError{
 | 
				
			||||||
		Code:               ErrCodeInvalidObj,
 | 
							Code:               ErrCodeInvalidObj,
 | 
				
			||||||
@@ -125,11 +115,6 @@ func IsConflict(err error) bool {
 | 
				
			|||||||
	return isErrCode(err, ErrCodeResourceVersionConflicts)
 | 
						return isErrCode(err, ErrCodeResourceVersionConflicts)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// IsRequestTimeout returns true if and only if err indicates that the request has timed out.
 | 
					 | 
				
			||||||
func IsRequestTimeout(err error) bool {
 | 
					 | 
				
			||||||
	return isErrCode(err, ErrCodeTimeout)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IsInvalidObj returns true if and only if err is invalid error
 | 
					// IsInvalidObj returns true if and only if err is invalid error
 | 
				
			||||||
func IsInvalidObj(err error) bool {
 | 
					func IsInvalidObj(err error) bool {
 | 
				
			||||||
	return isErrCode(err, ErrCodeInvalidObj)
 | 
						return isErrCode(err, ErrCodeInvalidObj)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,7 +28,7 @@ func InterpretListError(err error, qualifiedResource schema.GroupResource) error
 | 
				
			|||||||
	switch {
 | 
						switch {
 | 
				
			||||||
	case storage.IsNotFound(err):
 | 
						case storage.IsNotFound(err):
 | 
				
			||||||
		return errors.NewNotFound(qualifiedResource, "")
 | 
							return errors.NewNotFound(qualifiedResource, "")
 | 
				
			||||||
	case storage.IsUnreachable(err), storage.IsRequestTimeout(err):
 | 
						case storage.IsUnreachable(err):
 | 
				
			||||||
		return errors.NewServerTimeout(qualifiedResource, "list", 2) // TODO: make configurable or handled at a higher level
 | 
							return errors.NewServerTimeout(qualifiedResource, "list", 2) // TODO: make configurable or handled at a higher level
 | 
				
			||||||
	case storage.IsInternalError(err):
 | 
						case storage.IsInternalError(err):
 | 
				
			||||||
		return errors.NewInternalError(err)
 | 
							return errors.NewInternalError(err)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -738,14 +738,6 @@ func (s *store) GetList(ctx context.Context, key string, opts storage.ListOption
 | 
				
			|||||||
				return storage.NewInternalErrorf("unable to transform key %q: %v", kv.Key, err)
 | 
									return storage.NewInternalErrorf("unable to transform key %q: %v", kv.Key, err)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Check if the request has already timed out before decode object
 | 
					 | 
				
			||||||
			select {
 | 
					 | 
				
			||||||
			case <-ctx.Done():
 | 
					 | 
				
			||||||
				// parent context is canceled or timed out, no point in continuing
 | 
					 | 
				
			||||||
				return storage.NewTimeoutError(string(kv.Key), "request did not complete within requested timeout")
 | 
					 | 
				
			||||||
			default:
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			if err := appendListItem(v, data, uint64(kv.ModRevision), opts.Predicate, s.codec, s.versioner, newItemFunc); err != nil {
 | 
								if err := appendListItem(v, data, uint64(kv.ModRevision), opts.Predicate, s.codec, s.versioner, newItemFunc); err != nil {
 | 
				
			||||||
				recordDecodeError(s.groupResourceString, string(kv.Key))
 | 
									recordDecodeError(s.groupResourceString, string(kv.Key))
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user