Marc Pfaff created SLING-3502:
---------------------------------

             Summary: Main job queue is not properly outdated 
                 Key: SLING-3502
                 URL: https://issues.apache.org/jira/browse/SLING-3502
             Project: Sling
          Issue Type: Bug
          Components: Extensions
    Affects Versions: Event 3.3.8
            Reporter: Marc Pfaff


The default job queue called <main queue> appears not to be properly outdated.

The JobManager keeps an internal map of currently running job queues, indexed 
by job name. The code to outdate a queue (JobManagerImpl.outdateQueue()) uses a 
filtered queue name to look up the queue to outdate in this map. But the part 
that uses, creates and puts the queue on the map (JobManagerImpl.process()), 
does not filter the queue name. 

After outdating the main queue like this, there are two or more main queue 
entries in the map, depending on the number of topology changes happening, 
pointing to the same outdated queue instance. As one of the queues is still 
indexed with <main queue>, new jobs that use the main queue are always assigned 
an outdated queue. That's a dead end, as outdated queues do not appear to have 
a queue thread running no more.

To reproduce:
* Start one instance
* Start a job that uses the main queue, so one instance of the main queue is 
created. This job passes fine. 
* Trigger a topology change, e.g. by adding a second instance to the same 
topology
* Check the job manager in sling console, you should see two outdated main 
queues, properly labeled as outdated, but one of them is internally still 
indexed by <main queue>
* Start another job that uses the main queue. This job and all following jobs 
using main queue never get executed




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to