Project

General

Profile

Actions

Bug #21844

closed

Objecter::C_ObjectOperation_sparse_read throws/catches exceptions on -ENOENT

Added by Jason Dillaman over 6 years ago. Updated about 6 years ago.

Status:
Resolved
Priority:
High
Assignee:
Jason Dillaman
Category:
Performance/Resource Usage
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
luminous,jewel
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Running RBD small IO performance tests against a mostly sparse image shows that the Objecter is throwing/catching a buffer decode error. The object doesn't exist so the op failed with -ENOENT, but the sparse_read finisher is still run and attempts to decode an empty bufferlist. This results in a non-negligible amount of CPU being wasted on throwing and immediately catching an exception when instead the decode should never have been attempted since the object didn't exist.

                  - 14.21% Objecter::handle_osd_op_reply                                                                                                                                
                     - 7.64% Context::complete                                                                                                                                          
                        - 6.83% ObjectOperation::C_ObjectOperation_sparse_read::finish                                                                                                  
                           - 6.15% ceph::buffer::list::iterator_impl<false>::copy                                                                                                       
                              - 5.94% __cxa_throw                                                                                                                                       
                                 - 5.75% _Unwind_RaiseException                                                                                                                         

Related issues 2 (0 open2 closed)

Copied to RADOS - Backport #21922: luminous: Objecter::C_ObjectOperation_sparse_read throws/catches exceptions on -ENOENTResolvedShinobu KinjoActions
Copied to RADOS - Backport #21923: jewel: Objecter::C_ObjectOperation_sparse_read throws/catches exceptions on -ENOENTResolvedShinobu KinjoActions
Actions #1

Updated by Jason Dillaman over 6 years ago

  • Status changed from New to In Progress
  • Assignee set to Jason Dillaman
Actions #2

Updated by Jason Dillaman over 6 years ago

  • Status changed from In Progress to Fix Under Review
  • Backport set to luminous,jewel
Actions #3

Updated by Sage Weil over 6 years ago

  • Status changed from Fix Under Review to Pending Backport
Actions #4

Updated by Nathan Cutler over 6 years ago

  • Copied to Backport #21922: luminous: Objecter::C_ObjectOperation_sparse_read throws/catches exceptions on -ENOENT added
Actions #5

Updated by Nathan Cutler over 6 years ago

  • Copied to Backport #21923: jewel: Objecter::C_ObjectOperation_sparse_read throws/catches exceptions on -ENOENT added
Actions #6

Updated by Nathan Cutler about 6 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF