Project

General

Profile

Actions

Bug #4689

open

libceph: don't have alloc_msg methods limit length

Added by Alex Elder about 11 years ago. Updated over 8 years ago.

Status:
New
Priority:
Normal
Category:
-
Target version:
-
% Done:

0%

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

Description

When an incoming message arrives, the messenger calls the
module it's destined for (osd client, mds client, mod client)
to request the message to receive the data into.

In the osd client the alloc_msg method calls get_reply()
to look up the request that will contain the reply message.
That function compares the incoming data length indicated
by the message header, and if it exceeds the space available
it will skip the message.

Now that messages support multiple data item this is not the
correct thing to do. It is based on the assumption that
there can only be one piece of data in the message.

Instead, the check (if it's done at all in this location)
needs to take into account the sizes of the data items
associated with osd ops that are receiving data.

Recently a change was put in that skips any message that
is too big to receive taking into account all data
items available to receive. That may be suffient, in
which case the check in the osd_client get_message()
function can just go away.

Actions #1

Updated by Sage Weil almost 11 years ago

  • Project changed from Ceph to rbd
Actions #2

Updated by Ian Colle over 10 years ago

  • Assignee deleted (Alex Elder)
Actions #3

Updated by Ilya Dryomov over 9 years ago

  • Project changed from rbd to Linux kernel client
  • Subject changed from messenger: don't have alloc_msg methods limit length to libceph: don't have alloc_msg methods limit length
Actions #4

Updated by Ilya Dryomov over 9 years ago

Related to #9560, #9561?

Actions #5

Updated by Douglas Fuller over 8 years ago

  • Assignee set to Douglas Fuller
Actions

Also available in: Atom PDF