1. 11 May, 2017 5 commits
    • Josh Kunz's avatar
      Makes rp0s part of the node's secret c-space explicitly · 19b3c971
      Josh Kunz authored
      Previously, the cn_node_new would put the rp0 in the node's
      actual c-space, and the reset operation would put it in the node's
      secret c-space. Which meant that if the rp0 was fetched *after* the node
      was reset, it wouldn't function properly (since the capability would not
      be valid in the node's real principal).
      
      This commit fixes the implementation of rp0 to always put the rp0 in
      the secret c-space. This is probably a good idea to ensure that CapNet
      can always safely revoke the rp0 when the node is reset, but I believe
      the previous implementation was still safe. So now, when the node calls
      the `rp0` rpc, the node is explicitly granted its own rp0 from its secret
      principal.
      
      This commit also fixes an improper-free bug after a principal is
      cleared. When the principal is cleared its refcount would be set to zero
      (due to a cal to _obj_init) instead of keeping the same refcount it had
      before the clear operation.
      19b3c971
    • Josh Kunz's avatar
    • Josh Kunz's avatar
      Adds refcount debugging code · e8fae19e
      Josh Kunz authored
      By setting the hold debugging flags to true or false you can
      get logging information each time a lock is held or released.
      e8fae19e
    • Josh Kunz's avatar
    • Josh Kunz's avatar
      Interpret 0 length timeouts the same as None valued timeouts · 03f7aecc
      Josh Kunz authored
      Previously, if the timeout has not explicitly negative or None, the
      receiver would still try at least twice to get the data. With a timeout
      of 0, it will work basically the same as a nowait.
      03f7aecc
  2. 09 Mar, 2017 2 commits
  3. 02 Dec, 2016 7 commits
  4. 09 Nov, 2016 1 commit
  5. 20 Oct, 2016 1 commit
  6. 19 Oct, 2016 2 commits
  7. 18 Oct, 2016 5 commits
    • Josh Kunz's avatar
      Make dispatch_invoke of RP_SEND use `cn_rp_send` · 7f3a8bee
      Josh Kunz authored
      Previously, it was manually constructing the rp_elems and using
      `cn_rp_send_elem` which would assume that the caller had set the send
      type appropriately, dispatch was never updated to deal with membrane
      types, this commit fixes that.
      7f3a8bee
    • Josh Kunz's avatar
      Add more detailed membrane logging information · 8e63f304
      Josh Kunz authored
      8e63f304
    • Josh Kunz's avatar
      Log msg UUIDs at "info" level · bb04856c
      Josh Kunz authored
      bb04856c
    • David Johnson's avatar
      Decrease lock contention on new nodes in cnc_port_add (inspired by #6). · 86480b22
      David Johnson authored
      This function previously would only lock the csw and cport associated
      with the new node, but it didn't actually lock the node -- it left that
      to others.  I see no reason to allow that to continue; we're going to
      lock it shortly anyway.  And this will prevent contention in the new
      node path vs ARPs for or from this node in the packet_in path; that is
      what I thought the original problem in #6 was --- no longer sure if that
      really was it.  Still, this is an improvement, I believe.
      86480b22
    • David Johnson's avatar
      Fix DHCP/OS metadata flow setup locking issues from issue #6. · 10dc1aa8
      David Johnson authored
      The DHCP and OS meta flow setup functions were locking in the wrong
      order.  They would try to grab the cn_node_t lock associated with the
      dhcp server cn_node_t and the osmeta server cn_node_t first, then do
      some flow setup work that would result in the csw lock associated with
      both of those nodes being taken.  The order is always csw, cport,
      cnode.  So now these functions follow that convention, and things are
      happy.
      
      This would typically manifest when a new node was entering from the
      metadata server (always from the pending list, as I saw it), and
      conflicting with a packet in msg (i.e., an ARP involving the DHCP server
      or the OS metadata server).
      10dc1aa8
  8. 17 Oct, 2016 1 commit
  9. 13 Oct, 2016 10 commits
  10. 27 Sep, 2016 3 commits
  11. 20 Sep, 2016 3 commits