From 6a7a3ce0aa0b2a9e501f32a9df78b57a01d70029 Mon Sep 17 00:00:00 2001 From: tiancaiamao Date: Tue, 21 May 2019 16:12:35 +0800 Subject: [PATCH 1/2] distsql: tiny refactor to make the code more robust --- distsql/select_result.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/distsql/select_result.go b/distsql/select_result.go index 9eb53964a55a5..a39cc2a7dab6c 100644 --- a/distsql/select_result.go +++ b/distsql/select_result.go @@ -98,17 +98,17 @@ func (r *selectResult) fetch(ctx context.Context) { metrics.DistSQLQueryHistgram.WithLabelValues(r.label, r.sqlType).Observe(duration.Seconds()) }() for { + var result resultWithErr resultSubset, err := r.resp.Next(ctx) if err != nil { - r.results <- resultWithErr{err: err} - return - } - if resultSubset == nil { + result.err = err + } else if resultSubset == nil { return - } - - if r.memTracker != nil { - r.memTracker.Consume(int64(resultSubset.MemSize())) + } else { + result.result = resultSubset + if r.memTracker != nil { + r.memTracker.Consume(int64(resultSubset.MemSize())) + } } select { From b98cc524afa00ef5a076d7a29d131d14c2ca32c0 Mon Sep 17 00:00:00 2001 From: tiancaiamao Date: Tue, 21 May 2019 17:08:36 +0800 Subject: [PATCH 2/2] fix CI --- distsql/select_result.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distsql/select_result.go b/distsql/select_result.go index a39cc2a7dab6c..72a283d1b2f8f 100644 --- a/distsql/select_result.go +++ b/distsql/select_result.go @@ -112,7 +112,7 @@ func (r *selectResult) fetch(ctx context.Context) { } select { - case r.results <- resultWithErr{result: resultSubset}: + case r.results <- result: case <-r.closed: // If selectResult called Close() already, make fetch goroutine exit. return