From f4b88a30b203d1c0608aa0c1fb3f089f85cb5c38 Mon Sep 17 00:00:00 2001 From: jiangxinmeng1 <51114574+jiangxinmeng1@users.noreply.github.com> Date: Thu, 7 Mar 2024 12:40:51 +0800 Subject: [PATCH] fix data race in ApplyCommit , cherry-pick 14709 (#14822) --- pkg/vm/engine/tae/catalog/table.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/vm/engine/tae/catalog/table.go b/pkg/vm/engine/tae/catalog/table.go index ebc39d8db143..0d7e0bd169e3 100644 --- a/pkg/vm/engine/tae/catalog/table.go +++ b/pkg/vm/engine/tae/catalog/table.go @@ -532,8 +532,11 @@ func (entry *TableEntry) ApplyCommit() (err error) { if entry.isColumnChangedInSchema() { entry.FreezeAppend() } + entry.RLock() + schema := entry.GetLatestNodeLocked().BaseNode.Schema + entry.RUnlock() // update the shortcut to the lastest schema - entry.TableNode.schema.Store(entry.GetLatestNodeLocked().BaseNode.Schema) + entry.TableNode.schema.Store(schema) return }