Remove blocking executor in MessageHandlingServer

Bug #1715141 reported by Chenghui Yu on 2017-09-05
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
oslo.messaging
Medium
Chenghui Yu

Bug Description

The executor parameter controls how incoming messages will be received and dispatched. By default, the most simple executor is used - the blocking executor. It handles only one message at once. It's recommended to use threading or eventlet. And it has been marked for removal in Rocky.

 http://git.openstack.org/cgit/openstack/oslo.messaging/tree/oslo_messaging/server.py#n337

Chenghui Yu (chenghuiyu) on 2017-09-05
Changed in oslo.messaging:
status: New → In Progress
assignee: nobody → Chenghui Yu (chenghuiyu)
description: updated
Ken Giusti (kgiusti) on 2018-01-22
Changed in oslo.messaging:
importance: Undecided → Medium
Ken Giusti (kgiusti) wrote :

Mistral has requested an extension in order to address

https://bugs.launchpad.net/mistral/+bug/1696469

Andras Kovi (akovi) wrote :

Dear Oslo Team, https://bugs.launchpad.net/mistral/+bug/1696469 has been closed but it has unexpected consequences that make it necessary to keep using the blocking executor. Namely, under high parallelism, the connections to RMQ becomes unstable to the point when it starts missing heartbeats and finally causing the whole service to fail unrecoverably. We are working on fixing this issue.

Ken Giusti (kgiusti) wrote :

Let's push the removal off to the T release. No point in breaking things if we can avoid it. Besides there are still a few other users of blocking out there who will also be affected.

Per Ben's suggestion if projects still require blocking at T+, we can support its use by having the projects add an

oslo.messaging.executors =
   blocking = futurist:SynchronousExecutor

to their setup.cfg to keep it available to them even if we drop it from oslo.messaging itself.

See the email thread:

http://lists.openstack.org/pipermail/openstack-dev/2018-October/135825.html

Changed in oslo.messaging:
milestone: none → stein-1
milestone: stein-1 → none
Ken Giusti (kgiusti) wrote :

Adding a requirement:

Prior to T we need to have updated functional tests in CI that run under both the threading and the eventlet executors. And any tests currently dependent on blocking must be updated to use the other executors

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers