Re: A couple of OSD-crashes after serious network trouble

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 12/05/2012 03:54 PM, Sage Weil wrote:
On Wed, 5 Dec 2012, Oliver Francke wrote:
Hi *,

around midnight yesterday we faced some layer-2 network problems. OSD's
started to lose heartbeats and so on. Slow requests... you name it.
So, after all OSD's doing their work, we had in sum around 6 of them crashed,
2 had to be restarted after first start. Should be 8 crashes in total.
The recover_got() crash has definitely been resolved in the recent code.
The others are hard to read since they've been sorted/summed; the full
backtrace is better for identifying the crash.  Do you have those
available?

There is "the other" pattern:

/var/log/ceph/ceph-osd.40.log.1.gz: 1: /usr/bin/ceph-osd() [0x706c59]
/var/log/ceph/ceph-osd.40.log.1.gz: 2: (()+0xeff0) [0x7f7f306c0ff0]
/var/log/ceph/ceph-osd.40.log.1.gz: 3: (gsignal()+0x35) [0x7f7f2f35f1b5]
/var/log/ceph/ceph-osd.40.log.1.gz: 4: (abort()+0x180) [0x7f7f2f361fc0]
/var/log/ceph/ceph-osd.40.log.1.gz: 5: (__gnu_cxx::__verbose_terminate_handler()+0x115) [0x7f7f2fbf3dc5]
/var/log/ceph/ceph-osd.40.log.1.gz: 6: (()+0xcb166) [0x7f7f2fbf2166]
/var/log/ceph/ceph-osd.40.log.1.gz: 7: (()+0xcb193) [0x7f7f2fbf2193]
/var/log/ceph/ceph-osd.40.log.1.gz: 8: (()+0xcb28e) [0x7f7f2fbf228e]
/var/log/ceph/ceph-osd.40.log.1.gz: 9: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x793) [0x77e903] /var/log/ceph/ceph-osd.40.log.1.gz: 10: (PG::merge_log(ObjectStore::Transaction&, pg_info_t&, pg_log_t&, int)+0x1de3) [0x63db93] /var/log/ceph/ceph-osd.40.log.1.gz: 11: (PG::RecoveryState::Stray::react(PG::RecoveryState::MLogRec const&)+0x2cc) [0x63e00c] /var/log/ceph/ceph-osd.40.log.1.gz: 12: (boost::statechart::simple_state<PG::RecoveryState::Stray, PG::RecoveryState::Started, 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*)+0x203) [0x658a63] /var/log/ceph/ceph-osd.40.log.1.gz: 13: (boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::process_event(boost::statechart::event_base const&)+0x6b) [0x650b4b] /var/log/ceph/ceph-osd.40.log.1.gz: 14: (PG::RecoveryState::handle_log(int, MOSDPGLog*, PG::RecoveryCtx*)+0x190) [0x60a520] /var/log/ceph/ceph-osd.40.log.1.gz: 15: (OSD::handle_pg_log(std::tr1::shared_ptr<OpRequest>)+0x666) [0x5c62e6] /var/log/ceph/ceph-osd.40.log.1.gz: 16: (OSD::dispatch_op(std::tr1::shared_ptr<OpRequest>)+0x11b) [0x5c6f3b] /var/log/ceph/ceph-osd.40.log.1.gz: 17: (OSD::_dispatch(Message*)+0x173) [0x5d1983] /var/log/ceph/ceph-osd.40.log.1.gz: 18: (OSD::ms_dispatch(Message*)+0x184) [0x5d2254] /var/log/ceph/ceph-osd.40.log.1.gz: 19: (SimpleMessenger::DispatchQueue::entry()+0x5e9) [0x7d3c09] /var/log/ceph/ceph-osd.40.log.1.gz: 20: (SimpleMessenger::dispatch_entry()+0x15) [0x7d5195] /var/log/ceph/ceph-osd.40.log.1.gz: 21: (SimpleMessenger::DispatchThread::entry()+0xd) [0x726bad]
/var/log/ceph/ceph-osd.40.log.1.gz: 22: (()+0x68ca) [0x7f7f306b88ca]
/var/log/ceph/ceph-osd.40.log.1.gz: 23: (clone()+0x6d) [0x7f7f2f3fc92d]

State at the end of the day: active+clean;

Unfortunately... after some scrubbing today, we see again inconsistencies... *sigh*

End of year syndrom?

Tried to get onto one OSD, which crashed yesterday and fired off some ceph osd scrub 0.
And then ceph osd repair 0.

