diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc index b69112c2b5c..45af62c2152 100644 --- a/src/osd/ECBackend.cc +++ b/src/osd/ECBackend.cc @@ -2200,6 +2200,10 @@ void ECBackend::objects_read_async( auto range = got.second.get_containing_range(offset, length); ceph_assert(range.first != range.second); ceph_assert(range.first.get_off() <= offset); + ldpp_dout(dpp, 30) << "offset: " << offset << dendl; + ldpp_dout(dpp, 30) << "range offset: " << range.first.get_off() << dendl; + ldpp_dout(dpp, 30) << "length: " << length << dendl; + ldpp_dout(dpp, 30) << "range length: " << range.first.get_len() << dendl; ceph_assert( (offset + length) <= (range.first.get_off() + range.first.get_len())); diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 0c9ecbe8075..c0ccd802e12 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -5435,9 +5435,15 @@ int PrimaryLogPG::do_read(OpContext *ctx, OSDOp& osd_op) { uint64_t size = oi.size; bool trimmed_read = false; + dout(30) << __func__ << " oi.size: " << oi.size << dendl; + dout(30) << __func__ << " oi.truncate_seq: " << oi.truncate_seq << dendl; + dout(30) << __func__ << " op.extent.truncate_seq: " << op.extent.truncate_seq << dendl; + dout(30) << __func__ << " op.extent.truncate_size: " << op.extent.truncate_size << dendl; + // are we beyond truncate_size? if ( (seq < op.extent.truncate_seq) && - (op.extent.offset + op.extent.length > op.extent.truncate_size) ) + (op.extent.offset + op.extent.length > op.extent.truncate_size) && + (size > op.extent.truncate_size) ) size = op.extent.truncate_size; if (op.extent.length == 0) //length is zero mean read the whole object @@ -5451,6 +5457,8 @@ int PrimaryLogPG::do_read(OpContext *ctx, OSDOp& osd_op) { trimmed_read = true; } + dout(30) << __func__ << "op.extent.length is now " << op.extent.length << dendl; + // read into a buffer int result = 0; if (trimmed_read && op.extent.length == 0) {