[ 
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)

Reply via email to