2012-12-06 16:46:29.818551 7f49f1923700 0 log [ERR] : 65.ad repair stat mismatch, got 4204/4205 objects, 0/0 clones, 16466529280/16470149632 bytes. 2012-12-06 16:46:29.818734 7f49f1923700 0 log [ERR] : 65.ad repair 1 errors, 1 fixed 2012-12-06 16:46:30.104722 7f49f2124700 0 log [ERR] : 65.23 repair stat mismatch, got 4258/4259 objects, 0/0 clones, 16686233712/16690428016 bytes. 2012-12-06 16:46:30.104890 7f49f2124700 0 log [ERR] : 65.23 repair 1 errors, 1 fixed 2012-12-06 16:51:26.973407 7f49f2124700 0 log [ERR] : 6.1 osd.31: soid bafe2559/rb.0.1adf5.6733efe2.0000000007ce/head//6 size 4194304 != known size 3046912 2012-12-06 16:51:26.973426 7f49f2124700 0 log [ERR] : 6.1 repair 0 missing, 1 inconsistent objects 2012-12-06 16:51:26.981234 7f49f2124700 0 log [ERR] : 6.1 repair stat mismatch, got 2153/2154 objects, 0/0 clones, 7013002752/7017197056 bytes. 2012-12-06 16:51:26.981402 7f49f2124700 0 log [ERR] : 6.1 repair 1 errors, 1 fixed

um... is it repaired? Really? Everything cool now for OSD.0? Additionally there are - again - half a dozen headers missing. If corresponding VM's are stopped now, they will not restart, of course.

First tickets are raised by customers having s/t like "filesystems errors... mounted read-only..." on the console and kind of that crap... again.

Well then, should one now do a ceph osd repair \* ? Fix the headers? Is there a best practice?

Other hints? How can we now discover all of the potential errors _before_ customers may see them, too?

Too many questions, but even more trouble...

Thnx for all attention.

Oliver.


Thanks!
sage


  >
Typical output:


=== 8-< ===
--- begin dump of recent events ---
    -10> 2012-12-04 23:35:26.623091 7f1db7895700  5 filestore(/data/osd6-1)
_do_op 0x21035870 seq 111010292 osr(65.72 0x9e13570)/0x9e13570 start
     -9> 2012-12-04 23:35:26.623995 7f1db7895700  5 filestore(/data/osd6-1)
_do_op 0x21035500 seq 111010294 osr(10.3 0x5b5c170)/0x5b5c170 start
     -8> 2012-12-04 23:35:26.624013 7f1db6893700  5 --OSD::tracker-- reqid:
client.290626.0:798537, seq: 151093878, time: 2012-12-04 23:35:26.624012,
event: sub_op_applied, request: osd_sub_op(client.290626.0:798537 65.72
c9612472/rb.0.2d5e5.39bd39.000000000652/head//65 [] v 8084'770407
snapset=0=[]:[] snapc=0=[]) v7
     -7> 2012-12-04 23:35:26.624047 7f1db8096700  5 filestore(/data/osd6-1)
_do_op 0x21035c80 seq 111010293 osr(65.72 0x9e13570)/0x9e13570 start
     -6> 2012-12-04 23:35:26.624119 7f1db6893700  5 --OSD::tracker-- reqid:
client.290626.0:798537, seq: 151093878, time: 2012-12-04 23:35:26.624119,
event: done, request: osd_sub_op(client.290626.0:798537 65.72
c9612472/rb.0.2d5e5.39bd39.000000000652/head//65 [] v 8084'770407
snapset=0=[]:[] snapc=0=[]) v7
     -5> 2012-12-04 23:35:26.624953 7f1db6893700  5 --OSD::tracker-- reqid:
client.290626.0:798549, seq: 151093879, time: 2012-12-04 23:35:26.624953,
event: sub_op_applied, request: osd_sub_op(client.290626.0:798549 65.72
c9612472/rb.0.2d5e5.39bd39.000000000652/head//65 [] v 8084'770408
snapset=0=[]:[] snapc=0=[]) v7
     -4> 2012-12-04 23:35:26.625017 7f1db6893700  5 --OSD::tracker-- reqid:
client.290626.0:798549, seq: 151093879, time: 2012-12-04 23:35:26.625017,
event: done, request: osd_sub_op(client.290626.0:798549 65.72
c9612472/rb.0.2d5e5.39bd39.000000000652/head//65 [] v 8084'770408
snapset=0=[]:[] snapc=0=[]) v7
     -3> 2012-12-04 23:35:26.626220 7f1db7895700  5 filestore(/data/osd6-1)
_do_op 0x21035f00 seq 111010296 osr(6.7 0x5ca4570)/0x5ca4570 start
     -2> 2012-12-04 23:35:26.626218 7f1db8096700  5 filestore(/data/osd6-1)
_do_op 0x21035e10 seq 111010295 osr(10.3 0x5b5c170)/0x5b5c170 start
     -1> 2012-12-04 23:35:26.652283 7f1daed81700  5
throttle(msgr_dispatch_throttler-cluster 0x2791560) get 1049621 (0 -> 1049621)
      0> 2012-12-04 23:35:26.654669 7f1db1f89700 -1 *** Caught signal (Aborted)
