Permalink
Commits on Mar 10, 2016
Commits on Feb 24, 2016
  1. Merge pull request #28 from cloudant/fix-61505-rexi-timeout

    When workers die, send rexi_EXIT message back to coordinating process
    nickva committed Feb 24, 2016
  2. Send rexi_EXIT message on stream timeout

    Otherwise a coordinating process which uses an infinity timeout (in
    particular couch_replicator changes feed process) will never notice a worker
    died and will be stuck waiting forever.
    
    This happened with a long polling, infinity timeout change feed
    used by couch_replicator_manger -- callback processing took too long,
    rexi worker timed out, but the main change feed process never noticed,
    and got stuck waiting forever for more changes to arrive.
    
    Note: exit(normal) is used instead of a timeout exit to avoid spamming logs.
    Usually the coordinating process dies for some unrelated reason, so dumping
    24x timeouts errors from worker proceess in the log would not be helpful.
    
    BugzID: 61505
    nickva committed Feb 24, 2016
Commits on Jun 26, 2015
  1. match url

    rnewson committed Jun 26, 2015
  2. match url

    rnewson committed Jun 26, 2015
  3. fix dependency conflicts

    rnewson committed Jun 26, 2015
Commits on Sep 30, 2014
Commits on Jul 19, 2014
  1. Merge pull request #24 from cloudant/16742-couch-stats

    Replace margaret with couch_stats
    sagelywizard committed Jul 19, 2014
Commits on Jul 18, 2014
  1. Merge pull request #27 from cloudant/32669-timeout-while-waiting-for-…

    …sender
    
    Allow for timeout message while waiting for sender
    kocolosk committed Jul 18, 2014
  2. Allow for timeout message while waiting for sender

    In 9c36c1b we fixed counting bug in the bufffer but introduced another
    one. We started asserting that the timeout message can only arrive when
    the sender is not nil, but in fact it can absolutely happen that the
    buffer is asked to deliver a message while one is in flight. This causes
    the rexi_buffer to crash. The fix is to simply restore the clause that
    ignores the timeout message if the server is waiting for a sender to
    return.
    
    BugzID: 32669
    kocolosk committed Jul 18, 2014
Commits on Jul 15, 2014
  1. Replace margaret with couch_stats

    Also add stat_descriptions.cfg.
    
    BugzID: 16742
    banjiewen committed with sagelywizard Feb 4, 2014
Commits on Jun 27, 2014
  1. Merge pull request #26 from cloudant/30821-set-error-limit

    Fix error_limit = 0, and make it the default
    
    BugzID: 30821
    kocolosk committed Jun 27, 2014
Commits on Jun 26, 2014
  1. Fix error_limit = 0, and make it the default

    Setting the error_limit to 0 would previously cause rexi_server to crash
    on the next error because of an unhandled exception in a queue:drop/1.
    This fixes that exception and makes a limit of 0 the default. Operators
    can still raise the limit to capture errors in the future if we end up
    finding that useful.
    
    BugzID: 30821
    kocolosk committed Jun 26, 2014
Commits on Jun 10, 2014
  1. Add max_count to state record

    rnewson committed Jun 10, 2014
Commits on Jun 9, 2014
  1. Merge pull request #25 from cloudant/28049-rexi-buffer

    Counting bugfix and configurability enhancement for buffers
    
    BugzID: 28049
    kocolosk committed Jun 9, 2014
Commits on Jun 3, 2014
  1. Fix counting bug in buffer

    Quoting @davisp:
    
    There's a bug in rexi_buffer that can lead to the counter in its state
    running negative. I noticed this on malort looking for memory usage. A
    quick reading of the code suggests its due to us getting a timeout
    message with an empty queue. Theoretically this could happen if we've
    exceeded the MAX_MEMORY threshold when sending a message or even with
    just grabbing the buffered count when its idle.
    
    BugzID: 28049
    kocolosk committed Jun 3, 2014
  2. Configure buffer limit by message count

    This allows an operator to decide how large the buffers should be. It
    also provides an escape valve to clear the buffer entirely.
    kocolosk committed Jun 3, 2014
Commits on Jan 31, 2014
  1. Slight style tweaks to rexi_buffer hibernation

    Avoid using a possibly misleading variable name by not naming it.
    Alternatively, this is not the variable name you are looking for.
    
    BugzId: 27672
    davisp committed Jan 31, 2014
  2. Merge pull request #23 from cloudant/27672-rexi-buffer-hibernation

    Hibernate rexi_buffer when becoming idle
    davisp committed Jan 31, 2014
  3. Hibernate rexi_buffer when becoming idle

    The rexi_buffer gen_server can hold onto quite a bit of RAM during idle
    operation. This just checks when we're going back to the idle state and
    hibernates until the next message arrives. This ensures that we run
    garbage collection before sitting idle.
    
    BugzId: 27672
    davisp committed Jan 31, 2014
  4. Merge pull request #22 from cloudant/27671-remove-rexi-kill-upgrade

    Removed upgrade statement in rexi:kill/2
    davisp committed Jan 31, 2014
  5. Removed upgrade statement in rexi:kill/2

    Removing cruft we no longer need that was sending an extra useless
    message.
    
    BugzId: 27671
    davisp committed Jan 31, 2014
Commits on Jan 29, 2014
  1. Remove old rexi.appup

    davisp committed Jan 29, 2014
Commits on Dec 15, 2013
Commits on Dec 13, 2013
  1. Fixed version and typo in appup

    davisp committed Dec 13, 2013
  2. Bump appup version

    davisp committed Dec 13, 2013
Commits on Dec 12, 2013
  1. Revert "Tag all replies to the coordinator"

    Not all rexi communication happens through `rexi_utils:recv/6`. We'll
    need to audit all of our apps to see anywhere that doesn't to update to
    the new message format.
    
    This reverts commit 2f96790.
    davisp committed Dec 12, 2013
  2. Merge pull request #14 from cloudant/20204-tag-all-rexi-messages

    Tag all rexi messages [2/2]
    
    BugzID: 20204
    kocolosk committed Dec 12, 2013
Commits on Dec 11, 2013
  1. Merge pull request #18 from cloudant/23717-governor-overload

    BugzID: 23717
    BugzID: 23718
    kocolosk committed Dec 11, 2013
  2. Customize the upgrade instructions for 2.3 -> 2.4

    BugzID: 23717
    BugzID: 23718
    kocolosk committed Dec 10, 2013
Commits on Dec 10, 2013
  1. Rename governor to buffer

    Buffer describes the behavior quite a bit better than governor.
    
    BugzId: 23717
    BugzId: 23718
    davisp committed Dec 10, 2013
  2. Don't block the governor to send a message

    This allows the governor to continue prioritizing incoming requests
    instead of hanging for several seconds to try to connect to the remote
    node.
    
    BugzID: 23717
    BugzID: 23718
    kocolosk committed with davisp Nov 22, 2013
  3. Try to start per-node servers immediately

    I can't think of a good reason not to do this.
    kocolosk committed with davisp Oct 16, 2013
  4. Remove gov_manager from supervision

    We'll remove the module itself in a subsequent release.
    kocolosk committed with davisp Oct 16, 2013
  5. Start a supervised rexi_governor per node

    This generalizes rexi_server_mon to start per-node versions of a server
    specified by a child module.
    
    BugzID: 23717
    BugzID: 23718
    kocolosk committed with davisp Oct 16, 2013