Browse Source

tools/etcd-tester: add timeout for 'defrag'

etcd panic-ed, so defrag response just blocked for "days"
when the actual 'v3rpc' path never returned.

We should catch this earlier.

ref. https://github.com/coreos/etcd/issues/7526

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
Gyu-Ho Lee 8 years ago
parent
commit
8afc468b64
1 changed files with 4 additions and 1 deletions
  1. 4 1
      tools/functional-tester/etcd-tester/member.go

+ 4 - 1
tools/functional-tester/etcd-tester/member.go

@@ -79,7 +79,10 @@ func (m *member) Defrag() error {
 		return err
 	}
 	defer cli.Close()
-	if _, err = cli.Defragment(context.Background(), m.ClientURL); err != nil {
+	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
+	_, err = cli.Defragment(ctx, m.ClientURL)
+	cancel()
+	if err != nil {
 		return err
 	}
 	plog.Printf("defragmented %s\n", m.ClientURL)