GitHub user cpoerschke opened a pull request:

    https://github.com/apache/lucene-solr/pull/75

    SOLR-6296: add shutdownCoresCloseTimeoutSeconds support

    https://issues.apache.org/jira/i#browse/SOLR-6296

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/bloomberg/lucene-solr 
trunk-shutdown-cores-close-timeout

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/lucene-solr/pull/75.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #75
    
----
commit e58264b22117c4d6f415bd607ea5e03c48c24219
Author: Christine Poerschke <[email protected]>
Date:   2014-06-24T10:27:28Z

    solr: add shutdownCoresCloseTimeoutSeconds support with corresponding 
TestCoreContainer test
    
    The problem we saw was that an error-in-final-commit during solr-shutdown 
(details below) led to a corrupted segments_.... file which prevented 
subsequent solr-start.
    
    This change (subject to a timeout) delays solr-shutdown until all requests 
have stopped using all solr cores. It also prints any suppressed exceptions 
within the error-in-final-commit exception.
    
    error-in-final-commit details:
    
    WARN [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:145] 1 threads could not be stopped
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:151] Couldn't stop Thread[qtp562266264-45169,5,main]
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at java.io.RandomAccessFile.$$YJP$$open(Native 
Method)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
java.io.RandomAccessFile.open(RandomAccessFile.java)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
java.io.RandomAccessFile.<init>(RandomAccessFile.java:233)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.lucene.store.FSDirectory$FSIndexOutput.<init>(FSDirectory.java:394)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.lucene.store.FSDirectory.createOutput(FSDirectory.java:282)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.lucene.store.NRTCachingDirectory.unCache(NRTCachingDirectory.java:297)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.lucene.store.NRTCachingDirectory.sync(NRTCachingDirectory.java:216)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.lucene.index.IndexWriter.startCommit(IndexWriter.java:4475)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2989)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3096)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3063)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.solr.update.DirectUpdateHandler2.closeWriter(DirectUpdateHandler2.java:765)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.solr.update.DefaultSolrCoreState.closeIndexWriter(DefaultSolrCoreState.java:68)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.solr.update.DefaultSolrCoreState.close(DefaultSolrCoreState.java:359)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.solr.update.SolrCoreState.decrefSolrCoreState(SolrCoreState.java:72)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.solr.core.SolrCore.close(SolrCore.java:1058)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:453)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
    ERROR [qtp562266264-45169] o.a.s.u.UpdateHandler 
[DirectUpdateHandler2.java:772] Error in final commit
    org.apache.lucene.util.ThreadInterruptedException: 
java.lang.InterruptedException: sleep interrupted
        at org.apache.lucene.util.IOUtils.fsync(IOUtils.java:326)
        at org.apache.lucene.store.FSDirectory.fsync(FSDirectory.java:449)
        at org.apache.lucene.store.FSDirectory.sync(FSDirectory.java:306)
        at 
org.apache.lucene.store.NRTCachingDirectory.sync(NRTCachingDirectory.java:218)
        at 
org.apache.lucene.index.IndexWriter.startCommit(IndexWriter.java:4475)
        at 
org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2989)
        at 
org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3096)
        at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3063)
        at 
org.apache.solr.update.DirectUpdateHandler2.closeWriter(DirectUpdateHandler2.java:765)
        at 
org.apache.solr.update.DefaultSolrCoreState.closeIndexWriter(DefaultSolrCoreState.java:68)
        at 
org.apache.solr.update.DefaultSolrCoreState.close(DefaultSolrCoreState.java:359)
        at 
org.apache.solr.update.SolrCoreState.decrefSolrCoreState(SolrCoreState.java:72)
        at org.apache.solr.core.SolrCore.close(SolrCore.java:1058)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:453)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
        at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:368)
        at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
        at 
org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
        at 
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:953)
        at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1014)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:953)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
        at 
org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
        at 
org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:722) [na:1.7.0_10]
    Caused by: java.lang.InterruptedException: sleep interrupted
        at java.lang.Thread.$$YJP$$sleep(Native Method) [na:1.7.0_10]
        at java.lang.Thread.sleep(Thread.java) [na:1.7.0_10]
        at org.apache.lucene.util.IOUtils.fsync(IOUtils.java:324)
        ... 39 common frames omitted
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.Server.handle(Server.java:368)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:953)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1014)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:953)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    INFO [ShutdownMonitor] o.e.j.u.t.QueuedThreadPool 
[QueuedThreadPool.java:154]  at java.lang.Thread.run(Thread.java:722)

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to