code: def abort_io(self, iocb, err):
          
          if _debug: IOQController._debug("abort_io %r %r", iocb, err)
  
          # normal abort
          IOController.abort_io(self, iocb, err)
  
          # check to see if it is completing the active one
          if iocb is not self.active_iocb:
              if _debug: IOQController._debug("    - not current iocb")
              return
  
          # no longer an active iocb
          self.active_iocb = None
  
          # change our state
          self.state = CTRL_IDLE
          _statelog.debug("%s %s %s" % (_strftime(), self.name, "idle"))
  
          # look for more to do
          deferred(IOQController._trigger, self)
docs: Called by a handler or a client to abort a transaction.