[ https://issues.apache.org/jira/browse/KUDU-2083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16118544#comment-16118544 ]
Matthew Jacobs commented on KUDU-2083: -------------------------------------- This was seen in an Impala test job: IMPALA-5770 > 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)