Chetan Mehrotra created OAK-3504:
------------------------------------
Summary: CopyOnRead directory should not schedule a copy task for
non existent file
Key: OAK-3504
URL: https://issues.apache.org/jira/browse/OAK-3504
Project: Jackrabbit Oak
Issue Type: Improvement
Components: lucene
Reporter: Chetan Mehrotra
Assignee: Chetan Mehrotra
Priority: Minor
Fix For: 1.3.9, 1.0.23, 1.2.8
CopyOnWriteDirectory currently schedules a copy task for file which does exist.
This eventually results in FileNotFoundException and that gets logged as
warning. In normal usage this should not happen at the first place i.e. look up
of non existent file. However in case of corruption it is seen that Lucene
tries to lookup segment files with increasing generation number and they flood
the log with such exception.
In such a case no scheduling of file copy should be done and instead lookup
call should be directly delegated to remote directory
{noformat}
28.09.2015 12:11:08.745 *WARN* [oak-lucene-0]
org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier Error occurred while
copying file [segments_25y] from OakDirectory@5970597
lockFactory=org.apache.lucene.store.NoLockFactory@51b451b4 to
NIOFSDirectory@/usd/as67709a/data/v04.cqa.a/repository/_cqa/repository/index/e5a943cdec3000bd8ce54924fd2070ab5d1d35b9ecf530963a3583d43bf28293/2
lockFactory=NativeFSLockFactory@/usd/as67709a/data/v04.cqa.a/repository/_cqa/repository/index/e5a943cdec3000bd8ce54924fd2070ab5d1d35b9ecf530963a3583d43bf28293/2
java.io.FileNotFoundException: segments_25y
at
org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory.openInput(OakDirectory.java:133)
at org.apache.lucene.store.Directory.copy(Directory.java:185)
at
org.apache.jackrabbit.oak.plugins.index.lucene.IndexCopier$CopyOnReadDirectory$1.run(IndexCopier.java:312)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:767)
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)