[ARVADOS] updated: 32899e6b4ca7b5d59e3136f44785d0971a3b19ee

Git user git at public.curoverse.com
Wed May 18 13:39:14 EDT 2016


Summary of changes:
 build/run-tests.sh                        |  2 +-
 sdk/go/x/arvados/client.go                | 27 ++++++++++++++---------
 services/keep-balance/balance.go          |  5 +++--
 services/keep-balance/block_state.go      |  6 +++---
 services/keep-balance/integration_test.go |  9 +++++---
 services/keep-balance/main_test.go        | 36 +++++++++++++++----------------
 6 files changed, 48 insertions(+), 37 deletions(-)

       via  32899e6b4ca7b5d59e3136f44785d0971a3b19ee (commit)
       via  952e778be341957d42278263bd008181ee0c5d21 (commit)
      from  01aa17fb0f5de5a7e9a287e54ef15008d7af7260 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 32899e6b4ca7b5d59e3136f44785d0971a3b19ee
Author: Tom Clegg <tom at curoverse.com>
Date:   Wed May 18 13:39:10 2016 -0400

    9162: Fix race in arvados.Client

diff --git a/sdk/go/x/arvados/client.go b/sdk/go/x/arvados/client.go
index 16a12cb..3039919 100644
--- a/sdk/go/x/arvados/client.go
+++ b/sdk/go/x/arvados/client.go
@@ -12,12 +12,21 @@ import (
 )
 
 type Client struct {
-	*http.Client
+	// HTTP client used to make requests. If nil,
+	// http.DefaultClient or InsecureHTTPClient will be used.
+	Client    *http.Client
 	APIHost   string
 	AuthToken string
-	Insecure  bool
+	// Accept unverified certificates. If a Client is provided by
+	// the caller, this has no effect.
+	Insecure bool
 }
 
+var InsecureHTTPClient = &http.Client{
+	Transport: &http.Transport{
+		TLSClientConfig: &tls.Config{
+			InsecureSkipVerify: true}}}
+
 // NewClientFromEnv creates a new Client that uses the service
 // endpoint and credentials given by the ARVADOS_API_* environment
 // variables.
