Use threads insted of greethreads in IP monitor

Bug #1849547 reported by Rodolfo Alonso
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Undecided
Rodolfo Alonso

Bug Description

IP monitor is a method that is going to be executed in a separate
process, to monitor the IP addresses changes in a namespace.

This method spawns a thread to read from a socket opened by Pyroute2.
The read function is a blocking method that will end only when the
socket is closed. To avoid thread starvation that can happen using
greenthreads, IP monitor should use kernel threads.

This will increase the resources used but will ensure that no message
is lost when reading the monitor socket.

Reduced the number of IPs generated in "test_add_and_remove_multiple_ips"
to shrink the testing time used.

Changed in neutron:
assignee: nobody → Rodolfo Alonso (rodolfo-alonso-hernandez)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.opendev.org/690144
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=48730d9449c0e425637f0f1182d81f60a3d259ac
Submitter: Zuul
Branch: master

commit 48730d9449c0e425637f0f1182d81f60a3d259ac
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue Oct 22 17:51:18 2019 +0000

    Use threads insted of greethreads in IP monitor

    IP monitor is a method that is going to be executed in a separate
    process, to monitor the IP addresses changes in a namespace.

    This method spawns a thread to read from a socket opened by Pyroute2.
    The read function is a blocking method that will end only when the
    socket is closed. To avoid thread starvation that can happen using
    greenthreads, IP monitor will use kernel threads.

    This will increase the resources used but will ensure that no message
    is lost when reading the monitor socket.

    Reduced the number of IPs generated in "test_add_and_remove_multiple_ips"
    to shrink the testing time used.

    Change-Id: I3fbba2854d40ab0f683443aa30c2a95752345d2e
    Closes-Bug: #1849547

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 16.0.0.0b1

This issue was fixed in the openstack/neutron 16.0.0.0b1 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/train)

Fix proposed to branch: stable/train
Review: https://review.opendev.org/717803

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/train)

Reviewed: https://review.opendev.org/717803
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=8657983c6d7f5f40c980ef7ff9c95f57c259f97b
Submitter: Zuul
Branch: stable/train

commit 8657983c6d7f5f40c980ef7ff9c95f57c259f97b
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue Oct 22 17:51:18 2019 +0000

    Use threads insted of greethreads in IP monitor

    IP monitor is a method that is going to be executed in a separate
    process, to monitor the IP addresses changes in a namespace.

    This method spawns a thread to read from a socket opened by Pyroute2.
    The read function is a blocking method that will end only when the
    socket is closed. To avoid thread starvation that can happen using
    greenthreads, IP monitor will use kernel threads.

    This will increase the resources used but will ensure that no message
    is lost when reading the monitor socket.

    Reduced the number of IPs generated in "test_add_and_remove_multiple_ips"
    to shrink the testing time used.

    Change-Id: I3fbba2854d40ab0f683443aa30c2a95752345d2e
    Closes-Bug: #1849547
    (cherry picked from commit 48730d9449c0e425637f0f1182d81f60a3d259ac)

tags: added: in-stable-train
tags: added: neutron-proactive-backport-potential
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.