StarRocks / starrocks

StarRocks, a Linux Foundation project, is a next-generation sub-second MPP OLAP database for full analytics scenarios, including multi-dimensional analytics, real-time analytics, and ad-hoc queries.
https://starrocks.io
Apache License 2.0
8.27k stars 1.67k forks source link

[BugFix] Fix deadlock in tablet schema map (backport #47539) #47606

Closed mergify[bot] closed 5 days ago

mergify[bot] commented 5 days ago

Why I'm doing:

There is deadlock in tablet schema map. In TabletSchemaMap::emplace, there is a local variable TabletSchemPtr ptr inside the lock scope. The TabletSchema object pointed by ptr may be destructed inside the lock scope, and its destructor will call TabletSchemaMap::erase which also try to lock, causing a deadlock.

What I'm doing:

Define the local variable TabletSchemPtr ptr outside the lock scope, making the destruction outside the lock scope.

Fixes #issue

What type of PR is this:

Does this PR entail a change in behavior?

If yes, please specify the type of change:

Checklist:

Bugfix cherry-pick branch check:

What I'm doing:

Define the local variable TabletSchemPtr ptr outside the lock scope, making the destruction outside the lock scope.

Fixes #issue

What type of PR is this:

Does this PR entail a change in behavior?

If yes, please specify the type of change:

Checklist: