]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/simple/DispatchQueue: inject internal delays in special event dispatch 8586/head
authorSage Weil <sage@redhat.com>
Thu, 14 Apr 2016 17:01:36 +0000 (13:01 -0400)
committerSage Weil <sage@redhat.com>
Thu, 14 Apr 2016 17:01:36 +0000 (13:01 -0400)
E.g., connection reset.  This will help uncover subtle races.

Signed-off-by: Sage Weil <sage@redhat.com>
src/msg/simple/DispatchQueue.cc

index fed198e49849780b3333f3af0ba9eee5771b72d7..be46c360e88188dcc49c656f2a44cb2f05d15f3e 100644 (file)
@@ -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());