1. 27 Nov, 2015 1 commit
    • Dave Cridland's avatar
      OF-115 Remove race during outgoing session creation · d0667e21
      Dave Cridland authored
      This one is hard to duplicate in the lab, so this may not actually cure the
      issue, however I suspect it does.
      
      The existing code is based around a route of last resort, the
      OutgoingSessionPromise, which builds a helper - the PacketsProcessor - and
      creates the new session. The PacketsProcessors operate from within a thread
      pool, and thus have contended execution time.
      
      As new packets arrives from onward transmission during the session setup, the
      PacketsProcessor queues them for retransmission. However, the act of session
      creation also creates the outgoing route, meaning that later packets will
      bypass the queue, and be transmitted out of order.
      
      This should give the impression of a randomly reordered set of stanzas, but
      would in fact be two consecutive sequences of ordered stanzas which are
      interleaved, hence if the two sequences are A-E, F-J, one might see:
      
      A, B, F, G, C, H, I, D, J, E
      
      The fix here is two ensure that all packets are queued until the queue itself
      is empty. In the solution provided, an additional helper class acts as the
      route's RoutableChannelHandler, and stores packets in a queue until the real
      ServerSession can catch up with the pending traffic. After that it simply
      passes the process() call argument through.
      d0667e21
  2. 26 Nov, 2015 4 commits
  3. 25 Nov, 2015 4 commits
  4. 24 Nov, 2015 3 commits
  5. 23 Nov, 2015 3 commits
  6. 22 Nov, 2015 1 commit
  7. 21 Nov, 2015 6 commits
  8. 20 Nov, 2015 2 commits
    • Dave Cridland's avatar
      OF-115 Process S2S stanzas from a session serially · 2d62c7e1
      Dave Cridland authored
      This patch removes the thread pool from the ServerSocketReader, causing
      stanzas from a particular S2S session to be processed serially on the same
      thread used by the ServerSocketReader.
      
      Each ServerSocketReader currently has a thread to itself, so this is unlikely
      to have a serious impact on performance, but does have a very positive impact
      on correctness.
      2d62c7e1
    • daryl herzmann's avatar
      Merge pull request #392 from tevans/master · 21f57aa5
      daryl herzmann authored
      Archive legacy sources for Jive tools
      21f57aa5
  9. 19 Nov, 2015 11 commits
  10. 18 Nov, 2015 3 commits
  11. 17 Nov, 2015 2 commits