Project

General

Profile

Actions

Bug #12565

closed

osd: do not cache unused memory in attrs

Added by Xinze Chi over 8 years ago. Updated over 8 years ago.

Status:
Resolved
Priority:
Urgent
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
hammer
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

attrs maybe only a range of bufferlist in recovery, If obc cache it,
this causes the whole memory in bufferlist would not be free.
So rebuild the bufferlist before cache it.

The log said:

2015-08-02 17:00:14.177715 7fd8aa80d700 10 osd.0 pg_epoch: 397 pg[4.54s0( v 125'88 (0'0,125'88] local-les=387 n=86 ec=86 les/c 387/383 386/386/347) [0,20,14,7,19,8] r=0 lpr=386 pi=382-385/1 rops=9
crt=125'88 lcod 0'0 mlcod 0'0 active+recovering+degraded] handle_sub_read_reply readop not complete: ReadOp(tid=1865136, to_read={338b0ed4/rb.0.108f.6b8b4567.000000001e2f/head//4=read_request_t(t
o_read=[0,8388608,0], need=0(0),0,2097152,14(2),0,2097152,19(4),0,2097152,20(1),0,2097152, want_attrs=1),1e6c1ed4/rb.0.108f.6b8b4567.000000001caf/head//4=read_request_t(to_read=[0,
8388608,0], need=0(0),0,2097152,14(2),0,2097152,19(4),0,2097152,20(1),0,2097152, want_attrs=1)}, complete={338b0ed4/rb.0.108f.6b8b4567.000000001e2f/head//4=read_result_t(r=0, error
s={}, attrs={_=buffer::list(len=266,
        buffer::ptr(2031840~266 0x183780e0 in raw 0x18188000 len 2033591 nref 11)
),hinfo_key=buffer::list(len=42,
        buffer::ptr(2032584~42 0x183783c8 in raw 0x18188000 len 2033591 nref 11)
),snapset=buffer::list(len=31,
        buffer::ptr(2032641~31 0x18378401 in raw 0x18188000 len 2033591 nref 11)
)}, returned=(0, 8388608, [14(2),401902, 19(4),981140, 20(1),418554]), partial_read=0,1e6c1ed4/rb.0.108f.6b8b4567.000000001caf/head//4=read_result_t(r=0, errors={}, attrs={_=buffer::list(len=266,
        buffer::ptr(2032755~266 0x18378473 in raw 0x18188000 len 2033591 nref 11)
),hinfo_key=buffer::list(len=42,
        buffer::ptr(2033499~42 0x1837875b in raw 0x18188000 len 2033591 nref 11)
),snapset=buffer::list(len=31,
        buffer::ptr(2033556~31 0x18378794 in raw 0x18188000 len 2033591 nref 11)

Related issues 1 (0 open1 closed)

Copied to Ceph - Backport #13692: osd: do not cache unused memory in attrsResolvedSage WeilActions
Actions #1

Updated by Kefu Chai over 8 years ago

  • Description updated (diff)
  • Status changed from New to Fix Under Review
  • Assignee set to Xinze Chi
Actions #2

Updated by Kefu Chai over 8 years ago

  • Status changed from Fix Under Review to Resolved
Actions #3

Updated by Xinze Chi over 8 years ago

@Kefu Chai, please backport this PR.

Actions #4

Updated by Kefu Chai over 8 years ago

  • Status changed from Resolved to Pending Backport
  • Backport set to hammer
Actions #5

Updated by Loïc Dachary over 8 years ago

  • Copied to Backport #13692: osd: do not cache unused memory in attrs added
Actions #6

Updated by Loïc Dachary over 8 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF