Project

General

Profile

Bug #2077

mon: assert in Paxos::is_consistent

Added by Sage Weil about 12 years ago. Updated about 12 years ago.

Status:
Resolved
Priority:
High
Assignee:
-
Category:
Monitor
Target version:
% Done:

0%

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

Description

I tripped across a bug when adding a new monitor into an existing cluster
(see attached). I was on GIT commit
4b3bb5ab37a05fa001d59f24da7d9c30d650321b.

I found that the function 'bool Paxos::is_consistent()' was added in commit
0bd545f5d6beb790e67fe2ee61f57d2ed6332531.

I reset back to commit 3a7bb9999b49641ee28cac91e493aa4c231ede54 (it's
parent) and it has gone away.


2012-02-17 11:39:07.798469 b6efc710 mon.2a597b6ca798c9cd55a43279598b81a328df7a3c_3@-1(probing).mds e6 update_logger
2012-02-17 11:39:07.798480 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_bl osdmap/latest No such file or directory
2012-02-17 11:39:07.798490 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_int logm/last_committed = 149
2012-02-17 11:39:07.798495 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_int logm/first_committed = 1
2012-02-17 11:39:07.798501 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) reading at off 0 of 9328
2012-02-17 11:39:07.798509 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_bl logm/latest = 9328 bytes
2012-02-17 11:39:07.798515 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_int logm/slurping = 0
2012-02-17 11:39:07.798521 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) reading at off 0 of 9328
2012-02-17 11:39:07.798525 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_bl logm/latest = 9328 bytes
2012-02-17 11:39:07.798530 b6efc710 mon.2a597b6ca798c9cd55a43279598b81a328df7a3c_3@-1(probing).log v149 update_from_paxos loading summary e149
2012-02-17 11:39:07.798722 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_int monmap/last_committed = 1
2012-02-17 11:39:07.798727 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_int monmap/first_committed = 1
2012-02-17 11:39:07.798731 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_bl monmap/latest No such file or directory
2012-02-17 11:39:07.798736 b6efc710 store(/ceph/mon/disk7dc86aa3e88a9a2def2153a3f6c127e44deec449/mondata) get_int monmap/slurping = 0
mon/Paxos.cc: In function 'bool Paxos::is_consistent()' thread b6efc710 time 2012-02-17 11:39:07.798742
mon/Paxos.cc: 1081: FAILED assert(consistent || (slurping == 1))
 ceph version 0.41-369-g4b3bb5a (commit:4b3bb5ab37a05fa001d59f24da7d9c30d650321b)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0xa4) [0x84377e5]
 2: (Paxos::is_consistent()+0xd8) [0x82e066e]
 3: (Monitor::init()+0x616) [0x82a4bd0]
 4: (main()+0x1edf) [0x82969da]
 5: (__libc_start_main()+0xe6) [0xb6f18296]
 6: ceph-mon() [0x8294931]
 ceph version 0.41-369-g4b3bb5a (commit:4b3bb5ab37a05fa001d59f24da7d9c30d650321b)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0xa4) [0x84377e5]
 2: (Paxos::is_consistent()+0xd8) [0x82e066e]
 3: (Monitor::init()+0x616) [0x82a4bd0]
 4: (main()+0x1edf) [0x82969da]
 5: (__libc_start_main()+0xe6) [0xb6f18296]
 6: ceph-mon() [0x8294931]
terminate called after throwing an instance of 'ceph::FailedAssertion'
*** Caught signal (Aborted) **
 in thread b6efc710
 ceph version 0.41-369-g4b3bb5a (commit:4b3bb5ab37a05fa001d59f24da7d9c30d650321b)
 1: (ceph::BackTrace::BackTrace(int)+0x30) [0x8437b44]
 2: ceph-mon() [0x8484796]
 3: [0xb7785400]
 4: [0xb7785424]
 5: (gsignal()+0x51) [0xb6f2c171]
 6: (abort()+0x17e) [0xb6f2d94e]
 7: (__gnu_cxx::__verbose_terminate_handler()+0x155) [0xb7150d85]
 8: (()+0xafc85) [0xb714ec85]
 9: (()+0xafcc2) [0xb714ecc2]
 10: (()+0xafe31) [0xb714ee31]
 11: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x21e) [0x843795f]
 12: (Paxos::is_consistent()+0xd8) [0x82e066e]
 13: (Monitor::init()+0x616) [0x82a4bd0]
 14: (main()+0x1edf) [0x82969da]
 15: (__libc_start_main()+0xe6) [0xb6f18296]
 16: ceph-mon() [0x8294931]

Associated revisions

Revision db41bdda (diff)
Added by Sage Weil about 12 years ago

paxos: fix is_consistent() check

If our last_committed == 1, we don't need a separate stash. This is the
logic that slurp() follows, so fix is_consistent() to match.

Fixes: #2077
Signed-off-by: Sage Weil <>

History

#1 Updated by Sage Weil about 12 years ago

  • Category set to Monitor
  • Status changed from New to Resolved
  • Assignee deleted (Greg Farnum)

we don't need a stash for v == 1. make is_consistent() check match slurp() logic. db41bdda7e02aedc42d14be635b19075b112baf0

Also available in: Atom PDF