Fix http response body not closed correctly, return immediately on error (#210)
* Fix controller timer handler not return when error occurred * Fix controller not close http response correctly This PR aims to fix controller not close response correctly. Also, I’ve check all over the project there is no more resource leak issues exist after this patch. * Fix controller not return immediately when error occurred * Sort import
This commit is contained in:
committed by
Soam Vasani
parent
a8e7ec534b
commit
d9b98830cf
Vendored
+2
-2
@@ -17,10 +17,10 @@ limitations under the License.
|
|||||||
package cache
|
package cache
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
|
||||||
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/fission/fission"
|
"github.com/fission/fission"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Vendored
+5
-3
@@ -16,9 +16,11 @@ limitations under the License.
|
|||||||
|
|
||||||
package cache
|
package cache
|
||||||
|
|
||||||
import "testing"
|
import (
|
||||||
import "log"
|
"log"
|
||||||
import "time"
|
"testing"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
func checkErr(err error) {
|
func checkErr(err error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -213,6 +213,7 @@ func (c *Client) FunctionList() ([]fission.Function, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
body, err := c.handleResponse(resp)
|
body, err := c.handleResponse(resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -320,6 +321,7 @@ func (c *Client) HTTPTriggerList() ([]fission.HTTPTrigger, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
body, err := c.handleResponse(resp)
|
body, err := c.handleResponse(resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -427,6 +429,7 @@ func (c *Client) EnvironmentList() ([]fission.Environment, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
body, err := c.handleResponse(resp)
|
body, err := c.handleResponse(resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -514,6 +517,7 @@ func (c *Client) WatchList() ([]fission.Watch, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
body, err := c.handleResponse(resp)
|
body, err := c.handleResponse(resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -621,6 +625,7 @@ func (c *Client) TimeTriggerList() ([]fission.TimeTrigger, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
body, err := c.handleResponse(resp)
|
body, err := c.handleResponse(resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ func (api *API) EnvironmentApiCreate(w http.ResponseWriter, r *http.Request) {
|
|||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.respondWithError(w, err)
|
api.respondWithError(w, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
defer r.Body.Close()
|
|
||||||
|
|
||||||
var env fission.Environment
|
var env fission.Environment
|
||||||
err = json.Unmarshal(body, &env)
|
err = json.Unmarshal(body, &env)
|
||||||
@@ -104,6 +104,7 @@ func (api *API) EnvironmentApiUpdate(w http.ResponseWriter, r *http.Request) {
|
|||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.respondWithError(w, err)
|
api.respondWithError(w, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var env fission.Environment
|
var env fission.Environment
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ func (api *API) FunctionApiCreate(w http.ResponseWriter, r *http.Request) {
|
|||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.respondWithError(w, err)
|
api.respondWithError(w, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var f fission.Function
|
var f fission.Function
|
||||||
@@ -118,6 +119,7 @@ func (api *API) FunctionApiUpdate(w http.ResponseWriter, r *http.Request) {
|
|||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.respondWithError(w, err)
|
api.respondWithError(w, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var f fission.Function
|
var f fission.Function
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ func (api *API) HTTPTriggerApiCreate(w http.ResponseWriter, r *http.Request) {
|
|||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.respondWithError(w, err)
|
api.respondWithError(w, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var t fission.HTTPTrigger
|
var t fission.HTTPTrigger
|
||||||
@@ -116,6 +117,7 @@ func (api *API) HTTPTriggerApiUpdate(w http.ResponseWriter, r *http.Request) {
|
|||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.respondWithError(w, err)
|
api.respondWithError(w, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var t fission.HTTPTrigger
|
var t fission.HTTPTrigger
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ func (api *API) TimeTriggerApiCreate(w http.ResponseWriter, r *http.Request) {
|
|||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.respondWithError(w, err)
|
api.respondWithError(w, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var t fission.TimeTrigger
|
var t fission.TimeTrigger
|
||||||
@@ -124,6 +125,7 @@ func (api *API) TimeTriggerApiUpdate(w http.ResponseWriter, r *http.Request) {
|
|||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.respondWithError(w, err)
|
api.respondWithError(w, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var t fission.TimeTrigger
|
var t fission.TimeTrigger
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ func (api *API) WatchApiCreate(w http.ResponseWriter, r *http.Request) {
|
|||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.respondWithError(w, err)
|
api.respondWithError(w, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var watch fission.Watch
|
var watch fission.Watch
|
||||||
|
|||||||
@@ -18,12 +18,12 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"text/tabwriter"
|
"text/tabwriter"
|
||||||
|
|
||||||
"github.com/urfave/cli"
|
"github.com/urfave/cli"
|
||||||
|
|
||||||
"github.com/fission/fission"
|
"github.com/fission/fission"
|
||||||
"os"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func envCreate(c *cli.Context) error {
|
func envCreate(c *cli.Context) error {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
@@ -36,7 +37,6 @@ import (
|
|||||||
|
|
||||||
"github.com/fission/fission"
|
"github.com/fission/fission"
|
||||||
"github.com/fission/fission/publisher"
|
"github.com/fission/fission/publisher"
|
||||||
"reflect"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type requestType int
|
type requestType int
|
||||||
|
|||||||
@@ -17,14 +17,14 @@ limitations under the License.
|
|||||||
package client
|
package client
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/fission/fission"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/fission/fission"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Client struct {
|
type Client struct {
|
||||||
|
|||||||
@@ -3,9 +3,9 @@ package poolmgr
|
|||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/fission/fission"
|
"github.com/fission/fission"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestFunctionServiceCache(t *testing.T) {
|
func TestFunctionServiceCache(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user