Project

General

Profile

Bug #49048

amqp mandatory bit should be set according to ack-level

Added by Yuval Lifshitz about 3 years ago. Updated over 2 years ago.

Status:
New
Priority:
Low
Assignee:
-
Target version:
-
% Done:

0%

Source:
Development
Tags:
amqp
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

if ack-level=routeable, the mandatory bit [1] should be set to "1"

[1] https://github.com/ceph/ceph/blob/master/src/rgw/rgw_amqp.cc#L574

History

#1 Updated by Norman Jordan over 2 years ago

Yuval Lifshitz wrote:

if ack-level=routeable, the mandatory bit [1] should be set to "1"

[1] https://github.com/ceph/ceph/blob/master/src/rgw/rgw_amqp.cc#L574

There is a comment here saying that the message does not need to be routable. I can't tell if a routing failure should be detected.

Setting the mandatory bit to 1, will not change the return value for ampq_basic_publish().

To actually detect a routing failure, you need to do the following:
  1. Before publishing, set the channel to confirm select (amqp_confirm_select())
  2. Publish the message with the mandatory bit set to 1
  3. Wait for a frame (amqp_simple_wait_frame())
  4. Examine the method in the frame

Should a routing error be detected?

Also available in: Atom PDF