From: Sage Weil Date: Thu, 14 Apr 2016 17:01:36 +0000 (-0400) Subject: msg/simple/DispatchQueue: inject internal delays in special event dispatch X-Git-Tag: v10.2.0~24^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F8586%2Fhead;p=ceph.git msg/simple/DispatchQueue: inject internal delays in special event dispatch E.g., connection reset. This will help uncover subtle races. Signed-off-by: Sage Weil --- diff --git a/src/msg/simple/DispatchQueue.cc b/src/msg/simple/DispatchQueue.cc index fed198e4984..be46c360e88 100644 --- a/src/msg/simple/DispatchQueue.cc +++ b/src/msg/simple/DispatchQueue.cc @@ -150,6 +150,15 @@ void DispatchQueue::entry() lock.Unlock(); if (qitem.is_code()) { + if (cct->_conf->ms_inject_internal_delays && + cct->_conf->ms_inject_delay_probability && + (rand() % 10000)/10000.0 < cct->_conf->ms_inject_delay_probability) { + utime_t t; + t.set_from_double(cct->_conf->ms_inject_internal_delays); + ldout(cct, 1) << "DispatchQueue::entry inject delay of " << t + << dendl; + t.sleep(); + } switch (qitem.get_code()) { case D_BAD_REMOTE_RESET: msgr->ms_deliver_handle_remote_reset(qitem.get_connection());