You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-dev@lucene.apache.org by "Stu Hood (JIRA)" <ji...@apache.org> on 2007/07/26 17:09:04 UTC

[jira] Created: (SOLR-320) DirectUpdateHandler2 threading issue

DirectUpdateHandler2 threading issue
------------------------------------

                 Key: SOLR-320
                 URL: https://issues.apache.org/jira/browse/SOLR-320
             Project: Solr
          Issue Type: Bug
          Components: update
    Affects Versions: 1.2
         Environment: Ubuntu 7.04, Java 1.6.0-b105
            Reporter: Stu Hood


While working on an embedded Solr solution, I noticed that one of the threads created during typical usage of (SolrCore, DocumentBuilder and UpdateHandler), was not dying.

I wrote a small embedded Solr app, and running it under JDB made it clear that the environment was not finishing cleanly because of a thread called "pool-2-thread-1" in "cond. waiting" state. After a quick grep, I saw that only one class uses a thread pool, and that is the DirectUpdateHandler2. It uses an instance of ScheduledExecutorService to manage autocommit threads, but it apparently isn't dieing correctly.

I'll start working on a patch, but the original author of the handler probably has more knowledge (see https://issues.apache.org/jira/browse/SOLR-65)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (SOLR-320) DirectUpdateHandler2 threading issue

Posted by "Mike Klaas (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SOLR-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12515784 ] 

Mike Klaas commented on SOLR-320:
---------------------------------

Thanks for the bug report!  I should be able to fix this momentarily.

> DirectUpdateHandler2 threading issue
> ------------------------------------
>
>                 Key: SOLR-320
>                 URL: https://issues.apache.org/jira/browse/SOLR-320
>             Project: Solr
>          Issue Type: Bug
>          Components: update
>    Affects Versions: 1.2
>         Environment: Ubuntu 7.04, Java 1.6.0-b105
>            Reporter: Stu Hood
>         Attachments: solr-runner.tgz
>
>
> While working on an embedded Solr solution, I noticed that one of the threads created during typical usage of (SolrCore, DocumentBuilder and UpdateHandler), was not dying.
> I wrote a small embedded Solr app, and running it under JDB made it clear that the environment was not finishing cleanly because of a thread called "pool-2-thread-1" in "cond. waiting" state. After a quick grep, I saw that only one class uses a thread pool, and that is the DirectUpdateHandler2. It uses an instance of ScheduledExecutorService to manage autocommit threads, but it apparently isn't dieing correctly.
> I'll start working on a patch, but the original author of the handler probably has more knowledge (see https://issues.apache.org/jira/browse/SOLR-65)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (SOLR-320) DirectUpdateHandler2 threading issue

Posted by "Stu Hood (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SOLR-320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stu Hood updated SOLR-320:
--------------------------

    Attachment: solr-runner.tgz

Here is a little embedded Solr testcase that exhibits the problem. See the README file for instructions.

> DirectUpdateHandler2 threading issue
> ------------------------------------
>
>                 Key: SOLR-320
>                 URL: https://issues.apache.org/jira/browse/SOLR-320
>             Project: Solr
>          Issue Type: Bug
>          Components: update
>    Affects Versions: 1.2
>         Environment: Ubuntu 7.04, Java 1.6.0-b105
>            Reporter: Stu Hood
>         Attachments: solr-runner.tgz
>
>
> While working on an embedded Solr solution, I noticed that one of the threads created during typical usage of (SolrCore, DocumentBuilder and UpdateHandler), was not dying.
> I wrote a small embedded Solr app, and running it under JDB made it clear that the environment was not finishing cleanly because of a thread called "pool-2-thread-1" in "cond. waiting" state. After a quick grep, I saw that only one class uses a thread pool, and that is the DirectUpdateHandler2. It uses an instance of ScheduledExecutorService to manage autocommit threads, but it apparently isn't dieing correctly.
> I'll start working on a patch, but the original author of the handler probably has more knowledge (see https://issues.apache.org/jira/browse/SOLR-65)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (SOLR-320) DirectUpdateHandler2 threading issue

Posted by "Stu Hood (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SOLR-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12515746 ] 

Stu Hood commented on SOLR-320:
-------------------------------

Additionally, with the attached files, I noticed that disabling autoCommit fixes the problem.

> DirectUpdateHandler2 threading issue
> ------------------------------------
>
>                 Key: SOLR-320
>                 URL: https://issues.apache.org/jira/browse/SOLR-320
>             Project: Solr
>          Issue Type: Bug
>          Components: update
>    Affects Versions: 1.2
>         Environment: Ubuntu 7.04, Java 1.6.0-b105
>            Reporter: Stu Hood
>         Attachments: solr-runner.tgz
>
>
> While working on an embedded Solr solution, I noticed that one of the threads created during typical usage of (SolrCore, DocumentBuilder and UpdateHandler), was not dying.
> I wrote a small embedded Solr app, and running it under JDB made it clear that the environment was not finishing cleanly because of a thread called "pool-2-thread-1" in "cond. waiting" state. After a quick grep, I saw that only one class uses a thread pool, and that is the DirectUpdateHandler2. It uses an instance of ScheduledExecutorService to manage autocommit threads, but it apparently isn't dieing correctly.
> I'll start working on a patch, but the original author of the handler probably has more knowledge (see https://issues.apache.org/jira/browse/SOLR-65)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (SOLR-320) DirectUpdateHandler2 threading issue

Posted by "Stu Hood (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SOLR-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12515799 ] 

Stu Hood commented on SOLR-320:
-------------------------------

Thanks Mike!

> DirectUpdateHandler2 threading issue
> ------------------------------------
>
>                 Key: SOLR-320
>                 URL: https://issues.apache.org/jira/browse/SOLR-320
>             Project: Solr
>          Issue Type: Bug
>          Components: update
>    Affects Versions: 1.2
>         Environment: Ubuntu 7.04, Java 1.6.0-b105
>            Reporter: Stu Hood
>            Assignee: Mike Klaas
>             Fix For: 1.3
>
>         Attachments: solr-runner.tgz
>
>
> While working on an embedded Solr solution, I noticed that one of the threads created during typical usage of (SolrCore, DocumentBuilder and UpdateHandler), was not dying.
> I wrote a small embedded Solr app, and running it under JDB made it clear that the environment was not finishing cleanly because of a thread called "pool-2-thread-1" in "cond. waiting" state. After a quick grep, I saw that only one class uses a thread pool, and that is the DirectUpdateHandler2. It uses an instance of ScheduledExecutorService to manage autocommit threads, but it apparently isn't dieing correctly.
> I'll start working on a patch, but the original author of the handler probably has more knowledge (see https://issues.apache.org/jira/browse/SOLR-65)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (SOLR-320) DirectUpdateHandler2 threading issue

Posted by "J.J. Larrea (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SOLR-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12515809 ] 

J.J. Larrea commented on SOLR-320:
----------------------------------

This was biting me too... thanks for filing the detailed report + testcase, Stu, and the super-quick fix, Mike!

> DirectUpdateHandler2 threading issue
> ------------------------------------
>
>                 Key: SOLR-320
>                 URL: https://issues.apache.org/jira/browse/SOLR-320
>             Project: Solr
>          Issue Type: Bug
>          Components: update
>    Affects Versions: 1.2
>         Environment: Ubuntu 7.04, Java 1.6.0-b105
>            Reporter: Stu Hood
>            Assignee: Mike Klaas
>             Fix For: 1.3
>
>         Attachments: solr-runner.tgz
>
>
> While working on an embedded Solr solution, I noticed that one of the threads created during typical usage of (SolrCore, DocumentBuilder and UpdateHandler), was not dying.
> I wrote a small embedded Solr app, and running it under JDB made it clear that the environment was not finishing cleanly because of a thread called "pool-2-thread-1" in "cond. waiting" state. After a quick grep, I saw that only one class uses a thread pool, and that is the DirectUpdateHandler2. It uses an instance of ScheduledExecutorService to manage autocommit threads, but it apparently isn't dieing correctly.
> I'll start working on a patch, but the original author of the handler probably has more knowledge (see https://issues.apache.org/jira/browse/SOLR-65)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (SOLR-320) DirectUpdateHandler2 threading issue

Posted by "Mike Klaas (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/SOLR-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12515788 ] 

Mike Klaas commented on SOLR-320:
---------------------------------

This fixes the problem for me:

Index: src/java/org/apache/solr/update/DirectUpdateHandler2.java
===================================================================
--- src/java/org/apache/solr/update/DirectUpdateHandler2.java   (revision 559884)
+++ src/java/org/apache/solr/update/DirectUpdateHandler2.java   (working copy)
@@ -566,6 +566,7 @@
         tracker.pending.cancel( true );
         tracker.pending = null;
       }
+      tracker.scheduler.shutdown(); 
       doDeletions();
       closeSearcher();
       closeWriter();

> DirectUpdateHandler2 threading issue
> ------------------------------------
>
>                 Key: SOLR-320
>                 URL: https://issues.apache.org/jira/browse/SOLR-320
>             Project: Solr
>          Issue Type: Bug
>          Components: update
>    Affects Versions: 1.2
>         Environment: Ubuntu 7.04, Java 1.6.0-b105
>            Reporter: Stu Hood
>             Fix For: 1.3
>
>         Attachments: solr-runner.tgz
>
>
> While working on an embedded Solr solution, I noticed that one of the threads created during typical usage of (SolrCore, DocumentBuilder and UpdateHandler), was not dying.
> I wrote a small embedded Solr app, and running it under JDB made it clear that the environment was not finishing cleanly because of a thread called "pool-2-thread-1" in "cond. waiting" state. After a quick grep, I saw that only one class uses a thread pool, and that is the DirectUpdateHandler2. It uses an instance of ScheduledExecutorService to manage autocommit threads, but it apparently isn't dieing correctly.
> I'll start working on a patch, but the original author of the handler probably has more knowledge (see https://issues.apache.org/jira/browse/SOLR-65)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (SOLR-320) DirectUpdateHandler2 threading issue

Posted by "Mike Klaas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SOLR-320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Klaas resolved SOLR-320.
-----------------------------

       Resolution: Fixed
    Fix Version/s: 1.3
         Assignee: Mike Klaas

Fixed in r559887

> DirectUpdateHandler2 threading issue
> ------------------------------------
>
>                 Key: SOLR-320
>                 URL: https://issues.apache.org/jira/browse/SOLR-320
>             Project: Solr
>          Issue Type: Bug
>          Components: update
>    Affects Versions: 1.2
>         Environment: Ubuntu 7.04, Java 1.6.0-b105
>            Reporter: Stu Hood
>            Assignee: Mike Klaas
>             Fix For: 1.3
>
>         Attachments: solr-runner.tgz
>
>
> While working on an embedded Solr solution, I noticed that one of the threads created during typical usage of (SolrCore, DocumentBuilder and UpdateHandler), was not dying.
> I wrote a small embedded Solr app, and running it under JDB made it clear that the environment was not finishing cleanly because of a thread called "pool-2-thread-1" in "cond. waiting" state. After a quick grep, I saw that only one class uses a thread pool, and that is the DirectUpdateHandler2. It uses an instance of ScheduledExecutorService to manage autocommit threads, but it apparently isn't dieing correctly.
> I'll start working on a patch, but the original author of the handler probably has more knowledge (see https://issues.apache.org/jira/browse/SOLR-65)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.