[ 
https://issues.apache.org/jira/browse/SOLR-9120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hoss Man updated SOLR-9120:
---------------------------
    Affects Version/s: 5.5
          Description: 
Begining with Solr 5.5, the LukeRequestHandler started attempting to report the 
name and file size of the segments file for the _current_ Searcher+IndexReader 
in use by Solr -- however the filesize information is not always available from 
the Directory in cases where "on disk" commits have caused that file to be 
removed, for example...

* you perform index updates & commits w/o "newSearcher" being opened
* you "concurrently" make requests to the LukeRequestHandler or the 
CoreAdminHandler requesting "STATUS" (ie: after the commit, before any 
newSearcher)
** these requests can come from the Admin UI passively if it's open in a browser

In situations like this, a decision was made in SOLR-8587 to log a WARNing in 
the event that the segments file size could not be determined -- but these 
WARNing messages look scary and have lead (many) users to assume something is 
wrong with their solr index.

We should reduce the severity of these log messages, and improve the wording to 
make it more clear that this is not a fundemental problem with the index.

----


Here's some trivial steps to reproduce the WARN message...

{noformat}
$ bin/solr -e techproducts
...
$ tail -f example/techproducts/logs/solr.log
...
{noformat}

In another terminal...

{noformat}
$ curl -H 'Content-Type: application/json' 
'http://localhost:8983/solr/techproducts/update?commit=true&openSearcher=false' 
--data-binary '[{"id":"HOSS"}]'
...
$ curl 'http://localhost:8983/solr/techproducts/admin/luke'
...
{noformat}

When the "/admin/luke" URL is hit, this will show up in the logs – but the luke 
request will finish correctly...

{noformat}
WARN  - 2017-11-08 17:23:44.574; [   x:techproducts] 
org.apache.solr.handler.admin.LukeRequestHandler; Error getting file length for 
[segments_2]
java.nio.file.NoSuchFileException: 
/home/hossman/lucene/dev/solr/example/techproducts/solr/techproducts/data/index/segments_2
        at 
sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at 
sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
        at 
sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
        at 
sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
        at java.nio.file.Files.readAttributes(Files.java:1737)
        at java.nio.file.Files.size(Files.java:2332)
        at org.apache.lucene.store.FSDirectory.fileLength(FSDirectory.java:243)
        at 
org.apache.lucene.store.NRTCachingDirectory.fileLength(NRTCachingDirectory.java:128)
        at 
org.apache.solr.handler.admin.LukeRequestHandler.getFileLength(LukeRequestHandler.java:611)
        at 
org.apache.solr.handler.admin.LukeRequestHandler.getIndexInfo(LukeRequestHandler.java:584)
        at 
org.apache.solr.handler.admin.LukeRequestHandler.handleRequestBody(LukeRequestHandler.java:136)
        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:177)
...
INFO  - 2017-11-08 17:23:44.587; [   x:techproducts] 
org.apache.solr.core.SolrCore; [techproducts]  webapp=/solr path=/admin/luke 
params={} status=0 QTime=15
{noformat}

  was:
On Solr 6.0, we frequently see the following errors popping up:

{code}
java.nio.file.NoSuchFileException: 
/var/lib/solr/logs_shard2_replica1/data/index/segments_2c5
        at 
sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at 
sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
        at 
sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
        at 
sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
        at java.nio.file.Files.readAttributes(Files.java:1737)
        at java.nio.file.Files.size(Files.java:2332)
        at org.apache.lucene.store.FSDirectory.fileLength(FSDirectory.java:243)
        at 
org.apache.lucene.store.NRTCachingDirectory.fileLength(NRTCachingDirectory.java:131)
        at 
org.apache.solr.handler.admin.LukeRequestHandler.getFileLength(LukeRequestHandler.java:597)
        at 
org.apache.solr.handler.admin.LukeRequestHandler.getIndexInfo(LukeRequestHandler.java:585)
        at 
org.apache.solr.handler.admin.LukeRequestHandler.handleRequestBody(LukeRequestHandler.java:137)
        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:155)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:2033)
        at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:652)
        at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:460)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:229)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:184)
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1160)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
        at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
        at org.eclipse.jetty.server.Server.handle(Server.java:518)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)
        at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)
        at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
        at 
