Samuel Okrent created KUDU-2083:
-----------------------------------

             Summary: MaintenanceManager running_op_ count not decremented if 
MaintenanceOp::Prepare() fails
                 Key: KUDU-2083
                 URL: https://issues.apache.org/jira/browse/KUDU-2083
             Project: Kudu
          Issue Type: Bug
            Reporter: Samuel Okrent
            Priority: Minor


In MaintenanceManager::RunSchedulerThread(), an op gets selected, running_ops_ 
is incremented, and Prepare() is called on the op. If Prepare() returns false, 
the op isn't run, so running_ops_ never gets decremented. If Prepare() ever 
fails, then this could be a problem, as the maintenance manager compares 
running_ops_ to the number of operation threads to determine whether or not it 
can run another operation. Prepare generally doesn't fail, but if 
Tablet::AlterSchema() is called in between FlushMRSOp::UpdateStats() and  
FlushMRSOp::Prepare(), that is one instance where Prepare() could potentially 
fail.

To fix, decrement running_ops_ in the codepath that follows from Prepare() 
failing.



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

Reply via email to