You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Gura (JIRA)" <ji...@apache.org> on 2016/06/14 18:22:27 UTC

[jira] [Comment Edited] (IGNITE-3239) "Failed to write class name to file xxxxx.classname" error when several clients and server are running at one host

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