Project

General

Profile

Actions

Bug #13967

closed

PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max())))

Added by Samuel Just over 8 years ago. Updated over 7 years ago.

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

0%

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

Description

<error>
<unique>0x0</unique>
<tid>47</tid>
<kind>UninitCondition</kind>
<what>Conditional jump or move depends on uninitialised value(s)</what>
<stack>
<frame>
<ip>0x4F53B7</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>PG::choose_acting(pg_shard_t&)</fn>
<dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-10.0.0-562-g4872353/src/osd</dir>
<file>PG.cc</file>
<line>1290</line>
</frame>
<frame>
<ip>0x502386</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>PG::RecoveryState::GetLog::GetLog(boost::statechart::state<PG::RecoveryState::GetLog, PG::RecoveryState::Peering, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::my_context)</fn>
<dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-10.0.0-562-g4872353/src/osd</dir>
<file>PG.cc</file>
<line>7128</line>
</frame>
<frame>
<ip>0x54C0B7</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>boost::statechart::detail::safe_reaction_result boost::statechart::simple_state<PG::RecoveryState::GetInfo, PG::RecoveryState::Peering, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::transit_impl<PG::RecoveryState::GetLog, PG::RecoveryState::RecoveryMachine, boost::statechart::detail::no_transition_function>(boost::statechart::detail::no_transition_function const&)</fn>
<dir>/usr/include/boost/statechart</dir>
<file>state.hpp</file>
<line>89</line>
</frame>
<frame>
<ip>0x54C3E9</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>boost::statechart::simple_state<PG::RecoveryState::GetInfo, PG::RecoveryState::Peering, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::react_impl(boost::statechart::event_base const&, void const*)</fn>
<dir>/usr/include/boost/statechart</dir>
<file>simple_state.hpp</file>
<line>314</line>
</frame>
<frame>
<ip>0x5352EA</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::send_event(boost::statechart::event_base const&)</fn>
<dir>/usr/include/boost/statechart</dir>
<file>state_machine.hpp</file>
<line>87</line>
</frame>
<frame>
<ip>0x535457</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::process_queued_events()</fn>
<dir>/usr/include/boost/statechart</dir>
<file>state_machine.hpp</file>
<line>910</line>
</frame>
<frame>
<ip>0x4DE72E</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>PG::handle_peering_event(std::shared_ptr<PG::CephPeeringEvt>, PG::RecoveryCtx*)</fn>
<dir>/usr/include/boost/statechart</dir>
<file>state_machine.hpp</file>
<line>280</line>
</frame>
<frame>
<ip>0x4682C6</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>OSD::process_peering_events(std::list<PG*, std::allocator<PG*> > const&, ThreadPool::TPHandle&)</fn>
<dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-10.0.0-562-g4872353/src/osd</dir>
<file>OSD.cc</file>
<line>8480</line>
</frame>
<frame>
<ip>0x4ACD57</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>OSD::PeeringWQ::_process(std::list<PG*, std::allocator<PG*> > const&, ThreadPool::TPHandle&)</fn>
<dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-10.0.0-562-g4872353/src/osd</dir>
<file>OSD.h</file>
<line>1783</line>
</frame>
<frame>
<ip>0x9F5F1D</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>ThreadPool::worker(ThreadPool::WorkThread*)</fn>
<dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-10.0.0-562-g4872353/src/common</dir>
<file>WorkQueue.cc</file>
<line>128</line>
</frame>
<frame>
<ip>0x9F6DDF</ip>
<obj>/usr/bin/ceph-osd</obj>
<fn>ThreadPool::WorkThread::entry()</fn>
<dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-10.0.0-562-g4872353/src/common</dir>
<file>WorkQueue.h</file>
<line>441</line>
</frame>
<frame>
<ip>0x58BD181</ip>
<obj>/lib/x86_64-linux-gnu/libpthread-2.19.so</obj>
<fn>start_thread</fn>
<dir>/build/buildd/eglibc-2.19/nptl</dir>
<file>pthread_create.c</file>
<line>312</line>
</frame>
<frame>
<ip>0x75B347C</ip>


Related issues 4 (0 open4 closed)

Has duplicate Ceph - Bug #14693: osd: valgrind uninitcondition in PG::choose_acting(pg_shard_t&)Duplicate02/08/2016

Actions
Has duplicate Ceph - Bug #16287: ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max())))Duplicate06/14/2016

Actions
Copied to Ceph - Backport #17145: jewel: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max())))ResolvedLoïc DacharyActions
Copied to Ceph - Backport #17146: hammer: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max())))ResolvedNathan CutlerActions
Actions #1

Updated by Sage Weil about 8 years ago

  • Has duplicate Bug #14693: osd: valgrind uninitcondition in PG::choose_acting(pg_shard_t&) added
Actions #2

Updated by Sage Weil about 8 years ago

  • Priority changed from Urgent to High
Actions #3

Updated by Samuel Just almost 8 years ago

  • Has duplicate Bug #16287: ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max()))) added
Actions #4

Updated by Samuel Just almost 8 years ago

  • Subject changed from jewel: PG::choose_acting valgrind error to PG::choose_acting valgrind error
  • Status changed from New to 7
  • Backport set to jewel,hammer

The all_info.find() returns an invalid iterator when up_primary isn't valid. The kicker is that that whole block seems to be unnecessary: https://github.com/ceph/ceph/pull/8370!

Actions #5

Updated by Samuel Just almost 8 years ago

  • Subject changed from PG::choose_acting valgrind error to PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max())))

In master, this can manifest as: ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max())))

Actions #6

Updated by Samuel Just over 7 years ago

  • Status changed from 7 to Pending Backport
Actions #7

Updated by Loïc Dachary over 7 years ago

  • Copied to Backport #17145: jewel: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max()))) added
Actions #8

Updated by Loïc Dachary over 7 years ago

  • Copied to Backport #17146: hammer: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max()))) added
Actions #9

Updated by Nathan Cutler over 7 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF