Skip to content

Commit

Permalink
Fix panic in GS controller, failed pod logging
Browse files Browse the repository at this point in the history
Propagate error to event.
  • Loading branch information
aLekSer committed Apr 29, 2020
1 parent 387188a commit 6072398
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions pkg/gameservers/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -573,12 +573,11 @@ func (c *Controller) createGameServerPod(gs *agonesv1.GameServer) (*agonesv1.Gam

c.loggerForGameServer(gs).WithField("pod", pod).Debug("Creating Pod for GameServer")
pod, err = c.podGetter.Pods(gs.ObjectMeta.Namespace).Create(pod)
if k8serrors.IsAlreadyExists(err) {
c.recorder.Event(gs, corev1.EventTypeNormal, string(gs.Status.State), "Pod already exists, reused")
return gs, nil
}
if err != nil {
if k8serrors.IsInvalid(err) {
if k8serrors.IsAlreadyExists(err) {
c.recorder.Event(gs, corev1.EventTypeNormal, string(gs.Status.State), "Pod already exists, reused")
return gs, nil
} else if k8serrors.IsInvalid(err) {
c.loggerForGameServer(gs).WithField("pod", pod).Errorf("Pod created is invalid")
gs, err = c.moveToErrorState(gs, err.Error())
return gs, err
Expand All @@ -587,6 +586,8 @@ func (c *Controller) createGameServerPod(gs *agonesv1.GameServer) (*agonesv1.Gam
gs, err = c.moveToErrorState(gs, err.Error())
return gs, err
}
c.loggerForGameServer(gs).WithField("pod", pod).WithError(err)
c.recorder.Eventf(gs, corev1.EventTypeWarning, string(gs.Status.State), "error creating Pod for GameServer %s", gs.Name)
return gs, errors.Wrapf(err, "error creating Pod for GameServer %s", gs.Name)
}
c.recorder.Event(gs, corev1.EventTypeNormal, string(gs.Status.State),
Expand Down

0 comments on commit 6072398

Please sign in to comment.