Hi Chris,

What is the inconsistency that scrub reports in the log?  My guess is that 
the simplest way to resolve this is to remove whichever copy you decide is 
invalid, but it depends on what the inconstency it is trying/failing to 
repair is.

Thanks!
sage


On Fri, 6 Sep 2013, Chris Dunlop wrote:

> G'day,
> 
> I'm getting an OSD crash on 0.56.7-1~bpo70+1 whilst trying to repair an OSD:
> 
> http://tracker.ceph.com/issues/6233
> 
> ----
> ceph version 0.56.7 (14f23ab86b0058a8651895b3dc972a29459f3a33)
>  1: /usr/bin/ceph-osd() [0x8530a2]
>  2: (()+0xf030) [0x7f541ca39030]
>  3: (gsignal()+0x35) [0x7f541b132475]
>  4: (abort()+0x180) [0x7f541b1356f0]
>  5: (_gnu_cxx::_verbose_terminate_handler()+0x11d) [0x7f541b98789d]
>  6: (()+0x63996) [0x7f541b985996]
>  7: (()+0x639c3) [0x7f541b9859c3]
>  8: (()+0x63bee) [0x7f541b985bee]
>  9: (ceph::buffer::list::iterator::copy(unsigned int, char*)+0x127) [0x8fa9a7]
>  10: (object_info_t::decode(ceph::buffer::list::iterator&)+0x29) [0x95b579]
>  11: (object_info_t::object_info_t(ceph::buffer::list&)+0x180) [0x695ec0]
>  12: (PG::repair_object(hobject_t const&, ScrubMap::object*, int, int)+0xc7) 
> [0x7646b7]
>  13: (PG::scrub_process_inconsistent()+0x9bd) [0x76534d]
>  14: (PG::scrub_finish()+0x4f) [0x76587f]
>  15: (PG::chunky_scrub(ThreadPool::TPHandle&)+0x10d6) [0x76cb96]
>  16: (PG::scrub(ThreadPool::TPHandle&)+0x138) [0x76d7e8]
>  17: (OSD::ScrubWQ::_process(PG*, ThreadPool::TPHandle&)+0xf) [0x70515f]
>  18: (ThreadPool::worker(ThreadPool::WorkThread*)+0x992) [0x8f0542]
>  19: (ThreadPool::WorkThread::entry()+0x10) [0x8f14d0]
>  20: (()+0x6b50) [0x7f541ca30b50]
>  21: (clone()+0x6d) [0x7f541b1daa7d]
>  NOTE: a copy of the executable, or `objdump -rdS <executable>` is 
> needed to interpret this.
> ----
> 
> This occurs as a result of:
> 
> # ceph pg dump | grep inconsistent
> 2.12    2723    0       0       0       11311299072     159189  159189  
> active+clean+inconsistent       2013-09-06 09:35:47.512119      20117'690441  
>   20120'7914185   [6,7]   [6,7]   20021'675967    2013-09-03 15:58:12.459188  
>     19384'665404    2013-08-28 12:42:07.490877
> # ceph pg repair 2.12
> 
> Looking at PG::repair_object per line 12 of the backtrace, I can see a
> dout(10) which should tell me the problem object:
> 
> ----
> src/osd/PG.cc:
> void PG::repair_object(const hobject_t& soid, ScrubMap::object *po, int 
> bad_peer, int ok_peer)
> {
>   dout(10) << "repair_object " << soid << " bad_peer osd." << bad_peer << " 
> ok_peer osd." << ok_peer << dendl;
>   ...
> }
> ----
> 
> The 'ceph pg dump' output above tells me the primary osd is '6', so I
> can increase the logging level to 10 on osd.6 to get the debug output,
> and repair again:
> 
> # ceph osd tell 6 injectargs '--debug_osd 0/10'
> # ceph pg repair 2.12
> 
> I get the same OSD crash, but this time it logs the dout from above,
> which shows the problem object:
> 
>     -1> 2013-09-06 09:34:45.142224 7f0ae94bd700 10 osd.6 pg_epoch: 20117 
> pg[2.12( v 20117'690441 (20117'689440,20117'690441] local-les=20115 n=2722 
> ec=1 les/c 20115/20115 20108/20112/20112) [6,7] r=0 lpr=20112 mlcod 
> 20117'690440 active+scrubbing+deep+repair] repair_object 
> 56987a12/rb.0.17d9b.2ae8944a.000000001e11/head//2 bad_peer osd.7 ok_peer osd.6
>      0> 2013-09-06 09:34:45.206621 7f0ae94bd700 -1 *** Caught signal 
> (Aborted) **
> 
> So...
> 
> Firstly, is anyone interested in further investigating the problem to
> fix the crash behaviour?
> 
> And, what's the best way to fix the pool?
> 
> Cheers,
> 
> Chris
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majord...@vger.kernel.org
> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to