git: hammer2 - dmsg stabilization

Matthew Dillon dillon at
Sun May 4 23:58:32 PDT 2014

commit 323c094767dccbbb77dce2d64e21411ef1a0e984
Author: Matthew Dillon <dillon at>
Date:   Sun May 4 23:52:24 2014 -0700

    hammer2 - dmsg stabilization
    This is a general stabilization pass testing xdisk resumption on various
    communications failures (killing the local or remote hammer2 service demon).
    * Simulate failures on recursive transactions in a bottom-up fashion
    * bcmp() does not return an inequality (neg, zero, or positive).  It
      returns only 0 or 1.  Change fs_label RBTREE test to strcmp()
    * ref-count the state structure, use dmsg_state_hold()/dmsg_state_drop()
      to control it.  Fix at least one memory leak.
    * Consolidate simulated transaction failure core into a helper
      function dmsg_msg_simulate_failure().
    * Clean up the tx state on the front-end after the msg has extracted
      necessary information from it, instead of in the transmit thread.
      This is so the state fields are updated synchronously and not delayed
      by the transmit queue.
    * Change xdisk's error test to avoid accidently failing a BIO due to
      a communications issue (verses an actual IO error on the remote physical
    * Remove some invalid assertions, add assertions.

Summary of changes:
 lib/libdmsg/dmsg.h         |  10 +-
 lib/libdmsg/msg.c          | 334 +++++++++++++++++++++++++++++----------------
 lib/libdmsg/msg_lnk.c      |   2 +-
 sys/dev/disk/xdisk/xdisk.c |  29 ++--
 sys/kern/kern_dmsg.c       |   4 +
 sys/sys/dmsg.h             |   1 +
 6 files changed, 250 insertions(+), 130 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list