Project

General

Profile

Bug #3251

32-bit Debian: ceph dies in assert(inq == &local_queue)

Added by Dan Mick over 11 years ago. Updated about 5 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

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

Description

32-bit installation was breaking (while testing with ./vstart.sh, in the ceph
tool itself) with an assert failure on inq == &local_queue. Sage identified
the (long)m cast just above the assertion: on 32-bit, a real Message * will sign-extend, so the comparison succeeds, where it should not.

Changing the cast to (unsigned long) fixes the failure.

Associated revisions

Revision 67a201d6 (diff)
Added by Dan Mick over 11 years ago

Avoid sign-extension of non-magic Message* values

Cast to (unsigned long) when checking for magic values, so
real ptrs don't get sign-extended. Avoids triggering
assert(inq == &local_queue) failure.

Fixes: #3251
Signed-off-by: Dan Mick <>
Reviewed-by: Sage Weil <>

History

#1 Updated by Dan Mick over 11 years ago

  • Status changed from New to Resolved

commit:67a201d64b5b4f1a8effd677dd932680144265d6

#2 Updated by Greg Farnum about 5 years ago

  • Project changed from Ceph to Messengers
  • Category deleted (msgr)

Also available in: Atom PDF