Project

General

Profile

Bug #50291

ceph-16.2.0 builds have started failing in Fedora 35/rawhide w/ librabbitmq-0.11.0

Added by Kaleb KEITHLEY about 1 month ago. Updated 6 days ago.

Status:
Pending Backport
Priority:
Normal
Target version:
-
% Done:

0%

Source:
Community (dev)
Tags:
Backport:
pacific, octopus
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
rgw
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Fedora 35 and Fedora ELN (enterprise linux next, a.k.a. rhel9) have updated to from librabbitmq-0.10.0 to -0.11.0 and builds are now failing. See, e.g., https://kojipkgs.fedoraproject.org//work/tasks/4144/65634144/build.log

librabbitmq's amqp_simple_wait_frame_noblock() changed the 'struct timeval *' to 'const struct timeval *'

(Note: extern "C" { ... } may not be necessary. I just found it strange that libamqp_mock's amqp_simple_wait_frame_noblock() symbol currently has a C++ mangled symbol name while the one in /usr/lib64/librabbitmq.so.4 is obviously not mangled.

FWIW, I did not dig very hard or far to figure out whether before now libamqp_mock's amqp_simple_wait_frame_noblock() was also mangled, or how the test programs which have an unmangled reference to amqp_simple_wait_frame_noblock() could have linked with it then, but not now.)

I fixed it with with the following change:

--- a/src/test/rgw/amqp_mock.cc
+++ b/src/test/rgw/amqp_mock.cc
@@ -291,7 +291,11 @@ amqp_confirm_select_ok_t* amqp_confirm_select(amqp_connection_state_t state, amq
   return state->confirm;
 }

-int amqp_simple_wait_frame_noblock(amqp_connection_state_t state, amqp_frame_t *decoded_frame, struct timeval* tv) {
+extern "C" {
+
+int amqp_simple_wait_frame_noblock(amqp_connection_state_t state,
+                                   amqp_frame_t *decoded_frame,
+                                   const struct timeval* tv) {
   if (state->socket && state->socket->open_called &&
       state->login_called && state->channel1 && state->channel2 && state->exchange &&
       state->queue && state->consume && state->confirm && !FAIL_NEXT_READ) {
@@ -345,6 +349,7 @@ int amqp_simple_wait_frame_noblock(amqp_connection_state_t state, amqp_frame_t *
   }
   return AMQP_STATUS_CONNECTION_CLOSED;
 }
+} // extern "C" 

 amqp_basic_consume_ok_t* amqp_basic_consume(
     amqp_connection_state_t state, amqp_channel_t channel, amqp_bytes_t queue,

0011-src-test-rgw-amqp_mock.cc.patch View (1.02 KB) Kaleb KEITHLEY, 04/10/2021 12:07 PM


Related issues

Copied to rgw - Backport #50379: pacific: ceph-16.2.0 builds have started failing in Fedora 35/rawhide w/ librabbitmq-0.11.0 New
Copied to rgw - Backport #50380: octopus: ceph-16.2.0 builds have started failing in Fedora 35/rawhide w/ librabbitmq-0.11.0 New

History

#1 Updated by Kaleb KEITHLEY about 1 month ago

tracker managed the patch so I've added it as an attachment

#2 Updated by Kaleb KEITHLEY about 1 month ago

Fedora 34 has also recently updated to librabbitmq-0.11.0

#3 Updated by Yuval Lifshitz about 1 month ago

  • Status changed from New to Fix Under Review
  • Pull request ID set to 40800

#4 Updated by Yuval Lifshitz about 1 month ago

  • Backport set to pacific, octopus

#5 Updated by Kefu Chai about 1 month ago

  • Description updated (diff)

#6 Updated by Casey Bodley about 1 month ago

  • Status changed from Fix Under Review to Pending Backport

#7 Updated by Backport Bot about 1 month ago

  • Copied to Backport #50379: pacific: ceph-16.2.0 builds have started failing in Fedora 35/rawhide w/ librabbitmq-0.11.0 added

#8 Updated by Backport Bot about 1 month ago

  • Copied to Backport #50380: octopus: ceph-16.2.0 builds have started failing in Fedora 35/rawhide w/ librabbitmq-0.11.0 added

#9 Updated by Loïc Dachary 26 days ago

  • Target version changed from v16.2.1 to v16.2.2

#10 Updated by Loïc Dachary 6 days ago

  • Target version deleted (v16.2.2)

Also available in: Atom PDF