@@ -118,15 +127,13 @@ func (c *Client) RequestAndDecode(dst interface{}, method, path string, body io.
 }
 
 func (c *Client) httpClient() *http.Client {
-	client := c.Client
-	if client == nil {
-		client = http.DefaultClient
-	}
-	if c.Insecure {
-		client.Transport = &http.Transport{
-			TLSClientConfig: &tls.Config{InsecureSkipVerify: true}}
+	if c.Client != nil {
+		return c.Client
+	} else if c.Insecure {
+		return InsecureHTTPClient
+	} else {
+		return http.DefaultClient
 	}
-	return client
 }
 
 func (c *Client) apiURL(path string) string {

commit 952e778be341957d42278263bd008181ee0c5d21
Author: Tom Clegg <tom at curoverse.com>
Date:   Wed May 18 13:01:43 2016 -0400

    9162: Fix races, integration test teardown in -short

diff --git a/build/run-tests.sh b/build/run-tests.sh
index fbbedf6..b62bd09 100755
--- a/build/run-tests.sh
+++ b/build/run-tests.sh
@@ -501,7 +501,7 @@ do_test_once() {
             then
                 # "go test -check.vv giturl" doesn't work, but this
                 # does:
-                cd "$WORKSPACE/$1" && go test ${short:+-short} ${coverflags[@]} ${testargs[$1]}
+                cd "$WORKSPACE/$1" && go test ${short:+-short} ${testargs[$1]}
             else
                 # The above form gets verbose even when testargs is
                 # empty, so use this form in such cases:
diff --git a/services/keep-balance/balance.go b/services/keep-balance/balance.go
index 3cff8e8..f45e346 100644
--- a/services/keep-balance/balance.go
+++ b/services/keep-balance/balance.go
@@ -424,13 +424,14 @@ func (bal *Balancer) commitAsync(c *arvados.Client, label string, f func(srv *Ke
 	errs := make(chan error)
 	for _, srv := range bal.KeepServices {
 		go func(srv *KeepService) {
+			var err error
+			defer func() { errs <- err }()
 			label := fmt.Sprintf("%s: %v", srv, label)
 			defer timeMe(bal.Logger, label)()
-			err := f(srv)
+			err = f(srv)
 			if err != nil {
 				err = fmt.Errorf("%s: %v", label, err)
 			}
-			errs <- err
 		}(srv)
 	}
 	var lastErr error
diff --git a/services/keep-balance/block_state.go b/services/keep-balance/block_state.go
index f8edec5..4cca976 100644
--- a/services/keep-balance/block_state.go
+++ b/services/keep-balance/block_state.go
@@ -40,7 +40,7 @@ func NewBlockStateMap() *BlockStateMap {
 }
 
 // Get returns a BlockState entry, allocating a new one if needed.
-func (bsm *BlockStateMap) Get(blkid arvados.SizedDigest) *BlockState {
+func (bsm *BlockStateMap) get(blkid arvados.SizedDigest) *BlockState {
 	// TODO? Allocate BlockState structs a slice at a time,
 	// instead of one at a time.
 	blk := bsm.entries[blkid]
@@ -68,7 +68,7 @@ func (bsm *BlockStateMap) AddReplicas(srv *KeepService, idx []arvados.KeepServic
 	defer bsm.mutex.Unlock()
 
 	for _, ent := range idx {
-		bsm.Get(ent.SizedDigest).AddReplica(Replica{
+		bsm.get(ent.SizedDigest).AddReplica(Replica{
 			KeepService: srv,
 			Mtime:       ent.Mtime,
 		})
@@ -82,6 +82,6 @@ func (bsm *BlockStateMap) IncreaseDesired(n int, blocks []arvados.SizedDigest) {
 	defer bsm.mutex.Unlock()
 
 	for _, blkid := range blocks {
-		bsm.Get(blkid).IncreaseDesired(n)
+		bsm.get(blkid).IncreaseDesired(n)
 	}
 }
diff --git a/services/keep-balance/integration_test.go b/services/keep-balance/integration_test.go
index a460f56..d2b2a2d 100644
--- a/services/keep-balance/integration_test.go
+++ b/services/keep-balance/integration_test.go
@@ -51,6 +51,9 @@ func (s *integrationSuite) putReplicas(c *check.C, data string, replicas int) {
 }
 
 func (s *integrationSuite) TearDownSuite(c *check.C) {
+	if testing.Short() {
+		c.Skip("-short")
+	}
 	arvadostest.StopKeep(4)
 	arvadostest.StopAPI()
 }
@@ -67,13 +70,13 @@ func (s *integrationSuite) SetUpTest(c *check.C) {
 }
 
 func (s *integrationSuite) TestBalanceAPIFixtures(c *check.C) {
-	var logBuf bytes.Buffer
+	var logBuf *bytes.Buffer
 	for iter := 0; iter < 20; iter++ {
-		logBuf = bytes.Buffer{}
+		logBuf := &bytes.Buffer{}
 		opts := RunOptions{
 			CommitPulls: true,
 			CommitTrash: true,
-			Logger:      log.New(&logBuf, "", log.LstdFlags),
+			Logger:      log.New(logBuf, "", log.LstdFlags),
 		}
 		_, err := Run(s.config, opts)
 		c.Check(err, check.IsNil)
diff --git a/services/keep-balance/main_test.go b/services/keep-balance/main_test.go
index d3051a5..d1d13c3 100644
--- a/services/keep-balance/main_test.go
+++ b/services/keep-balance/main_test.go
@@ -18,6 +18,24 @@ import (
 
 var _ = check.Suite(&mainSuite{})
 
+type reqTracker struct {
+	reqs []http.Request
+	sync.Mutex
+}
+
+func (rt *reqTracker) Count() int {
+	rt.Lock()
+	defer rt.Unlock()
+	return len(rt.reqs)
+}
+
+func (rt *reqTracker) Add(req *http.Request) int {
+	rt.Lock()
+	defer rt.Unlock()
+	rt.reqs = append(rt.reqs, *req)
+	return len(rt.reqs)
+}
+
 type stubServer struct {
 	mux      *http.ServeMux
 	srv      *httptest.Server
@@ -55,24 +73,6 @@ func (s *stubServer) stop() {
 	s.srv.Close()
 }
 
-type reqTracker struct {
-	reqs []http.Request
-	sync.Mutex
-}
-
-func (rt *reqTracker) Count() int {
-	rt.Lock()
-	defer rt.Unlock()
-	return len(rt.reqs)
-}
-
-func (rt *reqTracker) Add(req *http.Request) int {
-	rt.Lock()
-	defer rt.Unlock()
-	rt.reqs = append(rt.reqs, *req)
-	return len(rt.reqs)
-}
-
 func (s *stubServer) serveStatic(path, data string) *reqTracker {
 	rt := &reqTracker{}
 	s.mux.HandleFunc(path, func(w http.ResponseWriter, r *http.Request) {

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list