You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2016/10/29 09:55:58 UTC

[jira] [Commented] (LUCENE-7527) Facing unsafe memory access operation error while calling searcherManager.maybeReopen()

    [ https://issues.apache.org/jira/browse/LUCENE-7527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15617848#comment-15617848 ] 

Michael McCandless commented on LUCENE-7527:
--------------------------------------------

This can happen if your application mis-uses the {{IndexReader}} lifecycle by closing an {{IndexReader}} while searches are still running.

Triple check all your code to make sure you always {{acquire}} a searcher from {{SearcherManager}} and then always release it, only once, via {{release}}, and that you never directly close a searcher (just the {{SearcherManager}} once all searching is finished).

Though it is odd you hit it inside {{cleanMapping}}.

You could also try switching to {{NIOFSDirectory}} ... performance may be worse in some cases, but maybe it'll throw {{AlreadyClosedException}} instead of crashing your JVM.

Also, 3.5 is really ancient at this point.  It could be you are hitting an already fixed bug.

> Facing unsafe memory access operation error while calling searcherManager.maybeReopen()
> ---------------------------------------------------------------------------------------
>
>                 Key: LUCENE-7527
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7527
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/search
>    Affects Versions: 3.5
>            Reporter: Jagmohan Singh
>
> We are getting below error while calling searcherManager.maybeReopen() method. We are using MMAP implementation to read NFS index directory mounted against 3 servers. We have a different process to update the indices and 3 other processes to read from the same index. What we believe is that this issue occurs when we call maybeReopen() method during heavy writes to the indices and MMap implementation is not able to coop with it..
> Caused by: java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code
>         at java.security.AccessController.doPrivileged(Native Method)
>         at org.apache.lucene.store.MMapDirectory.cleanMapping(MMapDirectory.java:158)
>         at org.apache.lucene.store.MMapDirectory$MMapIndexInput.close(MMapDirectory.java:389)
>         at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:690)
>         at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:593)
>         at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:359)
>         at org.apache.lucene.index.SegmentInfos.readCurrentVersion(SegmentInfos.java:480)
>         at org.apache.lucene.index.DirectoryReader.isCurrent(DirectoryReader.java:901)
>         at org.apache.lucene.index.DirectoryReader.doOpenNoWriter(DirectoryReader.java:471)
>         at org.apache.lucene.index.DirectoryReader.doOpenIfChanged(DirectoryReader.java:450)
>         at org.apache.lucene.index.DirectoryReader.doOpenIfChanged(DirectoryReader.java:391)
>         at org.apache.lucene.index.IndexReader.openIfChanged(IndexReader.java:497)
>         at org.apache.lucene.search.SearcherManager.maybeReopen(SearcherManager.java:162)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org