[ https://issues.apache.org/jira/browse/IGNITE-25032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ivan Bessonov resolved IGNITE-25032. ------------------------------------ Resolution: Duplicate > CatalogCompactionRunner is being executed in network thread > ----------------------------------------------------------- > > Key: IGNITE-25032 > URL: https://issues.apache.org/jira/browse/IGNITE-25032 > Project: Ignite > Issue Type: Bug > Reporter: Ivan Bessonov > Priority: Major > Labels: ignite-3 > > {code:java} > Thread [name="%node18%MessagingService-inbound-Default-0-2", id=149, > state=WAITING, blockCnt=91, waitCnt=325764] > Lock > [object=java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync@21433869, > ownerName=%node18%metastorage-compaction-executor-0, ownerId=324] > at java.base@17/jdk.internal.misc.Unsafe.park(Native Method) > at > java.base@17/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211) > at > java.base@17/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715) > at > java.base@17/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1027) > at > java.base@17/java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:738) > at > app//org.apache.ignite.internal.metastorage.server.persistence.RocksDbKeyValueStorage.timestampByRevision(RocksDbKeyValueStorage.java:1281) > at > app//org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl.lambda$timestampByRevisionLocally$48(MetaStorageManagerImpl.java:926) > at > app//org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl$$Lambda$2885/0x000000080182cc08.get(Unknown > Source) > at > app//org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:860) > at > app//org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl.timestampByRevisionLocally(MetaStorageManagerImpl.java:926) > at > app//org.apache.ignite.internal.distributionzones.rebalance.RebalanceMinimumRequiredTimeProviderImpl.minimumRequiredTime(RebalanceMinimumRequiredTimeProviderImpl.java:64) > at > app//org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner.getMinLocalTime(CatalogCompactionRunner.java:269) > at > app//org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner$CatalogCompactionMessageHandler.handleMinimumTimesRequest(CatalogCompactionRunner.java:663) > at > app//org.apache.ignite.internal.catalog.compaction.CatalogCompactionRunner$CatalogCompactionMessageHandler.onReceived(CatalogCompactionRunner.java:644) > at > app//org.apache.ignite.internal.network.TrackableNetworkMessageHandler.onReceived(TrackableNetworkMessageHandler.java:41) > at > app//org.apache.ignite.internal.network.DefaultMessagingService.handleStartingWithFirstHandler(DefaultMessagingService.java:534) > at > app//org.apache.ignite.internal.network.DefaultMessagingService.lambda$handleMessageFromNetwork$5(DefaultMessagingService.java:429) > at > app//org.apache.ignite.internal.network.DefaultMessagingService$$Lambda$1093/0x00000008010dba68.run(Unknown > Source) > at > java.base@17/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.base@17/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base@17/java.lang.Thread.run(Thread.java:833) {code} > It should be done in some thread-pool, because it involves some IO. > We should add meta-storage access to > {{{}org.apache.ignite.internal.thread.ThreadOperation{}}}. By that I mean > that we should assert {{STORAGE_READ}} while reading the data locally. _Might > be a separate Jira._ -- This message was sent by Atlassian Jira (v8.20.10#820010)