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)