ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Valentin Kulichenko (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-3197) OverlappingFileLockException in marshaller context
Date Wed, 25 May 2016 13:38:12 GMT
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)

Mime
View raw message