Project

General

Profile

Bug #13967

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 1 year ago. Updated 7 months ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
-
Target version:
-
Start date:
12/03/2015
Due date:
% Done:

0%

Source:
other
Tags:
Backport:
jewel,hammer
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Release:
Needs Doc:
No

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

Duplicated by Ceph - Bug #14693: osd: valgrind uninitcondition in PG::choose_acting(pg_shard_t&) Duplicate 02/08/2016
Duplicated by Ceph - Bug #16287: ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max()))) Duplicate 06/14/2016
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()))) Resolved
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()))) Resolved

History

#1 Updated by Sage Weil over 1 year ago

  • Duplicated by Bug #14693: osd: valgrind uninitcondition in PG::choose_acting(pg_shard_t&) added

#2 Updated by Sage Weil about 1 year ago

  • Priority changed from Urgent to High

#3 Updated by Samuel Just about 1 year ago

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

#4 Updated by Samuel Just about 1 year ago

  • Subject changed from jewel: PG::choose_acting valgrind error to PG::choose_acting valgrind error
  • Status changed from New to Testing
  • 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!

#5 Updated by Samuel Just about 1 year 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())))

#6 Updated by Samuel Just 10 months ago

  • Status changed from Testing to Pending Backport

#7 Updated by Loic Dachary 10 months 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

#8 Updated by Loic Dachary 10 months 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

#9 Updated by Nathan Cutler 7 months ago

  • Status changed from Pending Backport to Resolved
  • Needs Doc set to No

Also available in: Atom PDF