← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2073743] Re: ``ProcessMonitor._check_child_processes`` cannot release the GIL inside a locked method

 

Reviewed:  https://review.opendev.org/c/openstack/neutron/+/924581
Committed: https://opendev.org/openstack/neutron/commit/baa57ab38d754bfa2dba488feb9429c1380d616c
Submitter: "Zuul (22348)"
Branch:    master

commit baa57ab38d754bfa2dba488feb9429c1380d616c
Author: Rodolfo Alonso Hernandez <ralonsoh@xxxxxxxxxx>
Date:   Fri Jul 19 18:03:16 2024 +0000

    Do not release the executor inside ``_check_child_processes``
    
    The method ``ProcessMonitor._check_child_processes`` was releasing
    the thread executor inside a method that creates a lock for the resource
    "_check_child_processes". Despite this resource is not used anywhere
    else (at least for this instance), this could lead to a potential
    deadlock.
    
    The current implementation of ``lockutils.synchronized`` with the
    default value "external=False" and "fair=False" is a
    ``threading.Lock()`` instance. The goal of this lock is, precisely, to
    execute the code inside the locked code without any interruption and
    then to be able to release the executor.
    
    Closes-Bug: #2073743
    Change-Id: I44c7a4ce81a67b86054832ac050cf5b465727adf


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2073743

Title:
  ``ProcessMonitor._check_child_processes`` cannot release the GIL
  inside a locked method

Status in neutron:
  Fix Released

Bug description:
  The method ``ProcessMonitor._check_child_processes`` releases the
  thread executor inside a method that creates a lock for the resource
  "_check_child_processes". Despite this resource is not used anywhere
  else (at least for this instance), this could lead to a potential
  deadlock.

  The current implementation of ``lockutils.synchronized`` with the
  default value "external=False" and "fair=False" is a
  ``threading.Lock()`` instance. The goal of this lock is, precisely, to
  execute the code inside the locked code without any interruption and
  then to be able to release the executor.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2073743/+subscriptions



References