[
https://issues.apache.org/jira/browse/SOLR-8630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15229711#comment-15229711
]
David Smiley commented on SOLR-8630:
------------------------------------
[~rcmuir] in LUCENE-5945 (cutover to Path API) I see you committed a change to
{{NRTCachingDirectory}} that does not appear related to that issue. That was a
huge patch so I can see how some W.I.P. might have gotten in there by accident.
The code here used to not throw this exception reported by this issue. Can
you explain why the code was changed? git hash
3eb66fb19ca2aa3d9dce53661f3233b6c9d3f974
> IllegalStateException in NRTCachingDirectory.listAll
> ----------------------------------------------------
>
> Key: SOLR-8630
> URL: https://issues.apache.org/jira/browse/SOLR-8630
> Project: Solr
> Issue Type: Bug
> Affects Versions: 5.2.1
> Environment: Production, QA
> Reporter: Semion Mc Alice
>
> Hey,
> we are getting IllegalStateException in 2 different circumstances. The first
> one is on Status calls:
> {noformat}
> ERROR - 2016-02-01 22:32:43.164; [ ] org.apache.solr.common.SolrException;
> org.apache.solr.common.SolrException: Error handling 'status' action
> at
> org.apache.solr.handler.admin.CoreAdminHandler.handleStatusAction(CoreAdminHandler.java:748)
> at
> org.apache.solr.handler.admin.CoreAdminHandler.handleRequestInternal(CoreAdminHandler.java:228)
> at
> org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:193)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
> at
> org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:660)
> at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:431)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> at
> org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:95)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1129)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> at org.eclipse.jetty.server.Server.handle(Server.java:497)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> at
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.IllegalStateException: file:
> MMapDirectory@D:\Solr\server\solr\Prod_Core1_shard1_replica2\data\index
> lockFactory=org.apache.lucene.store.NativeFSLockFactory@65d307e5 appears both
> in delegate and in cache: cache=[_a0.fdt, _9t_7.liv, _a0.fdx,
> _a0_Lucene50_0.tip, _a0.nvm, _a0_Lucene50_0.doc, _a0_Lucene50_0.tim, _a0.fnm,
> _a0_Lucene50_0.pos, _a0.si],delegate=[pending_segments_93, segments_92,
> write.lock, _9t.fdt, _9t.fdx, _9t.fnm, _9t.nvd, _9t.nvm, _9t.si, _9t_6.liv,
> _9t_Lucene50_0.doc, _9t_Lucene50_0.pos, _9t_Lucene50_0.tim,
> _9t_Lucene50_0.tip, _9u.fdt, _9u.fdx, _9u.fnm, _9u.nvd, _9u.nvm, _9u.si,
> _9u_Lucene50_0.doc, _9u_Lucene50_0.pos, _9u_Lucene50_0.tim,
> _9u_Lucene50_0.tip, _9v.fdt, _9v.fdx, _9v.fnm, _9v.nvd, _9v.nvm, _9v.si,
> _9v_Lucene50_0.doc, _9v_Lucene50_0.pos, _9v_Lucene50_0.tim,
> _9v_Lucene50_0.tip, _9w.fdt, _9w.fdx, _9w.fnm, _9w.nvd, _9w.nvm, _9w.si,
> _9w_Lucene50_0.doc, _9w_Lucene50_0.pos, _9w_Lucene50_0.tim,
> _9w_Lucene50_0.tip, _9x.fdt, _9x.fdx, _9x.fnm, _9x.nvd, _9x.nvm, _9x.si,
> _9x_Lucene50_0.doc, _9x_Lucene50_0.pos, _9x_Lucene50_0.tim,
> _9x_Lucene50_0.tip, _9y.fdt, _9y.fdx, _9y.fnm, _9y.nvd, _9y.nvm, _9y.si,
> _9y_Lucene50_0.doc, _9y_Lucene50_0.pos, _9y_Lucene50_0.tim,
> _9y_Lucene50_0.tip, _9z.fdt, _9z.fdx, _9z.fnm, _9z.nvd, _9z.nvm, _9z.si,
> _9z_Lucene50_0.doc, _9z_Lucene50_0.pos, _9z_Lucene50_0.tim,
> _9z_Lucene50_0.tip, _a0.nvd, _a0_Lucene50_0.pos]
> at
> org.apache.lucene.store.NRTCachingDirectory.listAll(NRTCachingDirectory.java:103)
> at
> org.apache.solr.core.DirectoryFactory.sizeOfDirectory(DirectoryFactory.java:208)
> at
> org.apache.solr.handler.admin.CoreAdminHandler.getIndexSize(CoreAdminHandler.java:1195)
> at
> org.apache.solr.handler.admin.CoreAdminHandler.getCoreStatus(CoreAdminHandler.java:1173)
> at
> org.apache.solr.handler.admin.CoreAdminHandler.handleStatusAction(CoreAdminHandler.java:736)
> ... 30 more
> {noformat}
> and the second one is on some kind of replication related request:
> {noformat}
> null:java.lang.IllegalStateException: file:
> MMapDirectory@D:\Solr\server\solr\Prod_Core1_shard1_replica3\data\index
> lockFactory=org.apache.lucene.store.NativeFSLockFactory@65d307e5 appears both
> in delegate and in cache: cache=[_g3x.si, _g3x.fdx,
> _g3x.fdt],delegate=[pending_segments_eia, segments_ei9, write.lock, _g3q.fdt,
> _g3q.fdx, _g3q.fnm, _g3q.nvd, _g3q.nvm, _g3q.si, _g3q_6.liv, _g3q_7.liv,
> _g3q_Lucene50_0.doc, _g3q_Lucene50_0.pos, _g3q_Lucene50_0.tim,
> _g3q_Lucene50_0.tip, _g3r.fdt, _g3r.fdx, _g3r.fnm, _g3r.nvd, _g3r.nvm,
> _g3r.si, _g3r_Lucene50_0.doc, _g3r_Lucene50_0.pos, _g3r_Lucene50_0.tim,
> _g3r_Lucene50_0.tip, _g3s.fdt, _g3s.fdx, _g3s.fnm, _g3s.nvd, _g3s.nvm,
> _g3s.si, _g3s_Lucene50_0.doc, _g3s_Lucene50_0.pos, _g3s_Lucene50_0.tim,
> _g3s_Lucene50_0.tip, _g3t.fdt, _g3t.fdx, _g3t.fnm, _g3t.nvd, _g3t.nvm,
> _g3t.si, _g3t_Lucene50_0.doc, _g3t_Lucene50_0.pos, _g3t_Lucene50_0.tim,
> _g3t_Lucene50_0.tip, _g3u.fdt, _g3u.fdx, _g3u.fnm, _g3u.nvd, _g3u.nvm,
> _g3u.si, _g3u_Lucene50_0.doc, _g3u_Lucene50_0.pos, _g3u_Lucene50_0.tim,
> _g3u_Lucene50_0.tip, _g3v.fdt, _g3v.fdx, _g3v.fnm, _g3v.nvd, _g3v.nvm,
> _g3v.si, _g3v_Lucene50_0.doc, _g3v_Lucene50_0.pos, _g3v_Lucene50_0.tim,
> _g3v_Lucene50_0.tip, _g3w.fdt, _g3w.fdx, _g3w.fnm, _g3w.nvd, _g3w.nvm,
> _g3w.si, _g3w_Lucene50_0.doc, _g3w_Lucene50_0.pos, _g3w_Lucene50_0.tim,
> _g3w_Lucene50_0.tip, _g3x.fnm, _g3x.nvd, _g3x.nvm, _g3x.si,
> _g3x_Lucene50_0.doc, _g3x_Lucene50_0.pos, _g3x_Lucene50_0.tim,
> _g3x_Lucene50_0.tip]
> at
> org.apache.lucene.store.NRTCachingDirectory.listAll(NRTCachingDirectory.java:103)
> at
> org.apache.solr.core.DirectoryFactory.sizeOfDirectory(DirectoryFactory.java:208)
> at
> org.apache.solr.handler.ReplicationHandler.getIndexSize(ReplicationHandler.java:705)
> at
> org.apache.solr.handler.ReplicationHandler.getStatistics(ReplicationHandler.java:741)
> at
> org.apache.solr.handler.admin.SolrInfoMBeanHandler.addMBean(SolrInfoMBeanHandler.java:165)
> at
> org.apache.solr.handler.admin.SolrInfoMBeanHandler.getMBeanInfo(SolrInfoMBeanHandler.java:135)
> at
> org.apache.solr.handler.admin.SolrInfoMBeanHandler.handleRequestBody(SolrInfoMBeanHandler.java:66)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
> at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
> at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> at
> org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:95)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1129)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> at org.eclipse.jetty.server.Server.handle(Server.java:497)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> at
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> at java.lang.Thread.run(Unknown Source)
> {noformat}
> The Environment is a 3 node SOLR Cloud setup running SOLR 5.2.1.
> when looking at the code:
> {code}
> public synchronized String[] listAll() throws IOException {
> final Set<String> files = new HashSet<>();
> for(String f : cache.listAll()) {
> files.add(f);
> }
> for(String f : in.listAll()) {
> if (!files.add(f)) {
> throw new IllegalStateException("file: " + in + " appears both in
> delegate and in cache: " +
> "cache=" +
> Arrays.toString(cache.listAll()) + ",delegate=" +
> Arrays.toString(in.listAll()));
> }
> }
> return files.toArray(new String[files.size()]);
> }
> {code}
> i can see that the exception is thrown because the file exists in both the
> cache and the file system.
> this however doesn't make sense to me, because a file that is in cache will
> always be in the file system as well.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]