Valentin Kulichenko created IGNITE-3197:
-------------------------------------------
Summary: OverlappingFileLockException in marshaller context
Key: IGNITE-3197
URL: https://issues.apache.org/jira/browse/IGNITE-3197
Project: Ignite
Issue Type: Bug
Components: general
Affects Versions: 1.6
Reporter: Valentin Kulichenko
Fix For: 1.7
{{MarshallerContextImpl}} uses static locks to avoid writing to the same file
concurrently. But if Ignite is running embedded in managed environment (e.g.,
application server), it's possible that there will be two clients loaded by
different class loaders. In this case they will not share these static locks
and therefore they can try to acquire the file lock for the same file, causing
the {{OverlappingFileLockException}}:
{noformat}
[#|2016-05-17T08:02:21.950+0100|SEVERE|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=291;_ThreadName=Thread-2;|java.nio.channels.OverlappingFileLockException
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1011)
at
org.apache.ignite.internal.MarshallerContextImpl$ContinuousQueryListener.onUpdated(MarshallerContextImpl.java:239)
at
org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler.notifyCallback(CacheContinuousQueryHandler.java:655)
at
org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.processNotification(GridContinuousProcessor.java:967)
at
org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.access$1900(GridContinuousProcessor.java:94)
at
org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$8.onMessage(GridContinuousProcessor.java:612)
at
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1058)
at
org.apache.ignite.internal.managers.communication.GridIoManager.access$1600(GridIoManager.java:104)
at
org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2295)
at
org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:1018)
at
org.apache.ignite.internal.managers.communication.GridIoManager.access$1900(GridIoManager.java:104)
at
org.apache.ignite.internal.managers.communication.GridIoManager$6.run(GridIoManager.java:987)
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}
It's actually harmless, but the logs are flooded with the errors.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)