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

Also available in: Atom PDF