you can copy the corrupt osdmap file from osd.1 and then restart osd,
we met this before, and that works for us.

2017-02-23 22:33 GMT+08:00 tao chang <changtao...@gmail.com>:
> HI,
>
> I have a ceph cluster  (ceph 10.2.5) witch 3 node, each has two osds.
>
> It was a power outage last night  and all the server are restarted
> this morning again.
> All osds are work well except the osd.0.
>
> ID WEIGHT  TYPE NAME        UP/DOWN REWEIGHT PRIMARY-AFFINITY
> -1 0.04500 root volumes
> -2 0.01500     host zk25-02
>  0 0.01500         osd.0       down        0          1.00000
>  1 0.01500         osd.1         up  1.00000          1.00000
> -3 0.01500     host zk25-03
>  2 0.01500         osd.2         up  1.00000          1.00000
>  3 0.01500         osd.3         up  1.00000          1.00000
> -4 0.01500     host zk25-01
>  4 0.01500         osd.4         up  1.00000          1.00000
>  5 0.01500         osd.5         up  1.00000          1.00000
>
> I tried to run it again with gdb, it turned it like this:
>
> (gdb) bt
> #0  0x00007ffff4cfd5f7 in raise () from /lib64/libc.so.6
> #1  0x00007ffff4cfece8 in abort () from /lib64/libc.so.6
> #2  0x00007ffff56019d5 in __gnu_cxx::__verbose_terminate_handler() ()
> from /lib64/libstdc++.so.6
> #3  0x00007ffff55ff946 in ?? () from /lib64/libstdc++.so.6
> #4  0x00007ffff55ff973 in std::terminate() () from /lib64/libstdc++.so.6
> #5  0x00007ffff55ffb93 in __cxa_throw () from /lib64/libstdc++.so.6
> #6  0x0000555555b93b7f in pg_pool_t::decode (this=<optimized out>,
> bl=...) at osd/osd_types.cc:1569
> #7  0x0000555555f3a53f in decode (p=..., c=...) at osd/osd_types.h:1487
> #8  decode<long, pg_pool_t> (m=Python Exception <type
> 'exceptions.IndexError'> list index out of range:
> std::map with 1 elements, p=...) at include/encoding.h:648
> #9  0x0000555555f2fa8d in OSDMap::decode_classic
> (this=this@entry=0x55555fdf6480, p=...) at osd/OSDMap.cc:2026
> #10 0x0000555555f2fe8c in OSDMap::decode
> (this=this@entry=0x55555fdf6480, bl=...) at osd/OSDMap.cc:2116
> #11 0x0000555555f3116e in OSDMap::decode (this=0x55555fdf6480, bl=...)
> at osd/OSDMap.cc:1985
> #12 0x00005555558e51fc in OSDService::try_get_map
> (this=0x55555ff51860, epoch=76) at osd/OSD.cc:1340
> #13 0x0000555555947ece in OSDService::get_map (this=<optimized out>,
> e=<optimized out>, this=<optimized out>) at osd/OSD.h:884
> #14 0x00005555558fb0f2 in OSD::init (this=0x55555ff50000) at osd/OSD.h:1917
> #15 0x000055555585eea5 in main (argc=<optimized out>, argv=<optimized
> out>) at ceph_osd.cc:605
>
> it was caused by failed undecoded of osdmap structure from osdmap
> file(/var/lib/ceph/osd/ceph-0/current/meta/osdmap.76__0_64173F9C__none)
> .
> And by comparing the same file on osd.1, It make sure the osdmap file
> has been corrupted.
>
>
> Any one know how to fix it ? Thanks for advance !
> --
> 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



-- 
Thank you!
HuangJun
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to