mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Remove panic in storage and add log
Signed-off-by: caohe <caohe9603@gmail.com>
This commit is contained in:
parent
0304cda3e3
commit
99365063ba
@ -185,7 +185,7 @@ func (s *store) Create(ctx context.Context, key string, obj, out runtime.Object,
|
|||||||
func (s *store) Delete(ctx context.Context, key string, out runtime.Object, preconditions *storage.Preconditions, validateDeletion storage.ValidateObjectFunc) error {
|
func (s *store) Delete(ctx context.Context, key string, out runtime.Object, preconditions *storage.Preconditions, validateDeletion storage.ValidateObjectFunc) error {
|
||||||
v, err := conversion.EnforcePtr(out)
|
v, err := conversion.EnforcePtr(out)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic("unable to convert output object to pointer")
|
return fmt.Errorf("unable to convert output object to pointer: %v", err)
|
||||||
}
|
}
|
||||||
key = path.Join(s.pathPrefix, key)
|
key = path.Join(s.pathPrefix, key)
|
||||||
return s.conditionalDelete(ctx, key, out, v, preconditions, validateDeletion)
|
return s.conditionalDelete(ctx, key, out, v, preconditions, validateDeletion)
|
||||||
@ -241,7 +241,7 @@ func (s *store) GuaranteedUpdate(
|
|||||||
|
|
||||||
v, err := conversion.EnforcePtr(out)
|
v, err := conversion.EnforcePtr(out)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic("unable to convert output object to pointer")
|
return fmt.Errorf("unable to convert output object to pointer: %v", err)
|
||||||
}
|
}
|
||||||
key = path.Join(s.pathPrefix, key)
|
key = path.Join(s.pathPrefix, key)
|
||||||
|
|
||||||
@ -371,7 +371,7 @@ func (s *store) GetToList(ctx context.Context, key string, resourceVersion strin
|
|||||||
}
|
}
|
||||||
v, err := conversion.EnforcePtr(listPtr)
|
v, err := conversion.EnforcePtr(listPtr)
|
||||||
if err != nil || v.Kind() != reflect.Slice {
|
if err != nil || v.Kind() != reflect.Slice {
|
||||||
panic("need ptr to slice")
|
return fmt.Errorf("need ptr to slice: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
key = path.Join(s.pathPrefix, key)
|
key = path.Join(s.pathPrefix, key)
|
||||||
@ -476,7 +476,7 @@ func (s *store) List(ctx context.Context, key, resourceVersion string, pred stor
|
|||||||
}
|
}
|
||||||
v, err := conversion.EnforcePtr(listPtr)
|
v, err := conversion.EnforcePtr(listPtr)
|
||||||
if err != nil || v.Kind() != reflect.Slice {
|
if err != nil || v.Kind() != reflect.Slice {
|
||||||
panic("need ptr to slice")
|
return fmt.Errorf("need ptr to slice: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.pathPrefix != "" {
|
if s.pathPrefix != "" {
|
||||||
@ -742,7 +742,9 @@ func (s *store) getStateFromObject(obj runtime.Object) (*objState, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
s.versioner.UpdateObject(state.obj, uint64(rv))
|
if err := s.versioner.UpdateObject(state.obj, uint64(rv)); err != nil {
|
||||||
|
klog.Errorf("failed to update object version: %v", err)
|
||||||
|
}
|
||||||
return state, nil
|
return state, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -779,14 +781,16 @@ func (s *store) ttlOpts(ctx context.Context, ttl int64) ([]clientv3.OpOption, er
|
|||||||
// On success, objPtr would be set to the object.
|
// On success, objPtr would be set to the object.
|
||||||
func decode(codec runtime.Codec, versioner storage.Versioner, value []byte, objPtr runtime.Object, rev int64) error {
|
func decode(codec runtime.Codec, versioner storage.Versioner, value []byte, objPtr runtime.Object, rev int64) error {
|
||||||
if _, err := conversion.EnforcePtr(objPtr); err != nil {
|
if _, err := conversion.EnforcePtr(objPtr); err != nil {
|
||||||
panic("unable to convert output object to pointer")
|
return fmt.Errorf("unable to convert output object to pointer: %v", err)
|
||||||
}
|
}
|
||||||
_, _, err := codec.Decode(value, nil, objPtr)
|
_, _, err := codec.Decode(value, nil, objPtr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// being unable to set the version does not prevent the object from being extracted
|
// being unable to set the version does not prevent the object from being extracted
|
||||||
versioner.UpdateObject(objPtr, uint64(rev))
|
if err := versioner.UpdateObject(objPtr, uint64(rev)); err != nil {
|
||||||
|
klog.Errorf("failed to update object version: %v", err)
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -797,7 +801,9 @@ func appendListItem(v reflect.Value, data []byte, rev uint64, pred storage.Selec
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// being unable to set the version does not prevent the object from being extracted
|
// being unable to set the version does not prevent the object from being extracted
|
||||||
versioner.UpdateObject(obj, rev)
|
if err := versioner.UpdateObject(obj, rev); err != nil {
|
||||||
|
klog.Errorf("failed to update object version: %v", err)
|
||||||
|
}
|
||||||
if matched, err := pred.Matches(obj); err == nil && matched {
|
if matched, err := pred.Matches(obj); err == nil && matched {
|
||||||
v.Set(reflect.Append(v, reflect.ValueOf(obj).Elem()))
|
v.Set(reflect.Append(v, reflect.ValueOf(obj).Elem()))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user