[
https://issues.apache.org/jira/browse/IGNITE-3239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15330058#comment-15330058
]
Andrey Gura edited comment on IGNITE-3239 at 6/14/16 6:22 PM:
--------------------------------------------------------------
I need more informaton for problem analysis. But it seems that actually there
are no any deadlocks. In some cases OS makes wrong assumptions about deadlock
existance because tries to detect deadlock on processes (not threads) level. So
if different threads in one process lock some files and different threads in
other process trying to lock the same files it is possible that OS will detect
deadlock. See for example https://gist.github.com/harrah/4714661
As work around we can use {{tryLock}} method and repeat in case of fail instead
of using blocking {{lock}} method.
was (Author: agura):
I need more logs for problem analysis. But it seems that actually there are no
any deadlocks. In some cases OS makes wrong assumptions about deadlock
existance because tries to detect deadlock on processes (not threads) level. So
if different threads in one process lock some files and different threads in
other process trying to lock the same files it is possible that OS will detect
deadlock. See for example https://gist.github.com/harrah/4714661
As work around we can use {{tryLock}} method and repeat in case of fail instead
of using blocking {{lock}} method.
> "Failed to write class name to file xxxxx.classname" error when several
> clients and server are running at one host
> ------------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-3239
> URL: https://issues.apache.org/jira/browse/IGNITE-3239
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 1.7
> Reporter: Ksenia Rybakova
> Assignee: Andrey Gura
> Priority: Minor
>
> During load test with 4 clients and 1 server per host (total 4 servers) the
> following errors occur on server and client sides:
> {noformat}
> [06:02:28,418][ERROR][marshaller-cache-#96%null%][MarshallerContextImpl]
> Failed to write class name to file [id=1023271795,
> clsName=o.a.i.yardstick.cache.load.model.key.Identifier,
> file=/home/gridgain/krybakova/opts-set-b-0-m-client-rev-3c3ed056-date-0206-060158/yardstick/work/marshaller/1023271795.classname]
> java.io.IOException: Resource deadlock avoided
> at sun.nio.ch.FileDispatcherImpl.lock0(Native Method)
> at sun.nio.ch.FileDispatcherImpl.lock(FileDispatcherImpl.java:90)
> at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1052)
> at
> org.apache.ignite.internal.MarshallerContextImpl$ContinuousQueryListener.onUpdated(MarshallerContextImpl.java:236)
> at
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler.onEntryUpdate(CacheContinuousQueryHandler.java:769)
> at
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler.access$700(CacheContinuousQueryHandler.java:91)
> at
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler$1.onEntryUpdated(CacheContinuousQueryHandler.java:412)
> at
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryManager.onEntryUpdated(CacheContinuousQueryManager.java:343)
> at
> org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryManager.onEntryUpdated(CacheContinuousQueryManager.java:250)
> at
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:2167)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:2250)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1644)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1484)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateRequest(GridDhtAtomicCache.java:2945)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$600(GridDhtAtomicCache.java:129)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:260)
> at
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:258)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:624)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:322)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:246)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:83)
> at
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:205)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1219)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:847)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:105)
> at
> org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:810)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:745)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)