summaryrefslogtreecommitdiffstats
path: root/src/osd/OpRequest.h
diff options
context:
space:
mode:
authorYan Jun <yan.jun8@zte.com.cn>2017-07-22 09:29:39 +0200
committerYan Jun <yan.jun8@zte.com.cn>2017-07-22 09:29:39 +0200
commit79168ecb6f1af094b29600cac4e269ad77108ea2 (patch)
tree291cc0f39f7291df519f03a9bd2c80dc6d0b4d5b /src/osd/OpRequest.h
parentcommon: dump field name of 'flag_point' and 'client_info' (diff)
downloadceph-79168ecb6f1af094b29600cac4e269ad77108ea2.tar.xz
ceph-79168ecb6f1af094b29600cac4e269ad77108ea2.zip
osd: store op request source info
if we use command 'ceph daemon osd.# dump_historic_ops' to check the history tracked ops, the 'client_addr' is always dumped as '-' which result in clients indistinguishable from each other. "description": "osd_op(client.24123.0:328 3.36 3:6ec0d61b:::rbd_data.10472ae8944a.0000000000000289:head [write 4141056~4096 [fadvise_sequential]] snapc 0=[] ondisk+write+known_if_redirected e36)", "initiated_at": "2017-07-22 14:24:25.925633", "age": 4.893190, "duration": 0.272642, "type_data": { "flag_point": "commit sent; apply or cleanup", "client_info": { "client": "client.24123", "client_addr": "-", "tid": 328 }, It is because 'connection' was reset to nullptr in function '_unregistered' before op has been inserted into history, so the 'get_source_addr' always return empty entity addr. Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
Diffstat (limited to '')
-rw-r--r--src/osd/OpRequest.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/osd/OpRequest.h b/src/osd/OpRequest.h
index 56663ecbd51..8008bf08a12 100644
--- a/src/osd/OpRequest.h
+++ b/src/osd/OpRequest.h
@@ -85,6 +85,7 @@ struct OpRequest : public TrackedOp {
private:
Message *request; /// the logical request we are tracking
osd_reqid_t reqid;
+ entity_inst_t req_src_inst;
uint8_t hit_flag_points;
uint8_t latest_flag_point;
utime_t dequeued_time;