Merge ""x/ref": Update w.r.t. CL 16799"
diff --git a/runtime/internal/flow/manager/manager.go b/runtime/internal/flow/manager/manager.go
index f413de6..01ebcc8 100644
--- a/runtime/internal/flow/manager/manager.go
+++ b/runtime/internal/flow/manager/manager.go
@@ -45,14 +45,14 @@
func NewWithBlessings(ctx *context.T, serverBlessings security.Blessings, rid naming.RoutingID) flow.Manager {
m := &manager{
- rid: rid,
- closed: make(chan struct{}),
- cache: NewConnCache(),
- ctx: ctx,
- serverBlessings: serverBlessings,
- serverNames: security.BlessingNames(v23.GetPrincipal(ctx), serverBlessings),
+ rid: rid,
+ closed: make(chan struct{}),
+ cache: NewConnCache(),
+ ctx: ctx,
}
if rid != naming.NullRoutingID {
+ m.serverBlessings = serverBlessings
+ m.serverNames = security.BlessingNames(v23.GetPrincipal(ctx), serverBlessings)
m.ls = &listenState{
q: upcqueue.New(),
listeners: []flow.Listener{},
diff --git a/runtime/internal/rpc/test/full_test.go b/runtime/internal/rpc/test/full_test.go
index ad8bfdb..5af791a 100644
--- a/runtime/internal/rpc/test/full_test.go
+++ b/runtime/internal/rpc/test/full_test.go
@@ -932,8 +932,7 @@
(*crypto.BoxKey)(rpk))
// Read the auth message from the server.
- var rAuth *message.Auth
- for {
+ for auth := false; !auth; {
b, err = conn.ReadMsg()
if err != nil {
t.Fatal(err)
@@ -945,23 +944,26 @@
if err != nil {
t.Fatal(err)
}
- if rAuth, ok = m.(*message.Auth); ok {
- break
+ switch m.(type) {
+ case *message.Auth:
+ auth = true
+ case *message.Data:
+ default:
+ continue
}
- }
+ if b, err = message.Append(ctx, m, nil); err != nil {
+ t.Fatal(err)
+ }
+ tmp := make([]byte, len(b)+cipher.MACSize())
+ copy(tmp, b)
+ b = tmp
+ if err = cipher.Seal(b); err != nil {
+ t.Fatal(err)
+ }
+ if _, err = conn.WriteMsg(b); err != nil {
+ t.Fatal(err)
+ }
- // Send the auth message back to the server.
- if b, err = message.Append(ctx, rAuth, nil); err != nil {
- t.Fatal(err)
- }
- tmp := make([]byte, len(b)+cipher.MACSize())
- copy(tmp, b)
- b = tmp
- if err = cipher.Seal(b); err != nil {
- t.Fatal(err)
- }
- if _, err = conn.WriteMsg(b); err != nil {
- t.Fatal(err)
}
// The server should send a tearDown message complaining about the channel binding.
diff --git a/services/syncbase/vsync/sync.go b/services/syncbase/vsync/sync.go
index 99a4a6e..60b6b58 100644
--- a/services/syncbase/vsync/sync.go
+++ b/services/syncbase/vsync/sync.go
@@ -229,7 +229,14 @@
for !s.Closed() {
select {
- case update := <-ch:
+ case update, ok := <-ch:
+ if s.Closed() {
+ break
+ }
+ if !ok {
+ vlog.VI(1).Info("sync: discoverPeers: scan cancelled, stop listening and exit")
+ return
+ }
switch u := update.(type) {
case discovery.UpdateFound:
svc := &u.Value.Service
diff --git a/test/goroutines/goroutines.go b/test/goroutines/goroutines.go
index c83011e..1169906 100644
--- a/test/goroutines/goroutines.go
+++ b/test/goroutines/goroutines.go
@@ -21,6 +21,7 @@
var ignoredGoroutines = []string{
"runtime.ensureSigM",
+ "sync.(*WaitGroup).Done",
}
type Goroutine struct {