You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Todd Lipcon (JIRA)" <ji...@apache.org> on 2017/10/12 21:00:03 UTC

[jira] [Resolved] (KUDU-2083) MaintenanceManager running_op_ count not decremented if MaintenanceOp::Prepare() fails

     [ https://issues.apache.org/jira/browse/KUDU-2083?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Todd Lipcon resolved KUDU-2083.
-------------------------------
       Resolution: Fixed
    Fix Version/s: 1.4.1
                   1.2.1
                   1.5.0
                   1.3.2

> 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
>            Assignee: David Alves
>            Priority: Critical
>             Fix For: 1.3.2, 1.5.0, 1.2.1, 1.4.1
>
>
> 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)