Comment 41 for bug 1694728

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to oslo.messaging (stable/newton)

Reviewed: https://review.openstack.org/466787
Committed: https://git.openstack.org/cgit/openstack/oslo.messaging/commit/?id=c41f0ce709ea39717eb75748a6c5b7e9a69628cf
Submitter: Jenkins
Branch: stable/newton

commit c41f0ce709ea39717eb75748a6c5b7e9a69628cf
Author: Mehdi Abaakouk <email address hidden>
Date: Wed May 10 09:19:38 2017 +0200

    rabbit: restore synchronous ack/requeue

    Note this change also contains the fix for the regression it
    introduced.

    In https://review.openstack.org/#/c/436958, we fix a thread safety
    issue. But we make the ack/requeue of message asynchronous. In nominal
    case, it works, but if network/rabbit connection issue occurs this
    can result to rpc call handle twice. By chance we double check already
    processed message ids, and drop duplicates, but that if the message
    goes to another node, the mitigation won't work.

    This restore the previous behavior, to ensure we run application
    callback of rpc.call/rpc.cast only when the message have been
    successfully ack.

    (cherry picked from commit da02bc2169b09959d857c605961ead1bbba1019d)

    Fix rabbitmq driver with blocking executor

    We recently move ack/requeue of messages in main/polling thread
    of rabbitmq drivers. And break the blocking executor.

    This one is not tested by any tests and now deprecated.

    This change workaround the issue until we completely remove the
    blocking executor.

    Closes-bug: #1694728
    (cherry picked from commit 8ee5ae135a6ecb918f40619982e3dc7e38ed0bbf)

    Change-Id: I62b9e09513e3ebfebc64a941d4b21b6c053b511d