Erick Erickson created SOLR-13408:
-------------------------------------

             Summary: Cannot start/stop DaemonStream repeatedly
                 Key: SOLR-13408
                 URL: https://issues.apache.org/jira/browse/SOLR-13408
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
          Components: streaming expressions
    Affects Versions: 8.0, 7.7, master (9.0)
            Reporter: Erick Erickson
            Assignee: Erick Erickson


If I create a DaemonStream then use the API commands to stop it then start it 
repeatedly, after the first time it's stopped/started, it cannot be stopped 
again.

DaemonStream.close() checks whether a local variable "closed" is true, and if 
so does nothing. Otherwise it closes the stream then sets "closed" to true.

However, when the stream is started again, "closed" is not set to false, 
therefore the next time you try to stop the deamon, nothing happens and it 
continues to run. One other consequence of this is that you can have orphan 
threads running in the background. Say I
{code:java}
stop the daemon
start it again
create another one with the same ID
{code}
When the new one is created, this code is executed over in 
StreamHandler.handleRequestBody:
{code:java}
daemons.remove(daemonStream.getId()).close();
{code}
which will not terminate the stream thread as above. Then the open() method 
executes this:
{code:java}
this.streamRunner = new StreamRunner(runInterval, id);
{code}
leaving the thread running.

Finally, there's an NPE if I try to start a non-existent daemon.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to