Mistral components don't start properly with Kombu RPC

Bug #1714929 reported by Renat Akhmerov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mistral
Fix Released
High
Renat Akhmerov

Bug Description

Engine, executor and event engine don't start properly when using Kombu RPC.

This happens because the method KombuServer.run() implemented as an infinite loop rather than a thread.

Changed in mistral:
assignee: nobody → Renat Akhmerov (rakhmerov)
importance: Undecided → High
status: New → Confirmed
milestone: none → queens-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to mistral (master)

Fix proposed to branch: master
Review: https://review.openstack.org/500504

Changed in mistral:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to mistral (master)

Reviewed: https://review.openstack.org/500504
Committed: https://git.openstack.org/cgit/openstack/mistral/commit/?id=2daa3c0ab2429c6c412d4df357fa54c78e60ef2e
Submitter: Jenkins
Branch: master

commit 2daa3c0ab2429c6c412d4df357fa54c78e60ef2e
Author: Renat Akhmerov <email address hidden>
Date: Mon Sep 4 14:11:06 2017 +0700

    Fix Kombu RPC threading and use within multiprocess environment

    * Added a call to clean up RPC clients into WSGIService start()
      method to make sure that we reinitialize RPC in every child
      API process. Otherwise, replies for synchornous RPC calls
      don't get routed to the right client process (see bug
      description)
    * Mistral components engine, executor and event engine didn't
      start properly because KombuServer.run() was implemented
      w/o a new thread. This patch fixes it.
    * The methods to get RPC clients like
      mistral/rpc/clients.py:get_engine_client() wasn't synchronized
      on the client instances. As a consequence, sometimes Mistral
      created more than one instance of the same client (violation
      of Singleton pattern). This patch fixes it by adding required
      locking.
    * Other style changes

    Closes-Bug: #1714186
    Closes-Bug: #1714929

    Change-Id: I242c48df9811459321d1cd4b1d37ed35af0a013a

Changed in mistral:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to mistral (stable/pike)

Fix proposed to branch: stable/pike
Review: https://review.openstack.org/501678

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

Reviewed: https://review.openstack.org/501678
Committed: https://git.openstack.org/cgit/openstack/mistral/commit/?id=ec1227771f84d8ad706d26dcb5d3724b5be85205
Submitter: Jenkins
Branch: stable/pike

commit ec1227771f84d8ad706d26dcb5d3724b5be85205
Author: Renat Akhmerov <email address hidden>
Date: Mon Sep 4 14:11:06 2017 +0700

    Fix Kombu RPC threading and use within multiprocess environment

    * Added a call to clean up RPC clients into WSGIService start()
      method to make sure that we reinitialize RPC in every child
      API process. Otherwise, replies for synchornous RPC calls
      don't get routed to the right client process (see bug
      description)
    * Mistral components engine, executor and event engine didn't
      start properly because KombuServer.run() was implemented
      w/o a new thread. This patch fixes it.
    * The methods to get RPC clients like
      mistral/rpc/clients.py:get_engine_client() wasn't synchronized
      on the client instances. As a consequence, sometimes Mistral
      created more than one instance of the same client (violation
      of Singleton pattern). This patch fixes it by adding required
      locking.
    * Other style changes

    Closes-Bug: #1714186
    Closes-Bug: #1714929

    Change-Id: I242c48df9811459321d1cd4b1d37ed35af0a013a
    (cherry picked from commit 2daa3c0ab2429c6c412d4df357fa54c78e60ef2e)

tags: added: in-stable-pike
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/mistral 6.0.0.0b1

This issue was fixed in the openstack/mistral 6.0.0.0b1 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/mistral 5.2.0

This issue was fixed in the openstack/mistral 5.2.0 release.

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.