session: fix potential deadlock in execStmtResult (#33848)

close pingcap/tidb#33847
This commit is contained in:
Sasha Sobol
2022-04-12 02:20:35 -07:00
committed by GitHub
parent 75cba8fab2
commit 0ae7cfb81d

View File

@ -2061,10 +2061,11 @@ func resetCTEStorageMap(se *session) error {
return errors.New("type assertion for CTEStorageMap failed")
}
for _, v := range storageMap {
// No need to lock IterInTbl.
v.ResTbl.Lock()
defer v.ResTbl.Unlock()
err1 := v.ResTbl.DerefAndClose()
// Make sure we do not hold the lock for longer than necessary.
v.ResTbl.Unlock()
// No need to lock IterInTbl.
err2 := v.IterInTbl.DerefAndClose()
if err1 != nil {
return err1