org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
        at 
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246)
        at 
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
        at java.lang.Thread.run(Thread.java:745)
{code}

           Issue Type: Improvement  (was: Bug)
              Summary: LukeRequestHandler logs WARN "Error getting file length 
for [segments_NNN]" for inconsequential NoSuchFileException situations -- looks 
scary but is not a problem, logging should be reduced  (was: 
o.a.s.h.a.LukeRequestHandler Error getting file length for [segments_NNN] -- 
NoSuchFileException)

> LukeRequestHandler logs WARN "Error getting file length for [segments_NNN]" 
> for inconsequential NoSuchFileException situations -- looks scary but is not 
> a problem, logging should be reduced
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-9120
>                 URL: https://issues.apache.org/jira/browse/SOLR-9120
>             Project: Solr
>          Issue Type: Improvement
>    Affects Versions: 5.5, 6.0
>            Reporter: Markus Jelsma
>            Assignee: Hoss Man
>         Attachments: SOLR-9120.patch, SOLR-9120.patch, SOLR-9120.patch
>
>
> Begining with Solr 5.5, the LukeRequestHandler started attempting to report 
> the name and file size of the segments file for the _current_ 
> Searcher+IndexReader in use by Solr -- however the filesize information is 
> not always available from the Directory in cases where "on disk" commits have 
> caused that file to be removed, for example...
> * you perform index updates & commits w/o "newSearcher" being opened
> * you "concurrently" make requests to the LukeRequestHandler or the 
> CoreAdminHandler requesting "STATUS" (ie: after the commit, before any 
> newSearcher)
> ** these requests can come from the Admin UI passively if it's open in a 
> browser
> In situations like this, a decision was made in SOLR-8587 to log a WARNing in 
> the event that the segments file size could not be determined -- but these 
> WARNing messages look scary and have lead (many) users to assume something is 
> wrong with their solr index.
> We should reduce the severity of these log messages, and improve the wording 
> to make it more clear that this is not a fundemental problem with the index.
> ----
> Here's some trivial steps to reproduce the WARN message...
> {noformat}
> $ bin/solr -e techproducts
> ...
> $ tail -f example/techproducts/logs/solr.log
> ...
> {noformat}
> In another terminal...
> {noformat}
> $ curl -H 'Content-Type: application/json' 
> 'http://localhost:8983/solr/techproducts/update?commit=true&openSearcher=false'
>  --data-binary '[{"id":"HOSS"}]'
> ...
> $ curl 'http://localhost:8983/solr/techproducts/admin/luke'
> ...
> {noformat}
> When the "/admin/luke" URL is hit, this will show up in the logs – but the 
> luke request will finish correctly...
> {noformat}
> WARN  - 2017-11-08 17:23:44.574; [   x:techproducts] 
> org.apache.solr.handler.admin.LukeRequestHandler; Error getting file length 
> for [segments_2]
> java.nio.file.NoSuchFileException: 
> /home/hossman/lucene/dev/solr/example/techproducts/solr/techproducts/data/index/segments_2
>       at 
> sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
>       at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
>       at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
>       at 
> sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
>       at 
> sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
>       at 
> sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
>       at java.nio.file.Files.readAttributes(Files.java:1737)
>       at java.nio.file.Files.size(Files.java:2332)
>       at org.apache.lucene.store.FSDirectory.fileLength(FSDirectory.java:243)
>       at 
> org.apache.lucene.store.NRTCachingDirectory.fileLength(NRTCachingDirectory.java:128)
>       at 
> org.apache.solr.handler.admin.LukeRequestHandler.getFileLength(LukeRequestHandler.java:611)
>       at 
> org.apache.solr.handler.admin.LukeRequestHandler.getIndexInfo(LukeRequestHandler.java:584)
>       at 
> org.apache.solr.handler.admin.LukeRequestHandler.handleRequestBody(LukeRequestHandler.java:136)
>       at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:177)
> ...
> INFO  - 2017-11-08 17:23:44.587; [   x:techproducts] 
> org.apache.solr.core.SolrCore; [techproducts]  webapp=/solr path=/admin/luke 
> params={} status=0 QTime=15
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to