Skip to content

Commit 81acae3

Browse files
authored
fix: nil check before accessing lastPodStatusReceivedFromProvider (#10)
Signed-off-by: Juliana Oliveira <juliana@fly.io>
1 parent 72d5452 commit 81acae3

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

node/pod.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,12 @@ func (pc *PodController) updatePodStatus(ctx context.Context, podFromKubernetes
259259
kPod.Lock()
260260
podFromProvider := kPod.lastPodStatusReceivedFromProvider.DeepCopy()
261261
kPod.Unlock()
262+
263+
if podFromProvider == nil {
264+
log.G(ctx).Debug("No pod status received from provider yet, skipping update")
265+
return nil
266+
}
267+
262268
// Pod deleted by provider due some reasons. e.g. a K8s provider, pod created by deployment would be evicted when node is not ready.
263269
// If we do not delete pod in K8s, deployment would not create a new one.
264270
if podFromProvider.DeletionTimestamp != nil && podFromKubernetes.DeletionTimestamp == nil {

node/podcontroller.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@ func (pc *PodController) Run(ctx context.Context, podSyncWorkers int) (retErr er
358358
kPod := obj.(*knownPod)
359359
kPod.Lock()
360360
if kPod.lastPodStatusUpdateSkipped &&
361+
kPod.lastPodStatusReceivedFromProvider != nil &&
361362
(!cmp.Equal(newPod.Status, kPod.lastPodStatusReceivedFromProvider.Status) ||
362363
!cmp.Equal(newPod.Annotations, kPod.lastPodStatusReceivedFromProvider.Annotations) ||
363364
!cmp.Equal(newPod.Labels, kPod.lastPodStatusReceivedFromProvider.Labels) ||

0 commit comments

Comments
 (0)