From 8afc468b6435e6901e23f8b9e849e84e085a8302 Mon Sep 17 00:00:00 2001 From: Gyu-Ho Lee Date: Thu, 23 Mar 2017 10:14:26 -0700 Subject: [PATCH] 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 --- tools/functional-tester/etcd-tester/member.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/functional-tester/etcd-tester/member.go b/tools/functional-tester/etcd-tester/member.go index 38033b800..7954e534c 100644 --- a/tools/functional-tester/etcd-tester/member.go +++ b/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)