From ef4ba2d51c30ba252404420b45cfa5913b26ce61 Mon Sep 17 00:00:00 2001 From: Weizhen Wang Date: Tue, 10 Oct 2023 16:22:00 +0800 Subject: [PATCH] update --- executor/analyze_col_v2.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/executor/analyze_col_v2.go b/executor/analyze_col_v2.go index 0019d1a6b971a..ed08d5f718e6e 100644 --- a/executor/analyze_col_v2.go +++ b/executor/analyze_col_v2.go @@ -274,7 +274,12 @@ func (e *AnalyzeColumnsExecV2) buildSamplingStats( mergeTaskCh := make(chan []byte, statsConcurrency) var taskEg errgroup.Group // Start read data from resultHandler and send them to mergeTaskCh. - taskEg.Go(func() error { + taskEg.Go(func() (err error) { + defer func() { + if r := recover(); r != nil { + err = getAnalyzePanicErr(r) + } + }() return readDataAndSendTask(e.ctx, e.resultHandler, mergeTaskCh, e.memTracker) }) e.samplingMergeWg = &util.WaitGroupWrapper{} @@ -286,6 +291,11 @@ func (e *AnalyzeColumnsExecV2) buildSamplingStats( mergeWorkerPanicCnt := 0 mergeEg, mergeCtx := errgroup.WithContext(context.Background()) mergeEg.Go(func() (err error) { + defer func() { + if r := recover(); r != nil { + err = getAnalyzePanicErr(r) + } + }() for mergeWorkerPanicCnt < statsConcurrency { mergeResult, ok := <-mergeResultCh if !ok {