Project

General

Profile

Actions

Bug #8289

closed

rgw: memory not freed during in-progress read (dumpling)

Added by Sage Weil almost 10 years ago. Updated almost 10 years ago.

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

0%

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

Description

observing memory growing linearly during a read on a large object. once the read completes, memory is freed.tcmalloc

profiling indicates it is all allocated during read_message(). it looks like we are keeping a ref to the incoming buffers somewhere while streaming the incoming data.

Actions #1

Updated by Sage Weil almost 10 years ago

workaround is to limit the number of threads so that only a handful of such large reads can be in progress at once; this prevents the box from OOMing.

ceph daemon /var/run/ceph/*radosgw*asok config set rgw_thread_pool_size 2

or similar

Actions #2

Updated by Sage Weil almost 10 years ago

in this particular case the request is getting 503 after 30 seconds (the fastcgi timeout?).

Actions #3

Updated by Greg Farnum almost 10 years ago

Do we know if the object is a multi-part upload or not? And is it chunked or a single RADOS object? This might only be a problem for legacy systems. crosses fingers

Actions #4

Updated by Yehuda Sadeh almost 10 years ago

I tend to think that what we see is that we read the data off RADOS much quicker than the client reading the data back, and with the (relatively recent) fix that pushes the data to the client outside of the callback thread we end up accumulating all the new data without any throttling. I'll need to verify that though.

Actions #5

Updated by Yehuda Sadeh almost 10 years ago

Could very well be related to #8269, in which we don't handle nicely the cancellation.

Actions #6

Updated by Ian Colle almost 10 years ago

  • Priority changed from Immediate to Urgent
Actions #7

Updated by Ian Colle almost 10 years ago

  • Status changed from 12 to In Progress
  • Assignee set to Yehuda Sadeh
Actions #8

Updated by Yehuda Sadeh almost 10 years ago

  • Status changed from In Progress to Fix Under Review
Actions #9

Updated by Yehuda Sadeh almost 10 years ago

  • Assignee changed from Yehuda Sadeh to Josh Durgin
Actions #10

Updated by Sage Weil almost 10 years ago

  • Status changed from Fix Under Review to Resolved
Actions

Also available in: Atom PDF