Yakir Gibraltar
05/24/2026, 10:15 AMReplayedJournalId stopped advancing, but max_journal_id kept moving.
Queries on that FE used stale metadata and failed with starlet err Open hdfs file ... No such file or directory.
jstack showed:
"replayer" BLOCKED
at CachingIcebergCatalog.getTable
at IcebergMetadata.getTable
at MetadataMgr.getTable
at AnalyzeMgr.refreshConnectorTableBasicStatisticsCache
at EditLog.loadJournal // OP_ADD_EXTERNAL_BASIC_STATS_META
The cache lock was held by a user query thread:
"starrocks-mysql-nio-pool-..." TIMED_WAITING
at org.apache.hadoop.ipc.Client$Connection.sendRpcRequest
at ... getFileInfo
at HadoopInputFile.getLength
at IcebergHiveCatalog.getTable
at CachingIcebergCatalog$1.load
So replay was indirectly waiting on HMS/HDFS metadata I/O. Wondering if others have seen this, or if there is already a fix/issue for moving external stats cache refresh off the replayer thread.Yakir Gibraltar
05/24/2026, 10:16 AMYakir Gibraltar
05/24/2026, 10:20 AMOP_ADD_EXTERNAL_BASIC_STATS_META
- OP_REMOVE_EXTERNAL_BASIC_STATS_META
- OP_ADD_EXTERNAL_HISTOGRAM_STATS_META
- OP_REMOVE_EXTERNAL_HISTOGRAM_STATS_META
- Use bounded non-blocking dispatch; if the queue is full, drop/log the cache work rather than block replay.
This would keep journal replay independent from HMS/HDFS availability while preserving lazy cache reload on the next query.Michael Taranov
05/24/2026, 11:38 AM