Following on from my previous adventure with recovering pgs in the face of failed OSDs, I now have my EC 4+2 pool oeprating with min_size=5 which is as things should be.

However I have one pg which is stuck in state remapped+incomplete because it has only 4 out of 6 osds running, and I have been unable to bring the missing two back into service.

PG_AVAILABILITY Reduced data availability: 1 pg inactive, 1 pg incomplete
    pg 70.82d is remapped+incomplete, acting 
[2147483647,2147483647,190,448,61,315] (reducing pool .rgw.buckets.ec42 
min_size from 5 may help; search ceph.com/docs for 'incomplete')

I don't think I want to do anything with min_size as that would make all other pgs vulnerable to running dangerously undersized (unless there is any way to force that state for only a single pg). It seems to me that with 4/6 osds available, it should maybe be possible to force ceph to select one or two new osds to rebalance this pg to?

ceph pg query gives me (snippet):

            "down_osds_we_would_probe": [
                98,
                233,
                238,
                239
            ],
            "peering_blocked_by": [],
            "peering_blocked_by_detail": [
                {
                    "detail": "peering_blocked_by_history_les_bound"
                }
            ]

Of these, osd 98 appears to have a corrupt xfs filesystem

osd 239 was the original osd to hold a shard of this pg but would not keep running, exiting with:

/build/ceph-12.2.7/src/osd/ECBackend.cc: 619: FAILED assert(pop.data.length() 
== sinfo.aligned_logical_offset_to_chunk_offset( 
after_progress.data_recovered_to - op.recovery_progress.data_recovered_to))

osds 233 and 238 were otherwise evacuated (weight 0) osds to which I imported the pg shard from osd 239 (using ceph-objectstore-tool). After which they crash with the same assert. More specifically they seem to crash in the same way each time the pg becomes active and starts to backfill, on the same object:

    -9> 2018-10-03 11:30:28.174586 7f94ce9c4700  5 osd.233 pg_epoch: 704441 
pg[70.82ds1( v 704329'703106 (586066'698574,704329'703106] 
local-lis/les=704439/704440 n=102585 ec=21494/21494 lis/c 704439/588565 les/c/f 
704440/588566/0 68066
6/704439/704439) 
[820,761,105,789,562,485]/[2147483647,233,190,448,61,315]p233(1) r=1 lpr=704439 
pi=[21494,704439)/4 rops=1 bft=105(2),485(5),562(4),761(1),789(3),820(0) 
crt=704329'703106 lcod 0'0 mlcod 0'0 active+undersized+remapped+ba
ckfilling] backfill_pos is 
70:b415ca14:::default.630943.7__shadow_Barley_GC_Project%2fBarley_GC_Project%2fRawdata%2fReads%2fCZOA.6150.7.38741.TGCTGG.fastq.gz.2~Vn8g0rMwpVY8eaW83TDzJ2mczLXAl3z.3_24:head
    -8> 2018-10-03 11:30:28.174887 7f94ce9c4700  1 -- 10.31.0.1:6854/2210291 
--> 10.31.0.1:6854/2210291 -- MOSDECSubOpReadReply(70.82ds1 704441/704439 
ECSubReadReply(tid=1, attrs_read=0)) v2 -- 0x7f9500472280 con 0
    -7> 2018-10-03 11:30:28.174902 7f94db9de700  1 -- 10.31.0.1:6854/2210291 
<== osd.233 10.31.0.1:6854/2210291 0 ==== MOSDECSubOpReadReply(70.82ds1 
704441/704439 ECSubReadReply(tid=1, attrs_read=0)) v2 ==== 0+0+0 (0 0 0) 
0x7f9500472280
 con 0x7f94fb72b000
    -6> 2018-10-03 11:30:28.176267 7f94ead66700  5 -- 10.31.0.1:6854/2210291 >> 
10.31.0.4:6880/2181727 conn(0x7f94ff2a6000 :-1 
s=STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH pgs=946 cs=1 l=0). rx osd.61 seq 9 
0x7f9500472500 MOSDECSubOpRe
adReply(70.82ds1 704441/704439 ECSubReadReply(tid=1, attrs_read=0)) v2
    -5> 2018-10-03 11:30:28.176281 7f94ead66700  1 -- 10.31.0.1:6854/2210291 
<== osd.61 10.31.0.4:6880/2181727 9 ==== MOSDECSubOpReadReply(70.82ds1 
704441/704439 ECSubReadReply(tid=1, attrs_read=0)) v2 ==== 786745+0+0 (875698380 0 0) 
0x
7f9500472500 con 0x7f94ff2a6000
    -4> 2018-10-03 11:30:28.177723 7f94ead66700  5 -- 10.31.0.1:6854/2210291 >> 
10.31.0.9:6920/13427 conn(0x7f94ff2bc800 :-1 
s=STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH pgs=46152 cs=1 l=0). rx osd.448 seq 8 
0x7f94fe9d5980 MOSDECSubOpR
eadReply(70.82ds1 704441/704439 ECSubReadReply(tid=1, attrs_read=0)) v2
    -3> 2018-10-03 11:30:28.177738 7f94ead66700  1 -- 10.31.0.1:6854/2210291 
<== osd.448 10.31.0.9:6920/13427 8 ==== MOSDECSubOpReadReply(70.82ds1 
704441/704439 ECSubReadReply(tid=1, attrs_read=0)) v2 ==== 786745+0+0 (2772477454 0 
0) 0x
7f94fe9d5980 con 0x7f94ff2bc800
    -2> 2018-10-03 11:30:28.185788 7f94ea565700  5 -- 10.31.0.1:6854/2210291 >> 
10.31.0.7:6868/2012671 conn(0x7f94ff5c3800 :6854 
s=STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH pgs=4193 cs=1 l=0). rx osd.190 seq 10 
0x7f9500472780 MOSDECSu
bOpReadReply(70.82ds1 704441/704439 ECSubReadReply(tid=1, attrs_read=0)) v2
    -1> 2018-10-03 11:30:28.185815 7f94ea565700  1 -- 10.31.0.1:6854/2210291 
<== osd.190 10.31.0.7:6868/2012671 10 ==== MOSDECSubOpReadReply(70.82ds1 
704441/704439 ECSubReadReply(tid=1, attrs_read=0)) v2 ==== 786745+0+0 (2670842780 0 0)
 0x7f9500472780 con 0x7f94ff5c3800
     0> 2018-10-03 11:30:28.194795 7f94ce9c4700 -1 
/build/ceph-12.2.7/src/osd/ECBackend.cc: In function 'void 
ECBackend::continue_recovery_op(ECBackend::RecoveryOp&, RecoveryMessages*)' thread 
7f94ce9c4700 time 2018-10-03 11:30:28.19026
0
/build/ceph-12.2.7/src/osd/ECBackend.cc: 619: FAILED assert(pop.data.length() 
== sinfo.aligned_logical_offset_to_chunk_offset( 
after_progress.data_recovered_to - op.recovery_progress.data_recovered_to))


Is there anything I can do to help one of these osds (probably 233 or 238) start, such as "ceph-objectstore-tool --op repair"...? There seems little to lose by trying but there isn't a lot of documentation on the operations available in ceph-objectstore-tool.

I also know of the option "osd_find_best_info_ignore_history_les" but little of what it actually does, other than being "dangerous". There are many past intervals listed by pg query, but no "maybe_went_rw" flags so perhaps it is safe to revert...?

--
Graham Allan
Minnesota Supercomputing Institute - g...@umn.edu
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to