OverlappingFileLockException

I am seeing this new exception while recovering from S3 on EC2 with 0.16.2.

  1. Error injecting constructor,
    java.nio.channels.OverlappingFileLockException
    at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:47)
    while locating org.elasticsearch.env.NodeEnvironment
    Caused by: java.nio.channels.OverlappingFileLockException
    at
    sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1215)
    at
    sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1117)
    at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:923)
    at java.nio.channels.FileChannel.tryLock(FileChannel.java:978)
    at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:216)
    at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:69)
    at
    org.elasticsearch.env.NodeEnvironment$$FastClassByGuice$$1ca63855.newInstance()
    at
    org.elasticsearch.common.inject.internal.cglib.reflect.FastConstructor.newInstance(FastConstructor.java:40)
    at
    org.elasticsearch.common.inject.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
    at
    org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
    at
    org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
    at
    org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45)
    at
    org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
    at
    org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42)
    at org.elasticsearch.common.inject.Scopes$1$1.get(Scopes.java:54)
    at
    org.elasticsearch.common.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
    at
    org.elasticsearch.common.inject.InjectorBuilder$1.call(InjectorBuilder.java:200)
    at
    org.elasticsearch.common.inject.InjectorBuilder$1.call(InjectorBuilder.java:194)
    at
    org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:804)
    at
    org.elasticsearch.common.inject.InjectorBuilder.loadEagerSingletons(InjectorBuilder.java:194)
    at
    org.elasticsearch.common.inject.InjectorBuilder.injectDynamically(InjectorBuilder.java:176)
    at
    org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java:113)
    at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:92)
    at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:69)
    at
    org.elasticsearch.common.inject.ModulesBuilder.createInjector(ModulesBuilder.java:58)
    at
    org.elasticsearch.node.internal.InternalNode.(InternalNode.java:147)
    at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)
    at
    com.tracermedia.elasticsearch.ElasticSearchServer.start(ElasticSearchServer.java:52)

I get a lot of them.

I saw some mention of this error in regards to Lucene. Should I be
concerned?

Are you running several nodes on the same machine? Basically, thats the node trying to obtain a lock for its data location (/data/nodes/N), and it fails to obtain one.

On Thursday, June 16, 2011 at 11:32 PM, James Cook wrote:

I am seeing this new exception while recovering from S3 on EC2 with 0.16.2.

  1. Error injecting constructor, java.nio.channels.OverlappingFileLockException
    at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:47)
    while locating org.elasticsearch.env.NodeEnvironment
    Caused by: java.nio.channels.OverlappingFileLockException
    at sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1215)
    at sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1117)
    at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:923)
    at java.nio.channels.FileChannel.tryLock(FileChannel.java:978)
    at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:216)
    at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:69)
    at org.elasticsearch.env.NodeEnvironment$$FastClassByGuice$$1ca63855.newInstance()
    at org.elasticsearch.common.inject.internal.cglib.reflect.FastConstructor.newInstance(FastConstructor.java:40)
    at org.elasticsearch.common.inject.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
    at org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
    at org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
    at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45)
    at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
    at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42)
    at org.elasticsearch.common.inject.Scopes$1$1.get(Scopes.java:54)
    at org.elasticsearch.common.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
    at org.elasticsearch.common.inject.InjectorBuilder$1.call(InjectorBuilder.java:200)
    at org.elasticsearch.common.inject.InjectorBuilder$1.call(InjectorBuilder.java:194)
    at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:804)
    at org.elasticsearch.common.inject.InjectorBuilder.loadEagerSingletons(InjectorBuilder.java:194)
    at org.elasticsearch.common.inject.InjectorBuilder.injectDynamically(InjectorBuilder.java:176)
    at org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java:113)
    at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:92)
    at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:69)
    at org.elasticsearch.common.inject.ModulesBuilder.createInjector(ModulesBuilder.java:58)
    at org.elasticsearch.node.internal.InternalNode.(InternalNode.java:147)
    at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)
    at com.tracermedia.elasticsearch.ElasticSearchServer.start(ElasticSearchServer.java:52)

I get a lot of them.

I saw some mention of this error in regards to Lucene. Should I be concerned?

Hmmm, not intentionally. Perhaps my web app did not shut down completely as
a new one is starting up. I am using Amazon's Elastic Beanstalk service, so
I suppose something may of been active in memory as a new web app was
deployed. I'll keep an eye on it in the future and see if any additional
Java processes are running.

I don't think that was the case since I would of expected port conflicts and
such as ES was starting up prior to receiving these exceptions.

-- jim

On Thu, Jun 16, 2011 at 4:57 PM, Shay Banon shay.banon@elasticsearch.comwrote:

Are you running several nodes on the same machine? Basically, thats the
node trying to obtain a lock for its data location (/data/nodes/N), and it
fails to obtain one.

On Thursday, June 16, 2011 at 11:32 PM, James Cook wrote:

I am seeing this new exception while recovering from S3 on EC2 with 0.16.2.

  1. Error injecting constructor,
    java.nio.channels.OverlappingFileLockException
    at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:47)
    while locating org.elasticsearch.env.NodeEnvironment
    Caused by: java.nio.channels.OverlappingFileLockException
    at
    sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1215)
    at
    sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1117)
    at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:923)
    at java.nio.channels.FileChannel.tryLock(FileChannel.java:978)
    at
    org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:216)
    at org.elasticsearch.env.NodeEnvironment.(NodeEnvironment.java:69)
    at
    org.elasticsearch.env.NodeEnvironment$$FastClassByGuice$$1ca63855.newInstance()
    at
    org.elasticsearch.common.inject.internal.cglib.reflect.FastConstructor.newInstance(FastConstructor.java:40)
    at
    org.elasticsearch.common.inject.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
    at
    org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
    at
    org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
    at
    org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:45)
    at
    org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:811)
    at
    org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:42)
    at org.elasticsearch.common.inject.Scopes$1$1.get(Scopes.java:54)
    at
    org.elasticsearch.common.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:48)
    at
    org.elasticsearch.common.inject.InjectorBuilder$1.call(InjectorBuilder.java:200)
    at
    org.elasticsearch.common.inject.InjectorBuilder$1.call(InjectorBuilder.java:194)
    at
    org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:804)
    at
    org.elasticsearch.common.inject.InjectorBuilder.loadEagerSingletons(InjectorBuilder.java:194)
    at
    org.elasticsearch.common.inject.InjectorBuilder.injectDynamically(InjectorBuilder.java:176)
    at
    org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java:113)
    at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:92)
    at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:69)
    at
    org.elasticsearch.common.inject.ModulesBuilder.createInjector(ModulesBuilder.java:58)
    at
    org.elasticsearch.node.internal.InternalNode.(InternalNode.java:147)
    at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)
    at
    com.tracermedia.elasticsearch.ElasticSearchServer.start(ElasticSearchServer.java:52)

I get a lot of them.

I saw some mention of this error in regards to Lucene. Should I be
concerned?