mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 23:15:14 +00:00
store and return deep copies of pod objects to avoid data races
This commit is contained in:
parent
1eabef0388
commit
0b50f6c513
@ -198,13 +198,23 @@ func (lw *MockPodsListWatch) Pod(name string) *api.Pod {
|
|||||||
|
|
||||||
for _, p := range lw.list.Items {
|
for _, p := range lw.list.Items {
|
||||||
if p.Name == name {
|
if p.Name == name {
|
||||||
return &p
|
clone, err := api.Scheme.DeepCopy(&p)
|
||||||
|
if err != nil {
|
||||||
|
panic(err.Error())
|
||||||
|
}
|
||||||
|
return clone.(*api.Pod)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
func (lw *MockPodsListWatch) Add(pod *api.Pod, notify bool) {
|
func (lw *MockPodsListWatch) Add(pod *api.Pod, notify bool) {
|
||||||
|
clone, err := api.Scheme.DeepCopy(pod)
|
||||||
|
if err != nil {
|
||||||
|
panic(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
pod = clone.(*api.Pod)
|
||||||
func() {
|
func() {
|
||||||
lw.lock.Lock()
|
lw.lock.Lock()
|
||||||
defer lw.lock.Unlock()
|
defer lw.lock.Unlock()
|
||||||
@ -216,6 +226,12 @@ func (lw *MockPodsListWatch) Add(pod *api.Pod, notify bool) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (lw *MockPodsListWatch) Modify(pod *api.Pod, notify bool) {
|
func (lw *MockPodsListWatch) Modify(pod *api.Pod, notify bool) {
|
||||||
|
clone, err := api.Scheme.DeepCopy(pod)
|
||||||
|
if err != nil {
|
||||||
|
panic("failed to clone pod object")
|
||||||
|
}
|
||||||
|
|
||||||
|
pod = clone.(*api.Pod)
|
||||||
found := false
|
found := false
|
||||||
func() {
|
func() {
|
||||||
lw.lock.Lock()
|
lw.lock.Lock()
|
||||||
|
Loading…
Reference in New Issue
Block a user