**
  in thread 7f1db1f89700

  ceph version 0.48.2argonaut (commit:3e02b2fad88c2a95d9c0c86878f10d1beb780bfe)
  1: /usr/bin/ceph-osd() [0x6edaba]
  2: (()+0xfcb0) [0x7f1dc34c7cb0]
  3: (gsignal()+0x35) [0x7f1dc208e425]
  4: (abort()+0x17b) [0x7f1dc2091b8b]
  5: (__gnu_cxx::__verbose_terminate_handler()+0x11d) [0x7f1dc29e769d]
  6: (()+0xb5846) [0x7f1dc29e5846]
  7: (()+0xb5873) [0x7f1dc29e5873]
  8: (()+0xb596e) [0x7f1dc29e596e]
  9: (ceph::__ceph_assert_fail(char const*, char const*, int, char
const*)+0x1de) [0x7a82fe]
  10: (ReplicatedPG::recover_got(hobject_t, eversion_t)+0x4ae) [0x52b5ee]
  11: (ReplicatedPG::submit_push_complete(ObjectRecoveryInfo&,
ObjectStore::Transaction*)+0x470) [0x52ddd0]
  12:
(ReplicatedPG::handle_pull_response(std::tr1::shared_ptr<OpRequest>)+0x4d4)
[0x54b124]
  13: (ReplicatedPG::sub_op_push(std::tr1::shared_ptr<OpRequest>)+0x98)
[0x54bef8]
  14: (ReplicatedPG::do_sub_op(std::tr1::shared_ptr<OpRequest>)+0x3f7)
[0x54c3a7]
  15: (PG::do_request(std::tr1::shared_ptr<OpRequest>)+0x9f) [0x60073f]
  16: (OSD::dequeue_op(PG*)+0x238) [0x5bfaf8]
  17: (ThreadPool::worker()+0x4d5) [0x79f835]
  18: (ThreadPool::WorkThread::entry()+0xd) [0x5d87cd]
  19: (()+0x7e9a) [0x7f1dc34bfe9a]
  20: (clone()+0x6d) [0x7f1dc214bcbd]
  NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to
interpret this.

--- end dump of recent events ---

=== 8-< ===

A - not very scientific, but useful - aggregation of all OSD-outputs as
follows. My hope is, that someone says:
"Uhm, OK, tha's fixed in ..." ;)

( count of occurences and corresponding string)

=== 8-< ===

       4 (boost::statechart::simple_state<PG::RecoveryState::Stray,
       4 (boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine,
      18 (ceph::__ceph_assert_fail(char
      36 (clone()+0x6d)
      18 (gsignal()+0x35)
      16 (OSD::dequeue_op(PG*)+0x238)
      16 (OSD::dequeue_op(PG*)+0x39a)
       4 (OSD::_dispatch(Message*)+0x173)
       4 (OSD::dispatch_op(std::tr1::shared_ptr<OpRequest>)+0x11b)
       4 (OSD::handle_pg_log(std::tr1::shared_ptr<OpRequest>)+0x666)
       4 (OSD::ms_dispatch(Message*)+0x184)
      16 (PG::do_request(std::tr1::shared_ptr<OpRequest>)+0x9f)
      16 (PG::do_request(std::tr1::shared_ptr<OpRequest>)+0xab)
       4 (PG::merge_log(ObjectStore::Transaction&,
       4 (PG::RecoveryState::handle_log(int,
       4 (PG::RecoveryState::Stray::react(PG::RecoveryState::MLogRec
      16 (ReplicatedPG::do_sub_op(std::tr1::shared_ptr<OpRequest>)+0x32e)
      16 (ReplicatedPG::do_sub_op(std::tr1::shared_ptr<OpRequest>)+0x3f7)
      12
(ReplicatedPG::handle_pull_response(std::tr1::shared_ptr<OpRequest>)+0x4d4)
      16
(ReplicatedPG::handle_pull_response(std::tr1::shared_ptr<OpRequest>)+0xb24)
       4 (ReplicatedPG::handle_push(std::tr1::shared_ptr<OpRequest>)+0x263)
      32 (ReplicatedPG::recover_got(hobject_t,
      32 (ReplicatedPG::submit_push_complete(ObjectRecoveryInfo&,
      12 (ReplicatedPG::sub_op_push(std::tr1::shared_ptr<OpRequest>)+0x98)
      16 (ReplicatedPG::sub_op_push(std::tr1::shared_ptr<OpRequest>)+0xa2)
       4 (ReplicatedPG::sub_op_push(std::tr1::shared_ptr<OpRequest>)+0xf3)
       4 (SimpleMessenger::dispatch_entry()+0x15)
       4 (SimpleMessenger::DispatchQueue::entry()+0x5e9)
       4 (SimpleMessenger::DispatchThread::entry()+0xd)
      16 (ThreadPool::worker()+0x4d5)
      16 (ThreadPool::worker()+0x76f)
      32 (ThreadPool::WorkThread::entry()+0xd)

=== 8-< ===

Everything has cleared up so far, so that's some good news ;)

Comments welcome,

Oliver.

--

Oliver Francke

filoo GmbH
Moltkestra?e 25a
33330 G?tersloh
HRB4355 AG G?tersloh

Gesch?ftsf?hrer: S.Grewing | J.Rehp?hler | C.Kunz

Folgen Sie uns auf Twitter: http://twitter.com/filoogmbh

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--

Oliver Francke

filoo GmbH
Moltkestraße 25a
33330 Gütersloh
HRB4355 AG Gütersloh

Geschäftsführer: S.Grewing | J.Rehpöhler | C.Kunz

Folgen Sie uns auf Twitter: http://twitter.com/filoogmbh

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux