Project

General

Profile

Actions

Feature #17450

closed

Call python modules' handle_command in the background

Added by John Spray over 7 years ago. Updated almost 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
ceph-mgr
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

Currently DaemonServer::handle_command calls into the python code inline. This potentially blocks the messenger thread we're coming from (and perhaps could even deadlock if the python command handler tried to call something that needed DaemonServer::lock). Call it in the background (probably just push it onto a Finisher?)

Actions #1

Updated by John Spray almost 7 years ago

  • Status changed from New to Resolved

Did this a while back

commit 9988a564d816f8fb3768a382dd547519d8112f94
Author: John Spray <john.spray@redhat.com>
Date:   Sun Mar 5 10:38:36 2017 -0500

    mgr: improve handle_command

    Run the python module calls in a finisher so that
    they don't block the daemonserver lock and so that
    they can call back into mgr stuff if they need to.

    Fix passing through commands to python modules, this
    was giving EINVAL because only things with a MgrCommand
    were getting let in.

    Also fix get_command_descriptions, which was not
    including the output of the formatter in the response.

    Signed-off-by: John Spray <john.spray@redhat.com>
Actions

Also available in: Atom PDF