From db2630cb3a02edcc92678ed78e49d1e85d268224 Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Thu, 22 Oct 2020 17:32:39 +0800 Subject: [PATCH] Fix data race problem when using Scan, close #3662 --- finisher_api.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/finisher_api.go b/finisher_api.go index 30616284..857f9419 100644 --- a/finisher_api.go +++ b/finisher_api.go @@ -365,9 +365,13 @@ func (db *DB) Rows() (*sql.Rows, error) { // Scan scan value to a struct func (db *DB) Scan(dest interface{}) (tx *DB) { - currentLogger, newLogger := db.Logger, logger.Recorder.New() + config := *db.Config + currentLogger, newLogger := config.Logger, logger.Recorder.New() + config.Logger = newLogger + tx = db.getInstance() - tx.Logger = newLogger + tx.Config = &config + if rows, err := tx.Rows(); err != nil { tx.AddError(err) } else {