为了更快的定位您的问题,请提供以下信息,谢谢
【详述】Lock Manager detects slow lock
【背景】通过fe可视化页面,观察到有慢查询,通过profile观察到存在长时间锁等待时间
【业务影响】查询不稳定
【是否存算分离】
【StarRocks版本】例如:3.3.9
【集群规模】3fe+3be
【机器信息】fe=16c/32g/万兆,cn=16c/64g/万兆
【联系方式】存算分离 2 群 2333
【附件】
- fe.log/
/opt/starrocks/fe/log/fe.log:2025-09-05 12:10:03.091+08:00 WARN (starrocks-mysql-nio-pool-11209|221273) [LockManager.logSlowLockTrace():418] Lock
Manager detects slow lock:
{
"owners": [
{
"id": 38,
"name": "tablet stat mgr",
"type": "INTENTION_EXCLUSIVE",
"heldFor": 667279,
"waitTime": 0,
"stack": [
"java.base@11.0.4/java.lang.Object.wait(Native Method)",
"app//com.starrocks.common.util.concurrent.lock.LockManager.lock(LockManager.java:155)",
"app//com.starrocks.common.util.concurrent.lock.Locker.lock(Locker.java:90)",
"app//com.starrocks.common.util.concurrent.lock.Locker.lockTableWithIntensiveDbLock(Locker.java:495)",
"app//com.starrocks.catalog.TabletStatMgr.runAfterCatalogReady(TabletStatMgr.java:148)",
"app//com.starrocks.common.util.FrontendDaemon.runOneCycle(FrontendDaemon.java:72)",
"app//com.starrocks.common.util.Daemon.run(Daemon.java:109)"
]
},
{
"id": 220834,
"name": "starrocks-mysql-nio-pool-11191",
"type": "INTENTION_SHARED",
"heldFor": 671401,
"waitTime": 0,
"stack": [
"java.base@11.0.4/java.net.SocketInputStream.socketRead0(Native Method)",
"java.base@11.0.4/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)",
"java.base@11.0.4/java.net.SocketInputStream.read(SocketInputStream.java:168)",
"java.base@11.0.4/java.net.SocketInputStream.read(SocketInputStream.java:140)",
"java.base@11.0.4/java.io.BufferedInputStream.fill(BufferedInputStream.java:252)",
"java.base@11.0.4/java.io.BufferedInputStream.read1(BufferedInputStream.java:292)",
"java.base@11.0.4/java.io.BufferedInputStream.read(BufferedInputStream.java:351)",
"app//org.mariadb.jdbc.client.socket.impl.PacketReader.readReusablePacket(PacketReader.java:62)",
"app//org.mariadb.jdbc.message.ClientMessage.readPacket(ClientMessage.java:153)",
"app//org.mariadb.jdbc.client.impl.StandardClient.readPacket(StandardClient.java:913)",
"app//org.mariadb.jdbc.client.impl.StandardClient.readResults(StandardClient.java:852)",
"app//org.mariadb.jdbc.client.impl.StandardClient.readResponse(StandardClient.java:771)",
"app//org.mariadb.jdbc.client.impl.StandardClient.execute(StandardClient.java:695)",
"app//org.mariadb.jdbc.client.impl.StandardClient.execute(StandardClient.java:551)",
"app//org.mariadb.jdbc.Connection.isValid(Connection.java:709)",
"app//com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:147)",
"app//com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:169)",
"app//com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:145)",
"app//com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:85)",
"app//com.starrocks.connector.jdbc.JDBCMetadata.getConnection(JDBCMetadata.java:148)",
"app//com.starrocks.connector.jdbc.JDBCMetadata.lambda$getTable$1(JDBCMetadata.java:199)",
"app//com.starrocks.connector.jdbc.JDBCMetadata$$Lambda$829/0x00000008009b6440.apply(Unknown Source)",
"app//com.starrocks.connector.jdbc.JDBCMetaCache.get(JDBCMetaCache.java:73)",
"app//com.starrocks.connector.jdbc.JDBCMetadata.getTable(JDBCMetadata.java:197)",
"app//com.starrocks.connector.CatalogConnectorMetadata.getTable(CatalogConnectorMetadata.java:135)",
"app//com.starrocks.server.MetadataMgr.lambda$getTable$5(MetadataMgr.java:497)",
"app//com.starrocks.server.MetadataMgr$$Lambda$521/0x0000000800879440.apply(Unknown Source)",
"java.base@11.0.4/java.util.Optional.map(Optional.java:265)",
"app//com.starrocks.server.MetadataMgr.getTable(MetadataMgr.java:497)",
"app//com.starrocks.server.MetadataMgr.getTable(MetadataMgr.java:526)",
"app//com.starrocks.server.MetadataMgr.getTableWithIdentifier(MetadataMgr.java:531)",
"app//com.starrocks.server.MetadataMgr.getTableChecked(MetadataMgr.java:545)",
"app//com.starrocks.sql.optimizer.rule.transformation.materialization.MvUtils.getTableChecked(MvUtils.java:1413)",
"app//com.starrocks.sql.optimizer.MvRewritePreprocessor.lambda$canMVRewriteIfMVHasExtraTables$2(MvRewritePreprocessor.java:509)",
"app//com.starrocks.sql.optimizer.MvRewritePreprocessor$$Lambda$1653/0x00000008011f0440.apply(Unknown Source)",
"java.base@11.0.4/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)",
"java.base@11.0.4/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)",
"java.base@11.0.4/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)",
"java.base@11.0.4/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)",
"java.base@11.0.4/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)",
"java.base@11.0.4/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)",
"java.base@11.0.4/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)",
"app//com.starrocks.sql.optimizer.MvRewritePreprocessor.canMVRewriteIfMVHasExtraTables(MvRewritePreprocessor.java:511)",
"app//com.starrocks.sql.optimizer.MvRewritePreprocessor.isMVValidToRewriteQuery(MvRewritePreprocessor.java:548)",
"app//com.starrocks.sql.optimizer.MvRewritePreprocessor.lambda$chooseBestRelatedMVs$8(MvRewritePreprocessor.java:608)",
"app//com.starrocks.sql.optimizer.MvRewritePreprocessor$$Lambda$1652/0x00000008011f0040.test(Unknown Source)",
"java.base@11.0.4/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)",
"java.base@11.0.4/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1603)",
"java.base@11.0.4/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)",
"java.base@11.0.4/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)",
"java.base@11.0.4/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)",
"java.base@11.0.4/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)",
"java.base@11.0.4/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)",
"app//com.starrocks.sql.optimizer.MvRewritePreprocessor.chooseBestRelatedMVs(MvRewritePreprocessor.java:609)",
"app//com.starrocks.sql.optimizer.MvRewritePreprocessor.prepare(MvRewritePreprocessor.java:250)",
"app//com.starrocks.sql.optimizer.Optimizer.prepareMvRewrite(Optimizer.java:350)",
"app//com.starrocks.sql.optimizer.Optimizer.optimize(Optimizer.java:187)",
"app//com.starrocks.sql.StatementPlanner.createQueryPlan(StatementPlanner.java:251)",
"app//com.starrocks.sql.StatementPlanner.plan(StatementPlanner.java:129)",
"app//com.starrocks.sql.StatementPlanner.plan(StatementPlanner.java:92)",
"app//com.starrocks.qe.StmtExecutor.execute(StmtExecutor.java:570)",
"app//com.starrocks.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:366)",
"app//com.starrocks.qe.ConnectProcessor.dispatch(ConnectProcessor.java:575)",
"app//com.starrocks.qe.ConnectProcessor.processOnce(ConnectProcessor.java:913)",
"app//com.starrocks.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:69)",
"app//com.starrocks.mysql.nio.ReadListener$$Lambda$1612/0x0000000801146440.run(Unknown Source)",
"java.base@11.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)",
"java.base@11.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)",
"java.base@11.0.4/java.lang.Thread.run(Thread.java:834)"
]
}
],
"waiter": [
{
"id": 64,
"name": "MemoryUsageTracker",
"type": "READ",
"waitTime": 657113,
"stack": [
"app//com.starrocks.common.util.Daemon.run(Daemon.java:109)"
]
},
{
"id": 191,
"name": "COMPACTION_DISPATCH",
"type": "INTENTION_SHARED",
"waitTime": 647082,
"stack": [
"app//com.starrocks.common.util.Daemon.run(Daemon.java:109)"
]
},
{
"id": 220925,
"name": "starrocks-mysql-nio-pool-11194",
"type": "INTENTION_SHARED",
"waitTime": 490661,
"stack": [
"java.base@11.0.4/java.lang.Thread.run(Thread.java:834)"
]
},
{
"id": 220968,
"name": "starrocks-mysql-nio-pool-11196",
"type": "INTENTION_SHARED",
"waitTime": 490209,
"stack": [
"java.base@11.0.4/java.lang.Thread.run(Thread.java:834)"
]
},
{
"id": 190,
"name": "replayer",
"type": "WRITE",
"waitTime": 490060,
"stack": [
"app//com.starrocks.server.GlobalStateMgr$5.run(GlobalStateMgr.java:1869)"
]
},
{
"id": 221055,
"name": "starrocks-mysql-nio-pool-11199",
"type": "INTENTION_SHARED",
"waitTime": 430240,
"stack": [
"java.base@11.0.4/java.lang.Thread.run(Thread.java:834)"
]
},
{
"id": 221054,
"name": "starrocks-mysql-nio-pool-11198",
"type": "INTENTION_SHARED",
"waitTime": 412362,
"stack": [
"java.base@11.0.4/java.lang.Thread.run(Thread.java:834)"
]
},
{
"id": 221097,
"name": "starrocks-mysql-nio-pool-11202",
"type": "INTENTION_SHARED",
"waitTime": 382495,
"stack": [
"java.base@11.0.4/java.lang.Thread.run(Thread.java:834)"
]
},
{
"id": 221119,
"name": "starrocks-mysql-nio-pool-11206",
"type": "INTENTION_SHARED",
"waitTime": 3000,
"stack": [
"java.base/java.lang.Thread.run(Thread.java:834)"
]
}
]
}
- Profile信息
Planner:
- -- Parser[1] 30ms
- -- Total[1] 4m20s
- -- Analyzer[1] 4m20s
- -- Lock[1] 4m20s
- -- AnalyzeDatabase[3] 0
- -- AnalyzeTemporaryTable[3] 0
- -- AnalyzeTable[3] 10ms
- -- HMS.getTable[1] 10ms
- -- Transformer[1] 0
- -- Optimizer[1] 31ms
- -- MVPreprocess[1] 0
- -- MVTextRewrite[1] 0
- -- RuleBaseOptimize[1] 7ms
- -- HMS.listPartitionNames[1] 5ms
- -- CostBaseOptimize[1] 22ms
- -- HMS.getPartitionsByNames[1] 21ms
- -- PhysicalRewrite[1] 0
- -- PlanValidate[1] 1ms
- -- InputDependenciesChecker[1] 0
- -- TypeChecker[1] 0
- -- CTEUniqueChecker[1] 0
- -- ColumnReuseChecker[1] 0
- -- ExecPlanBuild[1] 0
- -- HMS.PARTITIONS.LIST_FS_PARTITIONS[5] 73ms
- -- Pending[1] 15ms
- -- Prepare[1] 0
- -- Deploy[1] 15ms
- -- DeployLockInternalTime[1] 15ms
- -- DeploySerializeConcurrencyTime[4] 0
- -- DeployStageByStageTime[12] 0
- -- DeployWaitTime[12] 14ms
- -- DeployAsyncSendTime[14] 0