double-fix crash on my cluster

pull/6/head
Daniel Smith 2015-03-11 09:48:01 -07:00
parent 88e0b04916
commit 6606f9c9f5
2 changed files with 4 additions and 1 deletions

View File

@ -111,7 +111,7 @@ func (c *HTTPKubeletClient) GetPodStatus(host, podNamespace, podID string) (api.
status := api.PodStatusResult{}
query := url.Values{"podID": {podID}, "podNamespace": {podNamespace}}
response, err := c.getEntity(host, "/api/v1beta1/podInfo", query.Encode(), &status)
if response.StatusCode == http.StatusNotFound {
if response != nil && response.StatusCode == http.StatusNotFound {
return status, ErrPodInfoNotAvailable
}
return status, err
@ -124,6 +124,7 @@ func (c *HTTPKubeletClient) GetNodeInfo(host string) (api.NodeInfo, error) {
return info, err
}
// getEntity might return a nil response.
func (c *HTTPKubeletClient) getEntity(host, path, query string, entity runtime.Object) (*http.Response, error) {
request, err := http.NewRequest("GET", c.url(host, path, query), nil)
if err != nil {

View File

@ -23,6 +23,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
"github.com/GoogleCloudPlatform/kubernetes/pkg/registry/pod"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/golang/glog"
)
@ -264,6 +265,7 @@ func (p *PodCache) UpdateAllContainers() {
pod := &pods.Items[i]
wg.Add(1)
go func() {
defer util.HandleCrash()
defer wg.Done()
err := p.updatePodStatus(pod)
if err != nil && err != client.ErrPodInfoNotAvailable {