Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Durable queue #937

Merged
merged 5 commits into from Feb 1, 2018
Merged

Durable queue #937

merged 5 commits into from Feb 1, 2018

Conversation

mercul3s
Copy link
Contributor

What is this change?

Adds durability to queues by storing a dequeued item in an "in flight" queue, to be deleted or added back to the work queue depending on if the item is acked or nacked.

Why is this change necessary?

Closes #926.

Do you need clarification on anything?

I think an item should be Nacked in the case of a client timeout or disconnection, but I'm not sure of the right mechanism to do that, would love some suggestions as to where that should happen. I'm also passing the queue in with the item when it's created, which I'm not sure is the right thing to do. I considered making an interface for Item's ack/nack methods so I can create them as queue methods and pass them to an item, but I wanted to try out another method.

Were there any complications while making this change?

Nope!

Copy link
Contributor

@echlebek echlebek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is excellent work and as it stands, a great improvement to the package. I think I've identified some further improvements we can make, and a couple potential bugs.

I think the bugs should be fixed before merging this PR, but the timeout handling can probably be taken care of in a subsequent PR.

}
return queue
}

// Item contains the key and value for a dequeued item, as well as the queue it
// belongs to.
type Item struct {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can improve safety for users of Item by adding a sync.Once to the struct.

In Ack and Nack, use the sync.Once to ensure that Ack and Nack cannot both be called.

This will also have the side effect of making Ack and Nack goroutine-safe.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 makes total sense!

return nil
}

// Nack returns the item to the queue. It should be called if there is a timeout
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Users can't be expected to handle timeouts. We need to build timeout handling into the queue itself.

Suppose that a queue item is in flight, and the client experiences a crash. There are no longer any handles to the queue item, and there is no way to Ack or Nack it. The queue item is now in limbo forever.

What we can do is start up a goroutine when we Dequeue an Item that continually updates the timestamp of the item in the in-flight queue. The method looks something like this:

Let T be the timeout indicating when Items should be Nacked.
Let F be the in-flight queue.
Let I be a queue item that is Dequeued.
Let G be a goroutine that I starts on Dequeue.
Let N be the interval at which F is updated, N << T.

For each call to Dequeue:
    For each I in F:
        If time.Now() - I.Timestamp > T:
            Nack(I)
    Proceed with existing dequeue method

G:
    For each interval S in N:
        Retrieve I from F
        I.Timestamp = time.Now()

The basic idea of the above pseudocode is that when an item is dequeued, it starts up a goroutine that continually updates a key in etcd. Subsequent Dequeue calls range over the in-flight items, looking for ones that have timed out. If any are found, they are returned to the queue.

Acking or Nacking the Item stops the goroutine, and then does what you've implemented already.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool, makes sense, I was thinking this would occur on timeout but wasn't quite sure how to implement it. I think this answers my questions about that!

// Nack returns the item to the queue. It should be called if there is a timeout
// or Ack isn't called within the context deadline.
func (i *Item) Nack(ctx context.Context) error {
err := i.queue.tryPut(ctx, i.Value())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The put and delete operations need to be combined into the same transaction, or the queue could end up in an inconsistent state.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yeah, you're totally right, I'll fix that.

if err != nil {
return nil, err
}
if response.Succeeded {
return kv, nil
return &Item{data: kv, queue: q}, nil
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are setting data: kv here and then using the key there to pass to Ack and Nack. But, the code above creates a new key and uses that for the in-flight queue. So I think this might be a bug.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yeah, that should be the new kv for the item in the in-flight queue.


putReq := clientv3.OpPut(uKey, string(kv.Value))
delReq := clientv3.OpDelete(key)
response, err := q.kv.Txn(ctx).If(cmp).Then(putReq, delReq).Commit()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need an additional cmp here.

putCmp := clientv3.Compare(clientv3.ModRevision(uKey), "=", 0)

@echlebek
Copy link
Contributor

@mercul3s oh, and for the record, I think storing the queue in the item is the right way to go.

@@ -110,8 +111,9 @@ func TestDequeueParallel(t *testing.T) {
go func() {
value, err := queue.Dequeue(context.Background())
require.NoError(t, err)
fmt.Println(value)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stray Println

if response.Succeeded {
return kv, nil
getResponse, err := q.client.Get(ctx, uKey)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not necessary. We already know the key and values, because we just put them in the queue a moment ago.

I'd suggest just storing the string values in the Item, instead of the Kv.

delReq := clientv3.OpDelete(i.key())

response, err := i.queue.kv.Txn(ctx).If(putCmp, delCmp).Then(putReq, delReq).Commit()
if err == nil && response.Succeeded {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

response.Succeeded does not lead to a meaningful branch here, because nil is returned regardless of success. Ack is the same.

I think the right thing to do is try this operation in a loop until it succeeds. Since Items are unique handles, and Ack and Nack are protected by a sync.Once, we don't have to worry about another goroutine contending for this key.

type Item struct {
data *mvccpb.KeyValue
queue *Queue
once *sync.Once
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The once needs to be used in Ack and Nack.

Example:

var err error
i.once.Do(func() {
    err = i.doTheAck()
})
return err

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ran out of time to complete that, planning on finishing this up on Monday.

Copy link
Contributor

@palourde palourde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

giphy

// When an item is received by a client, it is deleted from
// the work lane, and added to the in-flight lane. The item stays in-flight
// until it is acked by the client, or returned to the work queue in case the
// client nacks it or times out.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome explanation, thanks!

Copy link
Contributor

@echlebek echlebek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking great!!! All the things I brought up in the review are minor suggestions, with the exception of the need for synchronizing access to Item's state.

Basically anywhere you assign to Item's fields, you'll need to protect that operation with a mutex. I think the most important place is the keepalive section.

Name string
kv clientv3.KV
client *clientv3.Client
Work string
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Work and InFlight should not be exported, as the user can't do anything useful by reading them, and assigning to them would be a race.

i.Key = updateKey
}
}()
return err
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With no waiting or synchronization, returning err here is a race condition. I would expect that most of the time err would be nil.

I'd suggest simply logging errors, and not returning an error from this function.


_, err = i.queue.kv.Txn(ctx).If(putCmp, delCmp).Then(putReq, delReq).Commit()

i.Key = updateKey
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is racy. One, because users can read the Key field, and two, because during the time between the transaction succeeding and the assignment to i.Key, Ack or Nack could be called, which would then have wrong information.

I think Item needs a mutex to guard against this, locking before the put/delete transaction, and unlocking after the assignment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, I will definitely add a lock.

putReq := clientv3.OpPut(uKey, value)
delReq := clientv3.OpDelete(currentKey)

response, _ := q.kv.Txn(ctx).If(putCmp, delCmp).Then(putReq, delReq).Commit()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error should be checked here.

return q.Dequeue(ctx)
}

func (q *Queue) tryDelete(ctx context.Context, kv *mvccpb.KeyValue) (*mvccpb.KeyValue, error) {
func (q *Queue) getItemTimestamp(key []byte) (int64, error) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should return a time.Time.

t := time.Unix(0, itemTimestamp)

}
// If the item has timed out or the client has disconnected, the item is
// considered expired and should be moved back to the work queue.
elapsedTime := time.Now().UnixNano() - itemTimestamp
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if time.Now().Sub(itemTimestamp) > timeout {}, once you've made getItemTimestamp return a time.Time.

Revision int64
Timestamp int64
queue *Queue
once *sync.Once
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't need to be a pointer, since you already access Item's methods via a pointer. Saves you having to assign to it when you make a new Item.

@mercul3s mercul3s force-pushed the durable-queue branch 2 times, most recently from 7c56483 to df9a4d9 Compare January 31, 2018 20:13
@mercul3s
Copy link
Contributor Author

@echlebek I think I've addressed all of your comments, but I'm running into a timeout in the tests that's proving difficult to debug. I'd welcome a second set of eyes.

func (i *Item) keepalive(ctx context.Context) {
ticker := time.NewTicker(1 * time.Second)
go func() {
for _ = range ticker.C {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this goroutine is never terminating.

It should terminate when Ack or Nack is called.

Use context cancellation to terminate the goroutine.

go func() {
    defer ticker.Close()
    for {
        select {
        case <-ticker.C:
            // handle ticker case
        case <-ctx.Done():
            return
        }
    }
}()

}
return queue
}

// Item contains the key and value for a dequeued item, as well as the queue it
// belongs to.
type Item struct {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a context.CancelFunc field to the Item, and call that when Ack or Nack is called. Then pass the context associated with that CancelFunc to keepalive.

)

i.once.Do(func() {
err = i.queue.swapLane(ctx, i.Key, i.Revision, i.Value, i.queue.work)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a mutex lock/unlock because i.Key is being read.

func (i *Item) Ack(ctx context.Context) error {
var err error
i.once.Do(func() {
delCmp := clientv3.Compare(clientv3.ModRevision(i.Key), "=", i.Revision)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a mutex lock/unlock because i.Key is being read.

Copy link
Contributor

@echlebek echlebek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image

if err != nil {
return err
}
var mu = &sync.Mutex{}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This mutex is only referenced by a single goroutine, so it has no effect and can be removed.

Dequeue now adds the item to inflight and deletes it from the work queue
in a multi op transaction.

Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

WIP queue durability

Added data structure and methods for item
Added work and in flight lanes

Signed-off-by: Mercedes Coyle <mercedes@sensu.io>
Ack now deletes its item, while Nack puts it back in the work queue.
Now returning nil instead of an empty item struct for better handling.
Nack does put and delete in one transaction
Fixed bug in tryDelete where old keyname would be returned

Signed-off-by: Mercedes Coyle <mercedes@sensu.io>
Added funcs for nacking expired items, getting timestamps from keys, and
updating the key timestamp, configurable timeout value to Queue

Signed-off-by: Mercedes Coyle <mercedes@sensu.io>
Added mutex to item so key updates are locked, updated timestamps to be
consistent time.Time values, un-exported queue lanes

Signed-off-by: Mercedes Coyle <mercedes@sensu.io>
Added locks around transactions
Terminate goroutine on ack/nack or context cancelation

Signed-off-by: Mercedes Coyle <mercedes@sensu.io>
@mercul3s mercul3s merged commit 3479231 into master Feb 1, 2018
@mercul3s mercul3s deleted the durable-queue branch February 1, 2018 18:54
nikkictl pushed a commit that referenced this pull request Feb 5, 2018
commit c8d9dab
Merge: 383e186 aa3d01b
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Feb 5 09:47:28 2018 -0600

    Merge branch 'bugfix/keepalive-timeout' of https://github.com/sensu/sensu-go into bugfix/keepalive-timeout

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 383e186
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 14:46:22 2018 -0600

    Add an e2e test for keepalive timeout updates

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit be67f5b
Author: Nikki Attea <nikki@sensu.io>
Date:   Thu Feb 1 19:06:14 2018 -0600

    Fix the keepalive timeout type, correct a comment and test statement

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit bbb3f3a
Merge: 8e7bb8f d1deb7d
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 10:12:03 2018 -0500

    Merge pull request #962 from sensu/testing/check-scheduling-refactoring

    Refactoring of check_scheduler_test

commit d1deb7d
Merge: 029cf9c 8e7bb8f
Author: Simon Plourde <simon@sensu.io>
Date:   Mon Feb 5 09:33:00 2018 -0500

    Merge branch 'master' into testing/check-scheduling-refactoring

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 8e7bb8f
Merge: 5d9db4f 4b4b17a
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 09:31:49 2018 -0500

    Merge pull request #964 from sensu/testing/etcd

    Disable race detector for tests with etcd store

commit 4b4b17a
Merge: bc5ebc9 5d9db4f
Author: Simon Plourde <simon@sensu.io>
Date:   Mon Feb 5 09:04:23 2018 -0500

    Merge branch 'master' into testing/etcd

commit 5d9db4f
Merge: 3479231 23e2071
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 09:02:26 2018 -0500

    Merge pull request #965 from sensu/fix-queue-test

    Fixed auto nack test

commit 23e2071
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 16:14:51 2018 -0800

    Appease the linter

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit bb85eba
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 15:56:52 2018 -0800

    Rework test to better simulate client crash

    Added context with cancel and then cancel context, queue has default
    timeout of 60 seconds

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 998ceef
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 14:20:34 2018 -0800

    Fixed auto nack test

    Added logic to close client, create a new client and queue, and test
    that the expected value is back in the work queue.

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit bc5ebc9
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:48:09 2018 -0500

    Mark backend/queue tests as integration

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 7932cbd
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:47:34 2018 -0500

    Mark backend/etcd tests as integration

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit aa3d01b
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 14:46:22 2018 -0600

    Add an e2e test for keepalive timeout updates

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 465d89f
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:45:57 2018 -0500

    Explicitly mark which tests should run with race detector

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 24dbd92
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 13:34:01 2018 -0600

    All store/etcd are integration

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 806fca4
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:46:58 2018 -0600

    Revert build tag

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit fc77216
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:43:48 2018 -0600

    Add build tag fix to changelog

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 9085d71
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:42:06 2018 -0600

    Add !race and integration build tags to etcd tests

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 029cf9c
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 13:34:35 2018 -0500

    Add check scheduling refactoring to changelog

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 80f4ad0
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 18:10:21 2018 -0500

    Refactoring of check_scheduler_test

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit e39c65c
Author: Nikki Attea <nikki@sensu.io>
Date:   Thu Feb 1 19:06:14 2018 -0600

    Fix the keepalive timeout type, correct a comment and test statement

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 3479231
Merge: f913cbd c406258
Author: Mercedes Coyle <mercul3s@users.noreply.github.com>
Date:   Thu Feb 1 10:52:21 2018 -0800

    Merge pull request #937 from sensu/durable-queue

    Durable queue

commit f913cbd
Merge: b0baca8 3b3c24c
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Thu Feb 1 13:22:03 2018 -0500

    Merge pull request #957 from sensu/bugfix/check-silencing

    Compare check & entity subscriptions before silencing

commit c406258
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Wed Jan 31 15:55:45 2018 -0800

    Concurrency fixes

    Added locks around transactions
    Terminate goroutine on ack/nack or context cancelation

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit a1e16be
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Tue Jan 30 16:31:06 2018 -0800

    Avoid race in keepalive

    Added mutex to item so key updates are locked, updated timestamps to be
    consistent time.Time values, un-exported queue lanes

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 6b99d48
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Sat Jan 27 12:26:50 2018 -0800

    Ensure ack or nack can only be called once exclusively

    Added funcs for nacking expired items, getting timestamps from keys, and
    updating the key timestamp, configurable timeout value to Queue

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 1824a32
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Thu Jan 25 18:42:15 2018 -0800

    Filled out Ack and Nack functions

    Ack now deletes its item, while Nack puts it back in the work queue.
    Now returning nil instead of an empty item struct for better handling.
    Nack does put and delete in one transaction
    Fixed bug in tryDelete where old keyname would be returned

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit eea7e1f
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Thu Jan 25 13:07:22 2018 -0800

    Added inflight lane and put operation to dequeue

    Dequeue now adds the item to inflight and deletes it from the work queue
    in a multi op transaction.

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

    WIP queue durability

    Added data structure and methods for item
    Added work and in flight lanes

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit b0baca8
Merge: 69988cf d8da7b7
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Thu Feb 1 09:53:14 2018 -0800

    Merge pull request #952 from sensu/concurrency/ring-ownership

    Add ownership concept to the Ring.

commit d8da7b7
Author: Eric Chlebek <eric@sensu.io>
Date:   Tue Jan 30 14:32:22 2018 -0800

    Add ownership concept to the Ring.

    * Adding ring items implicitly tracks ownership by backends.
    * Only the backend that added an item can retrieve it via Next().
    * A backend can transfer ownership of an item to itself with Add().

    This commit provides a way to disambiguate relationships between
    backends and agents, when the ring is used by schedulerd. When a
    client receives a value via Next(), the client knows for a fact
    that the value is one placed there by them.

    The order of the Ring is maintained throughout, by making Next
    block until it has an item that it is allowed to consume.

    If a client and backend go offline and never come back, an orphaned
    element is left in the ring. These are reclaimed by lease
    expirations.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 3b3c24c
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 12:10:40 2018 -0500

    Add changelog entry for event silencing bugfix

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 8aeece9
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 12:00:58 2018 -0500

    Compare check & entity subscriptions before silencing

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 69988cf
Merge: a9d0d3b b91c5f2
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 19:30:16 2018 -0600

    Merge pull request #956 from sensu/bugfix/process-timer

    [Bugfix] Stop timer if process exits before timeout is exceeded

commit b91c5f2
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 18:30:24 2018 -0600

    Use params properly

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 0de6e6a
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 18:14:55 2018 -0600

    Correct type

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 885f6a9
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:49:09 2018 -0600

    Add timeout test cases executeCheck

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit fedcc6e
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:39:56 2018 -0600

    Stop timer if process exits before timeout

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit a9d0d3b
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:36:49 2018 -0600

    Replace array with map and mutex for in-progress checks (#953)

    * Replace array with map for in progress checks, use mutex

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Make inProgress and mutex properties of agent, resolve data race in test

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Replace array with map for in progress checks, use mutex

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Make inProgress and mutex properties of agent, resolve data race in test

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Squashed commit of the following:

    commit fb16820
    Merge: a71b752 d356774
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Wed Jan 31 14:14:46 2018 -0600

        Merge branch 'bugfix/checks-in-progress' of https://github.com/sensu/sensu-go into bugfix/checks-in-progress

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit a71b752
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Wed Jan 31 14:13:15 2018 -0600

        Make inProgress and mutex properties of agent, resolve data race in test

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit 259aca6
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Tue Jan 30 16:40:30 2018 -0600

        Replace array with map for in progress checks, use mutex

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit d356774
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Wed Jan 31 14:13:15 2018 -0600

        Make inProgress and mutex properties of agent, resolve data race in test

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit f585f63
    Author: Simon Plourde <simon.plourde@gmail.com>
    Date:   Wed Jan 31 15:02:17 2018 -0500

        Fix and add integration tests to our CI

        * Fix and add integration tests to our CI

        Signed-off-by: Simon Plourde <simon@sensu.io>

    commit 1229beb
    Merge: 09b7c95 e0d5564
    Author: Eric Chlebek <echlebek@gmail.com>
    Date:   Wed Jan 31 11:31:03 2018 -0800

        Merge pull request #954 from sensu/bugfix/leader-atomics

        Ensure atomic fields are 8-byte aligned.

    commit e0d5564
    Author: Eric Chlebek <eric@sensu.io>
    Date:   Wed Jan 31 10:19:07 2018 -0800

        Ensure atomic fields are 8-byte aligned.

        This is necessary for 32-bit x86 and ARM when performing atomic
        operations.

        Signed-off-by: Eric Chlebek <eric@sensu.io>

    commit a2c1862
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Tue Jan 30 16:40:30 2018 -0600

        Replace array with map for in progress checks, use mutex

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit 09b7c95
    Merge: bad2890 bb7d080
    Author: Simon Plourde <simon.plourde@gmail.com>
    Date:   Tue Jan 30 17:36:07 2018 -0500

        Merge pull request #950 from sensu/testing/proxy-requests

        Add e2e test for proxy check requests

    commit bb7d080
    Merge: 5aa5359 bad2890
    Author: Simon Plourde <simon.plourde@gmail.com>
    Date:   Tue Jan 30 17:36:00 2018 -0500

        Merge branch 'master' into testing/proxy-requests

    commit bad2890
    Author: Simon Plourde <simon@sensu.io>
    Date:   Tue Jan 30 16:19:45 2018 -0500

        Bumped version to v2.0.0-alpha.15-1

        Signed-off-by: Simon Plourde <simon@sensu.io>

    commit f0f250e
    Merge: 67e9871 c49a109
    Author: Melissa Page <73hl10n@gmail.com>
    Date:   Tue Jan 30 12:49:31 2018 -0800

        Merge pull request #948 from sensu/web/quicknav

        [Web] Quick Nav Implementation

    commit c49a109
    Merge: fa002d4 67e9871
    Author: Melissa Page <73hl10n@gmail.com>
    Date:   Tue Jan 30 12:48:48 2018 -0800

        Merge branch 'master' into web/quicknav

    commit fa002d4
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Tue Jan 30 11:45:27 2018 -0800

        Wrap up changes to converting IconButton to Link

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit a1243d5
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Tue Jan 30 09:37:11 2018 -0800

        Add TODOs and use theme colour when possible

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 5aa5359
    Author: Simon Plourde <simon@sensu.io>
    Date:   Tue Jan 30 10:44:35 2018 -0500

        Add e2e test for proxy check requests

        Signed-off-by: Simon Plourde <simon@sensu.io>

    commit 15a20eb
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 18:32:47 2018 -0800

        Update changelog

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit ccd3148
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 18:03:15 2018 -0800

        Update package.json with classnames dependency for quick nav

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit cbbac90
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 17:26:44 2018 -0800

        Finish quick nav implementation and clean up

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit f1df0ec
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 15:47:29 2018 -0800

        Quick nav padding and coour adjustments

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 6cb0d9e
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 15:16:39 2018 -0800

        Quick nav improvements

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 0213823
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Fri Jan 26 14:52:22 2018 -0800

        Quick nav improvements

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 120abc5
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Thu Jan 25 17:55:48 2018 -0800

        Initial steps for quick nav component

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Resolve merge conflict

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Resolve interface error

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Remove ineffectual statement

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * 4th check is unnecessary, add comments

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Unit test rather than integration test, modify in progress checks directly

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit f585f63
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Wed Jan 31 15:02:17 2018 -0500

    Fix and add integration tests to our CI

    * Fix and add integration tests to our CI

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 1229beb
Merge: 09b7c95 e0d5564
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Wed Jan 31 11:31:03 2018 -0800

    Merge pull request #954 from sensu/bugfix/leader-atomics

    Ensure atomic fields are 8-byte aligned.

commit e0d5564
Author: Eric Chlebek <eric@sensu.io>
Date:   Wed Jan 31 10:19:07 2018 -0800

    Ensure atomic fields are 8-byte aligned.

    This is necessary for 32-bit x86 and ARM when performing atomic
    operations.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 09b7c95
Merge: bad2890 bb7d080
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Tue Jan 30 17:36:07 2018 -0500

    Merge pull request #950 from sensu/testing/proxy-requests

    Add e2e test for proxy check requests

commit bb7d080
Merge: 5aa5359 bad2890
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Tue Jan 30 17:36:00 2018 -0500

    Merge branch 'master' into testing/proxy-requests

commit bad2890
Author: Simon Plourde <simon@sensu.io>
Date:   Tue Jan 30 16:19:45 2018 -0500

    Bumped version to v2.0.0-alpha.15-1

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit f0f250e
Merge: 67e9871 c49a109
Author: Melissa Page <73hl10n@gmail.com>
Date:   Tue Jan 30 12:49:31 2018 -0800

    Merge pull request #948 from sensu/web/quicknav

    [Web] Quick Nav Implementation

commit c49a109
Merge: fa002d4 67e9871
Author: Melissa Page <73hl10n@gmail.com>
Date:   Tue Jan 30 12:48:48 2018 -0800

    Merge branch 'master' into web/quicknav

commit fa002d4
Author: Melissa P <73hl10n@gmail.com>
Date:   Tue Jan 30 11:45:27 2018 -0800

    Wrap up changes to converting IconButton to Link

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 67e9871
Merge: 735e396 8ae0fe0
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Tue Jan 30 11:40:49 2018 -0800

    Merge pull request #947 from sensu/concurrency/ring-peek

    Add Peek method to Ring.

commit a1243d5
Author: Melissa P <73hl10n@gmail.com>
Date:   Tue Jan 30 09:37:11 2018 -0800

    Add TODOs and use theme colour when possible

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 5aa5359
Author: Simon Plourde <simon@sensu.io>
Date:   Tue Jan 30 10:44:35 2018 -0500

    Add e2e test for proxy check requests

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 735e396
Merge: 44cc345 e895678
Author: Nikki Attea <nikki@sensu.io>
Date:   Tue Jan 30 10:30:03 2018 -0600

    Merge pull request #944 from sensu/feature/proxy-requests

    Publish Proxy Check Requests

commit e895678
Author: Nikki Attea <nikki@sensu.io>
Date:   Tue Jan 30 10:09:39 2018 -0600

    Log statement if no entities match

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 15a20eb
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 18:32:47 2018 -0800

    Update changelog

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 717b5a7
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Jan 29 20:15:27 2018 -0600

    Only replace \" if contained within {{ }}, add test cases

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit ccd3148
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 18:03:15 2018 -0800

    Update package.json with classnames dependency for quick nav

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit cbbac90
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 17:26:44 2018 -0800

    Finish quick nav implementation and clean up

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit f1df0ec
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 15:47:29 2018 -0800

    Quick nav padding and coour adjustments

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 6cb0d9e
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 15:16:39 2018 -0800

    Quick nav improvements

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 0213823
Author: Melissa P <73hl10n@gmail.com>
Date:   Fri Jan 26 14:52:22 2018 -0800

    Quick nav improvements

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 120abc5
Author: Melissa P <73hl10n@gmail.com>
Date:   Thu Jan 25 17:55:48 2018 -0800

    Initial steps for quick nav component

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 44cc345
Author: Greg Poirier <grep@binary-snobbery.com>
Date:   Mon Jan 29 13:45:16 2018 -0800

    Cron and Interval check scheduling are now mutually exclusive (#941)

    * Cron and Interval check scheduling are now mutually exclusive

    Signed-off-by: Greg Poirier <greg.istehbest@gmail.com>

commit 8ae0fe0
Author: Eric Chlebek <eric@sensu.io>
Date:   Mon Jan 29 13:11:27 2018 -0800

    Add Peek method to Ring.

    Peek can be used by clients that wish to know what's next in the
    ring, but don't wish to advance the iteration.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 779b7a1
Author: Eric Chlebek <eric@sensu.io>
Date:   Mon Jan 29 10:41:39 2018 -0800

    Don't use -v for tests.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 9477219
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Jan 29 12:56:42 2018 -0600

    Publish proxy check requests to entities if applicable, add remove-proxy-requests cli command, refactor funcs to util/eval

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 40bc256
Merge: 1e0a122 106439c
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Mon Jan 29 10:30:25 2018 -0800

    Merge pull request #908 from sensu/concurrency/leader

    Add package leader.

commit 106439c
Author: Eric Chlebek <eric@sensu.io>
Date:   Thu Jan 18 15:35:27 2018 -0800

    Add package leader.

    Package leader provides the Do function, which allows package
    users to execute functions exclusively from the leader node.
    The leader package uses etcd elections to achieve this.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 1e0a122
Merge: f779c75 d915f19
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 14:08:03 2018 -0800

    Merge pull request #936 from sensu/dashboard-cleanup

    [Web] Housekeeping

commit d915f19
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 04:40:53 2018 -0800

    [Web] Fix gutters on AppBar

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit aea7e13
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 04:29:05 2018 -0800

    [Web] Remove avatar from toolbar; move logout to drawer

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 0fee12b
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 03:37:46 2018 -0800

    [Web] Update lint-staged

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 40c5b33
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 03:30:11 2018 -0800

    [Web] Update react & friends

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 0acc324
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 03:13:02 2018 -0800

    [Web] Update eslint packages

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 6a74cae
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 02:44:34 2018 -0800

    [Web] Update babel packages

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit a3baf90
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 02:34:55 2018 -0800

    [Web] Update react-dev-utils package

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 309fcda
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 02:19:20 2018 -0800

    [Web] Update material-ui to latest for style improvements

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit e7cb685
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Thu Jan 25 13:02:05 2018 -0800

    [GraphQL] Fixup issue with pagination

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

Signed-off-by: Nikki Attea <nikki@sensu.io>
nikkictl pushed a commit that referenced this pull request Feb 5, 2018
commit 1dffad9
Merge: ac30441 3b866dc
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Feb 5 09:56:04 2018 -0600

    Merge branch 'bugfix/confirm-delete' of https://github.com/sensu/sensu-go into bugfix/confirm-delete

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit ac30441
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:12:08 2018 -0600

    Add cli change to changelog

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit f33812c
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:06:57 2018 -0600

    Appease the linter, return false if error/interrupt

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit bd92e0e
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:02:46 2018 -0600

    Change uppercase confirm delete to y/N

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit bbb3f3a
Merge: 8e7bb8f d1deb7d
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 10:12:03 2018 -0500

    Merge pull request #962 from sensu/testing/check-scheduling-refactoring

    Refactoring of check_scheduler_test

commit d1deb7d
Merge: 029cf9c 8e7bb8f
Author: Simon Plourde <simon@sensu.io>
Date:   Mon Feb 5 09:33:00 2018 -0500

    Merge branch 'master' into testing/check-scheduling-refactoring

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 8e7bb8f
Merge: 5d9db4f 4b4b17a
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 09:31:49 2018 -0500

    Merge pull request #964 from sensu/testing/etcd

    Disable race detector for tests with etcd store

commit 4b4b17a
Merge: bc5ebc9 5d9db4f
Author: Simon Plourde <simon@sensu.io>
Date:   Mon Feb 5 09:04:23 2018 -0500

    Merge branch 'master' into testing/etcd

commit 5d9db4f
Merge: 3479231 23e2071
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 09:02:26 2018 -0500

    Merge pull request #965 from sensu/fix-queue-test

    Fixed auto nack test

commit 23e2071
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 16:14:51 2018 -0800

    Appease the linter

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit bb85eba
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 15:56:52 2018 -0800

    Rework test to better simulate client crash

    Added context with cancel and then cancel context, queue has default
    timeout of 60 seconds

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 998ceef
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 14:20:34 2018 -0800

    Fixed auto nack test

    Added logic to close client, create a new client and queue, and test
    that the expected value is back in the work queue.

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit bc5ebc9
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:48:09 2018 -0500

    Mark backend/queue tests as integration

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 7932cbd
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:47:34 2018 -0500

    Mark backend/etcd tests as integration

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 465d89f
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:45:57 2018 -0500

    Explicitly mark which tests should run with race detector

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 24dbd92
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 13:34:01 2018 -0600

    All store/etcd are integration

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 806fca4
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:46:58 2018 -0600

    Revert build tag

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit fc77216
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:43:48 2018 -0600

    Add build tag fix to changelog

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 9085d71
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:42:06 2018 -0600

    Add !race and integration build tags to etcd tests

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 029cf9c
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 13:34:35 2018 -0500

    Add check scheduling refactoring to changelog

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 80f4ad0
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 18:10:21 2018 -0500

    Refactoring of check_scheduler_test

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 3b866dc
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:12:08 2018 -0600

    Add cli change to changelog

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 59e7d53
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:06:57 2018 -0600

    Appease the linter, return false if error/interrupt

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 111f4bf
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:02:46 2018 -0600

    Change uppercase confirm delete to y/N

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 3479231
Merge: f913cbd c406258
Author: Mercedes Coyle <mercul3s@users.noreply.github.com>
Date:   Thu Feb 1 10:52:21 2018 -0800

    Merge pull request #937 from sensu/durable-queue

    Durable queue

commit f913cbd
Merge: b0baca8 3b3c24c
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Thu Feb 1 13:22:03 2018 -0500

    Merge pull request #957 from sensu/bugfix/check-silencing

    Compare check & entity subscriptions before silencing

commit c406258
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Wed Jan 31 15:55:45 2018 -0800

    Concurrency fixes

    Added locks around transactions
    Terminate goroutine on ack/nack or context cancelation

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit a1e16be
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Tue Jan 30 16:31:06 2018 -0800

    Avoid race in keepalive

    Added mutex to item so key updates are locked, updated timestamps to be
    consistent time.Time values, un-exported queue lanes

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 6b99d48
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Sat Jan 27 12:26:50 2018 -0800

    Ensure ack or nack can only be called once exclusively

    Added funcs for nacking expired items, getting timestamps from keys, and
    updating the key timestamp, configurable timeout value to Queue

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 1824a32
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Thu Jan 25 18:42:15 2018 -0800

    Filled out Ack and Nack functions

    Ack now deletes its item, while Nack puts it back in the work queue.
    Now returning nil instead of an empty item struct for better handling.
    Nack does put and delete in one transaction
    Fixed bug in tryDelete where old keyname would be returned

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit eea7e1f
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Thu Jan 25 13:07:22 2018 -0800

    Added inflight lane and put operation to dequeue

    Dequeue now adds the item to inflight and deletes it from the work queue
    in a multi op transaction.

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

    WIP queue durability

    Added data structure and methods for item
    Added work and in flight lanes

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit b0baca8
Merge: 69988cf d8da7b7
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Thu Feb 1 09:53:14 2018 -0800

    Merge pull request #952 from sensu/concurrency/ring-ownership

    Add ownership concept to the Ring.

commit d8da7b7
Author: Eric Chlebek <eric@sensu.io>
Date:   Tue Jan 30 14:32:22 2018 -0800

    Add ownership concept to the Ring.

    * Adding ring items implicitly tracks ownership by backends.
    * Only the backend that added an item can retrieve it via Next().
    * A backend can transfer ownership of an item to itself with Add().

    This commit provides a way to disambiguate relationships between
    backends and agents, when the ring is used by schedulerd. When a
    client receives a value via Next(), the client knows for a fact
    that the value is one placed there by them.

    The order of the Ring is maintained throughout, by making Next
    block until it has an item that it is allowed to consume.

    If a client and backend go offline and never come back, an orphaned
    element is left in the ring. These are reclaimed by lease
    expirations.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 3b3c24c
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 12:10:40 2018 -0500

    Add changelog entry for event silencing bugfix

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 8aeece9
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 12:00:58 2018 -0500

    Compare check & entity subscriptions before silencing

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 69988cf
Merge: a9d0d3b b91c5f2
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 19:30:16 2018 -0600

    Merge pull request #956 from sensu/bugfix/process-timer

    [Bugfix] Stop timer if process exits before timeout is exceeded

commit b91c5f2
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 18:30:24 2018 -0600

    Use params properly

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 0de6e6a
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 18:14:55 2018 -0600

    Correct type

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 885f6a9
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:49:09 2018 -0600

    Add timeout test cases executeCheck

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit fedcc6e
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:39:56 2018 -0600

    Stop timer if process exits before timeout

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit a9d0d3b
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:36:49 2018 -0600

    Replace array with map and mutex for in-progress checks (#953)

    * Replace array with map for in progress checks, use mutex

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Make inProgress and mutex properties of agent, resolve data race in test

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Replace array with map for in progress checks, use mutex

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Make inProgress and mutex properties of agent, resolve data race in test

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Squashed commit of the following:

    commit fb16820
    Merge: a71b752 d356774
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Wed Jan 31 14:14:46 2018 -0600

        Merge branch 'bugfix/checks-in-progress' of https://github.com/sensu/sensu-go into bugfix/checks-in-progress

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit a71b752
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Wed Jan 31 14:13:15 2018 -0600

        Make inProgress and mutex properties of agent, resolve data race in test

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit 259aca6
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Tue Jan 30 16:40:30 2018 -0600

        Replace array with map for in progress checks, use mutex

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit d356774
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Wed Jan 31 14:13:15 2018 -0600

        Make inProgress and mutex properties of agent, resolve data race in test

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit f585f63
    Author: Simon Plourde <simon.plourde@gmail.com>
    Date:   Wed Jan 31 15:02:17 2018 -0500

        Fix and add integration tests to our CI

        * Fix and add integration tests to our CI

        Signed-off-by: Simon Plourde <simon@sensu.io>

    commit 1229beb
    Merge: 09b7c95 e0d5564
    Author: Eric Chlebek <echlebek@gmail.com>
    Date:   Wed Jan 31 11:31:03 2018 -0800

        Merge pull request #954 from sensu/bugfix/leader-atomics

        Ensure atomic fields are 8-byte aligned.

    commit e0d5564
    Author: Eric Chlebek <eric@sensu.io>
    Date:   Wed Jan 31 10:19:07 2018 -0800

        Ensure atomic fields are 8-byte aligned.

        This is necessary for 32-bit x86 and ARM when performing atomic
        operations.

        Signed-off-by: Eric Chlebek <eric@sensu.io>

    commit a2c1862
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Tue Jan 30 16:40:30 2018 -0600

        Replace array with map for in progress checks, use mutex

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit 09b7c95
    Merge: bad2890 bb7d080
    Author: Simon Plourde <simon.plourde@gmail.com>
    Date:   Tue Jan 30 17:36:07 2018 -0500

        Merge pull request #950 from sensu/testing/proxy-requests

        Add e2e test for proxy check requests

    commit bb7d080
    Merge: 5aa5359 bad2890
    Author: Simon Plourde <simon.plourde@gmail.com>
    Date:   Tue Jan 30 17:36:00 2018 -0500

        Merge branch 'master' into testing/proxy-requests

    commit bad2890
    Author: Simon Plourde <simon@sensu.io>
    Date:   Tue Jan 30 16:19:45 2018 -0500

        Bumped version to v2.0.0-alpha.15-1

        Signed-off-by: Simon Plourde <simon@sensu.io>

    commit f0f250e
    Merge: 67e9871 c49a109
    Author: Melissa Page <73hl10n@gmail.com>
    Date:   Tue Jan 30 12:49:31 2018 -0800

        Merge pull request #948 from sensu/web/quicknav

        [Web] Quick Nav Implementation

    commit c49a109
    Merge: fa002d4 67e9871
    Author: Melissa Page <73hl10n@gmail.com>
    Date:   Tue Jan 30 12:48:48 2018 -0800

        Merge branch 'master' into web/quicknav

    commit fa002d4
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Tue Jan 30 11:45:27 2018 -0800

        Wrap up changes to converting IconButton to Link

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit a1243d5
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Tue Jan 30 09:37:11 2018 -0800

        Add TODOs and use theme colour when possible

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 5aa5359
    Author: Simon Plourde <simon@sensu.io>
    Date:   Tue Jan 30 10:44:35 2018 -0500

        Add e2e test for proxy check requests

        Signed-off-by: Simon Plourde <simon@sensu.io>

    commit 15a20eb
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 18:32:47 2018 -0800

        Update changelog

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit ccd3148
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 18:03:15 2018 -0800

        Update package.json with classnames dependency for quick nav

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit cbbac90
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 17:26:44 2018 -0800

        Finish quick nav implementation and clean up

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit f1df0ec
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 15:47:29 2018 -0800

        Quick nav padding and coour adjustments

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 6cb0d9e
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 15:16:39 2018 -0800

        Quick nav improvements

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 0213823
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Fri Jan 26 14:52:22 2018 -0800

        Quick nav improvements

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 120abc5
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Thu Jan 25 17:55:48 2018 -0800

        Initial steps for quick nav component

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Resolve merge conflict

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Resolve interface error

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Remove ineffectual statement

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * 4th check is unnecessary, add comments

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Unit test rather than integration test, modify in progress checks directly

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit f585f63
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Wed Jan 31 15:02:17 2018 -0500

    Fix and add integration tests to our CI

    * Fix and add integration tests to our CI

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 1229beb
Merge: 09b7c95 e0d5564
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Wed Jan 31 11:31:03 2018 -0800

    Merge pull request #954 from sensu/bugfix/leader-atomics

    Ensure atomic fields are 8-byte aligned.

commit e0d5564
Author: Eric Chlebek <eric@sensu.io>
Date:   Wed Jan 31 10:19:07 2018 -0800

    Ensure atomic fields are 8-byte aligned.

    This is necessary for 32-bit x86 and ARM when performing atomic
    operations.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 09b7c95
Merge: bad2890 bb7d080
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Tue Jan 30 17:36:07 2018 -0500

    Merge pull request #950 from sensu/testing/proxy-requests

    Add e2e test for proxy check requests

commit bb7d080
Merge: 5aa5359 bad2890
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Tue Jan 30 17:36:00 2018 -0500

    Merge branch 'master' into testing/proxy-requests

commit bad2890
Author: Simon Plourde <simon@sensu.io>
Date:   Tue Jan 30 16:19:45 2018 -0500

    Bumped version to v2.0.0-alpha.15-1

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit f0f250e
Merge: 67e9871 c49a109
Author: Melissa Page <73hl10n@gmail.com>
Date:   Tue Jan 30 12:49:31 2018 -0800

    Merge pull request #948 from sensu/web/quicknav

    [Web] Quick Nav Implementation

commit c49a109
Merge: fa002d4 67e9871
Author: Melissa Page <73hl10n@gmail.com>
Date:   Tue Jan 30 12:48:48 2018 -0800

    Merge branch 'master' into web/quicknav

commit fa002d4
Author: Melissa P <73hl10n@gmail.com>
Date:   Tue Jan 30 11:45:27 2018 -0800

    Wrap up changes to converting IconButton to Link

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 67e9871
Merge: 735e396 8ae0fe0
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Tue Jan 30 11:40:49 2018 -0800

    Merge pull request #947 from sensu/concurrency/ring-peek

    Add Peek method to Ring.

commit a1243d5
Author: Melissa P <73hl10n@gmail.com>
Date:   Tue Jan 30 09:37:11 2018 -0800

    Add TODOs and use theme colour when possible

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 5aa5359
Author: Simon Plourde <simon@sensu.io>
Date:   Tue Jan 30 10:44:35 2018 -0500

    Add e2e test for proxy check requests

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 735e396
Merge: 44cc345 e895678
Author: Nikki Attea <nikki@sensu.io>
Date:   Tue Jan 30 10:30:03 2018 -0600

    Merge pull request #944 from sensu/feature/proxy-requests

    Publish Proxy Check Requests

commit e895678
Author: Nikki Attea <nikki@sensu.io>
Date:   Tue Jan 30 10:09:39 2018 -0600

    Log statement if no entities match

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 15a20eb
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 18:32:47 2018 -0800

    Update changelog

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 717b5a7
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Jan 29 20:15:27 2018 -0600

    Only replace \" if contained within {{ }}, add test cases

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit ccd3148
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 18:03:15 2018 -0800

    Update package.json with classnames dependency for quick nav

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit cbbac90
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 17:26:44 2018 -0800

    Finish quick nav implementation and clean up

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit f1df0ec
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 15:47:29 2018 -0800

    Quick nav padding and coour adjustments

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 6cb0d9e
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 15:16:39 2018 -0800

    Quick nav improvements

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 0213823
Author: Melissa P <73hl10n@gmail.com>
Date:   Fri Jan 26 14:52:22 2018 -0800

    Quick nav improvements

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 120abc5
Author: Melissa P <73hl10n@gmail.com>
Date:   Thu Jan 25 17:55:48 2018 -0800

    Initial steps for quick nav component

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 44cc345
Author: Greg Poirier <grep@binary-snobbery.com>
Date:   Mon Jan 29 13:45:16 2018 -0800

    Cron and Interval check scheduling are now mutually exclusive (#941)

    * Cron and Interval check scheduling are now mutually exclusive

    Signed-off-by: Greg Poirier <greg.istehbest@gmail.com>

commit 8ae0fe0
Author: Eric Chlebek <eric@sensu.io>
Date:   Mon Jan 29 13:11:27 2018 -0800

    Add Peek method to Ring.

    Peek can be used by clients that wish to know what's next in the
    ring, but don't wish to advance the iteration.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 779b7a1
Author: Eric Chlebek <eric@sensu.io>
Date:   Mon Jan 29 10:41:39 2018 -0800

    Don't use -v for tests.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 9477219
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Jan 29 12:56:42 2018 -0600

    Publish proxy check requests to entities if applicable, add remove-proxy-requests cli command, refactor funcs to util/eval

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 40bc256
Merge: 1e0a122 106439c
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Mon Jan 29 10:30:25 2018 -0800

    Merge pull request #908 from sensu/concurrency/leader

    Add package leader.

commit 106439c
Author: Eric Chlebek <eric@sensu.io>
Date:   Thu Jan 18 15:35:27 2018 -0800

    Add package leader.

    Package leader provides the Do function, which allows package
    users to execute functions exclusively from the leader node.
    The leader package uses etcd elections to achieve this.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 1e0a122
Merge: f779c75 d915f19
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 14:08:03 2018 -0800

    Merge pull request #936 from sensu/dashboard-cleanup

    [Web] Housekeeping

commit f779c75
Merge: 498e09f 7939762
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Fri Jan 26 13:53:15 2018 -0800

    Merge pull request #930 from sensu/concurrency/etcd-ring

    Add etcd ring data structure.

commit 7939762
Author: Eric Chlebek <eric@sensu.io>
Date:   Fri Jan 26 10:47:04 2018 -0800

    Fix lint and Getter interface.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit dd9013c
Author: Eric Chlebek <eric@sensu.io>
Date:   Thu Jan 25 14:45:40 2018 -0800

    Ensure value is not already present on Add.

    This commit fixes a but in the ring data structure where
    duplicates could be added if the added value is already present.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 2951c11
Author: Eric Chlebek <eric@sensu.io>
Date:   Wed Jan 24 15:24:39 2018 -0800

    Add etcd ring data structure.

    Ring is a data structure that cycles through its values with every
    call to Next. The values can be added or removed concurrently with
    calls to Next.

    Ring will be used for round-robin scheduling.

    Closes #925

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit d915f19
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 04:40:53 2018 -0800

    [Web] Fix gutters on AppBar

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit aea7e13
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 04:29:05 2018 -0800

    [Web] Remove avatar from toolbar; move logout to drawer

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 0fee12b
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 03:37:46 2018 -0800

    [Web] Update lint-staged

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 40c5b33
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 03:30:11 2018 -0800

    [Web] Update react & friends

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 0acc324
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 03:13:02 2018 -0800

    [Web] Update eslint packages

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 6a74cae
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 02:44:34 2018 -0800

    [Web] Update babel packages

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit a3baf90
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 02:34:55 2018 -0800

    [Web] Update react-dev-utils package

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 309fcda
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 02:19:20 2018 -0800

    [Web] Update material-ui to latest for style improvements

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit e7cb685
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Thu Jan 25 13:02:05 2018 -0800

    [GraphQL] Fixup issue with pagination

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

Signed-off-by: Nikki Attea <nikki@sensu.io>
nikkictl pushed a commit that referenced this pull request Feb 5, 2018
)

* Fix the keepalive timeout type, correct a comment and test statement

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Add an e2e test for keepalive timeout updates

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Fix the keepalive timeout type, correct a comment and test statement

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Add an e2e test for keepalive timeout updates

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Squashed commit of the following:

commit c8d9dab
Merge: 383e186 aa3d01b
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Feb 5 09:47:28 2018 -0600

    Merge branch 'bugfix/keepalive-timeout' of https://github.com/sensu/sensu-go into bugfix/keepalive-timeout

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 383e186
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 14:46:22 2018 -0600

    Add an e2e test for keepalive timeout updates

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit be67f5b
Author: Nikki Attea <nikki@sensu.io>
Date:   Thu Feb 1 19:06:14 2018 -0600

    Fix the keepalive timeout type, correct a comment and test statement

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit bbb3f3a
Merge: 8e7bb8f d1deb7d
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 10:12:03 2018 -0500

    Merge pull request #962 from sensu/testing/check-scheduling-refactoring

    Refactoring of check_scheduler_test

commit d1deb7d
Merge: 029cf9c 8e7bb8f
Author: Simon Plourde <simon@sensu.io>
Date:   Mon Feb 5 09:33:00 2018 -0500

    Merge branch 'master' into testing/check-scheduling-refactoring

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 8e7bb8f
Merge: 5d9db4f 4b4b17a
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 09:31:49 2018 -0500

    Merge pull request #964 from sensu/testing/etcd

    Disable race detector for tests with etcd store

commit 4b4b17a
Merge: bc5ebc9 5d9db4f
Author: Simon Plourde <simon@sensu.io>
Date:   Mon Feb 5 09:04:23 2018 -0500

    Merge branch 'master' into testing/etcd

commit 5d9db4f
Merge: 3479231 23e2071
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 09:02:26 2018 -0500

    Merge pull request #965 from sensu/fix-queue-test

    Fixed auto nack test

commit 23e2071
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 16:14:51 2018 -0800

    Appease the linter

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit bb85eba
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 15:56:52 2018 -0800

    Rework test to better simulate client crash

    Added context with cancel and then cancel context, queue has default
    timeout of 60 seconds

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 998ceef
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 14:20:34 2018 -0800

    Fixed auto nack test

    Added logic to close client, create a new client and queue, and test
    that the expected value is back in the work queue.

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit bc5ebc9
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:48:09 2018 -0500

    Mark backend/queue tests as integration

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 7932cbd
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:47:34 2018 -0500

    Mark backend/etcd tests as integration

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit aa3d01b
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 14:46:22 2018 -0600

    Add an e2e test for keepalive timeout updates

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 465d89f
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:45:57 2018 -0500

    Explicitly mark which tests should run with race detector

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 24dbd92
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 13:34:01 2018 -0600

    All store/etcd are integration

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 806fca4
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:46:58 2018 -0600

    Revert build tag

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit fc77216
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:43:48 2018 -0600

    Add build tag fix to changelog

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 9085d71
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:42:06 2018 -0600

    Add !race and integration build tags to etcd tests

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 029cf9c
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 13:34:35 2018 -0500

    Add check scheduling refactoring to changelog

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 80f4ad0
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 18:10:21 2018 -0500

    Refactoring of check_scheduler_test

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit e39c65c
Author: Nikki Attea <nikki@sensu.io>
Date:   Thu Feb 1 19:06:14 2018 -0600

    Fix the keepalive timeout type, correct a comment and test statement

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 3479231
Merge: f913cbd c406258
Author: Mercedes Coyle <mercul3s@users.noreply.github.com>
Date:   Thu Feb 1 10:52:21 2018 -0800

    Merge pull request #937 from sensu/durable-queue

    Durable queue

commit f913cbd
Merge: b0baca8 3b3c24c
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Thu Feb 1 13:22:03 2018 -0500

    Merge pull request #957 from sensu/bugfix/check-silencing

    Compare check & entity subscriptions before silencing

commit c406258
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Wed Jan 31 15:55:45 2018 -0800

    Concurrency fixes

    Added locks around transactions
    Terminate goroutine on ack/nack or context cancelation

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit a1e16be
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Tue Jan 30 16:31:06 2018 -0800

    Avoid race in keepalive

    Added mutex to item so key updates are locked, updated timestamps to be
    consistent time.Time values, un-exported queue lanes

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 6b99d48
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Sat Jan 27 12:26:50 2018 -0800

    Ensure ack or nack can only be called once exclusively

    Added funcs for nacking expired items, getting timestamps from keys, and
    updating the key timestamp, configurable timeout value to Queue

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 1824a32
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Thu Jan 25 18:42:15 2018 -0800

    Filled out Ack and Nack functions

    Ack now deletes its item, while Nack puts it back in the work queue.
    Now returning nil instead of an empty item struct for better handling.
    Nack does put and delete in one transaction
    Fixed bug in tryDelete where old keyname would be returned

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit eea7e1f
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Thu Jan 25 13:07:22 2018 -0800

    Added inflight lane and put operation to dequeue

    Dequeue now adds the item to inflight and deletes it from the work queue
    in a multi op transaction.

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

    WIP queue durability

    Added data structure and methods for item
    Added work and in flight lanes

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit b0baca8
Merge: 69988cf d8da7b7
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Thu Feb 1 09:53:14 2018 -0800

    Merge pull request #952 from sensu/concurrency/ring-ownership

    Add ownership concept to the Ring.

commit d8da7b7
Author: Eric Chlebek <eric@sensu.io>
Date:   Tue Jan 30 14:32:22 2018 -0800

    Add ownership concept to the Ring.

    * Adding ring items implicitly tracks ownership by backends.
    * Only the backend that added an item can retrieve it via Next().
    * A backend can transfer ownership of an item to itself with Add().

    This commit provides a way to disambiguate relationships between
    backends and agents, when the ring is used by schedulerd. When a
    client receives a value via Next(), the client knows for a fact
    that the value is one placed there by them.

    The order of the Ring is maintained throughout, by making Next
    block until it has an item that it is allowed to consume.

    If a client and backend go offline and never come back, an orphaned
    element is left in the ring. These are reclaimed by lease
    expirations.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 3b3c24c
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 12:10:40 2018 -0500

    Add changelog entry for event silencing bugfix

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 8aeece9
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 12:00:58 2018 -0500

    Compare check & entity subscriptions before silencing

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 69988cf
Merge: a9d0d3b b91c5f2
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 19:30:16 2018 -0600

    Merge pull request #956 from sensu/bugfix/process-timer

    [Bugfix] Stop timer if process exits before timeout is exceeded

commit b91c5f2
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 18:30:24 2018 -0600

    Use params properly

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 0de6e6a
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 18:14:55 2018 -0600

    Correct type

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 885f6a9
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:49:09 2018 -0600

    Add timeout test cases executeCheck

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit fedcc6e
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:39:56 2018 -0600

    Stop timer if process exits before timeout

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit a9d0d3b
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:36:49 2018 -0600

    Replace array with map and mutex for in-progress checks (#953)

    * Replace array with map for in progress checks, use mutex

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Make inProgress and mutex properties of agent, resolve data race in test

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Replace array with map for in progress checks, use mutex

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Make inProgress and mutex properties of agent, resolve data race in test

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Squashed commit of the following:

    commit fb16820
    Merge: a71b752 d356774
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Wed Jan 31 14:14:46 2018 -0600

        Merge branch 'bugfix/checks-in-progress' of https://github.com/sensu/sensu-go into bugfix/checks-in-progress

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit a71b752
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Wed Jan 31 14:13:15 2018 -0600

        Make inProgress and mutex properties of agent, resolve data race in test

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit 259aca6
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Tue Jan 30 16:40:30 2018 -0600

        Replace array with map for in progress checks, use mutex

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit d356774
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Wed Jan 31 14:13:15 2018 -0600

        Make inProgress and mutex properties of agent, resolve data race in test

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit f585f63
    Author: Simon Plourde <simon.plourde@gmail.com>
    Date:   Wed Jan 31 15:02:17 2018 -0500

        Fix and add integration tests to our CI

        * Fix and add integration tests to our CI

        Signed-off-by: Simon Plourde <simon@sensu.io>

    commit 1229beb
    Merge: 09b7c95 e0d5564
    Author: Eric Chlebek <echlebek@gmail.com>
    Date:   Wed Jan 31 11:31:03 2018 -0800

        Merge pull request #954 from sensu/bugfix/leader-atomics

        Ensure atomic fields are 8-byte aligned.

    commit e0d5564
    Author: Eric Chlebek <eric@sensu.io>
    Date:   Wed Jan 31 10:19:07 2018 -0800

        Ensure atomic fields are 8-byte aligned.

        This is necessary for 32-bit x86 and ARM when performing atomic
        operations.

        Signed-off-by: Eric Chlebek <eric@sensu.io>

    commit a2c1862
    Author: Nikki Attea <nikki@sensu.io>
    Date:   Tue Jan 30 16:40:30 2018 -0600

        Replace array with map for in progress checks, use mutex

        Signed-off-by: Nikki Attea <nikki@sensu.io>

    commit 09b7c95
    Merge: bad2890 bb7d080
    Author: Simon Plourde <simon.plourde@gmail.com>
    Date:   Tue Jan 30 17:36:07 2018 -0500

        Merge pull request #950 from sensu/testing/proxy-requests

        Add e2e test for proxy check requests

    commit bb7d080
    Merge: 5aa5359 bad2890
    Author: Simon Plourde <simon.plourde@gmail.com>
    Date:   Tue Jan 30 17:36:00 2018 -0500

        Merge branch 'master' into testing/proxy-requests

    commit bad2890
    Author: Simon Plourde <simon@sensu.io>
    Date:   Tue Jan 30 16:19:45 2018 -0500

        Bumped version to v2.0.0-alpha.15-1

        Signed-off-by: Simon Plourde <simon@sensu.io>

    commit f0f250e
    Merge: 67e9871 c49a109
    Author: Melissa Page <73hl10n@gmail.com>
    Date:   Tue Jan 30 12:49:31 2018 -0800

        Merge pull request #948 from sensu/web/quicknav

        [Web] Quick Nav Implementation

    commit c49a109
    Merge: fa002d4 67e9871
    Author: Melissa Page <73hl10n@gmail.com>
    Date:   Tue Jan 30 12:48:48 2018 -0800

        Merge branch 'master' into web/quicknav

    commit fa002d4
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Tue Jan 30 11:45:27 2018 -0800

        Wrap up changes to converting IconButton to Link

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit a1243d5
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Tue Jan 30 09:37:11 2018 -0800

        Add TODOs and use theme colour when possible

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 5aa5359
    Author: Simon Plourde <simon@sensu.io>
    Date:   Tue Jan 30 10:44:35 2018 -0500

        Add e2e test for proxy check requests

        Signed-off-by: Simon Plourde <simon@sensu.io>

    commit 15a20eb
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 18:32:47 2018 -0800

        Update changelog

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit ccd3148
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 18:03:15 2018 -0800

        Update package.json with classnames dependency for quick nav

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit cbbac90
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 17:26:44 2018 -0800

        Finish quick nav implementation and clean up

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit f1df0ec
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 15:47:29 2018 -0800

        Quick nav padding and coour adjustments

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 6cb0d9e
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Mon Jan 29 15:16:39 2018 -0800

        Quick nav improvements

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 0213823
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Fri Jan 26 14:52:22 2018 -0800

        Quick nav improvements

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    commit 120abc5
    Author: Melissa P <73hl10n@gmail.com>
    Date:   Thu Jan 25 17:55:48 2018 -0800

        Initial steps for quick nav component

        Signed-off-by: Melissa P <73hl10n@gmail.com>

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Resolve merge conflict

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Resolve interface error

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Remove ineffectual statement

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * 4th check is unnecessary, add comments

    Signed-off-by: Nikki Attea <nikki@sensu.io>

    * Unit test rather than integration test, modify in progress checks directly

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit f585f63
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Wed Jan 31 15:02:17 2018 -0500

    Fix and add integration tests to our CI

    * Fix and add integration tests to our CI

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 1229beb
Merge: 09b7c95 e0d5564
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Wed Jan 31 11:31:03 2018 -0800

    Merge pull request #954 from sensu/bugfix/leader-atomics

    Ensure atomic fields are 8-byte aligned.

commit e0d5564
Author: Eric Chlebek <eric@sensu.io>
Date:   Wed Jan 31 10:19:07 2018 -0800

    Ensure atomic fields are 8-byte aligned.

    This is necessary for 32-bit x86 and ARM when performing atomic
    operations.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 09b7c95
Merge: bad2890 bb7d080
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Tue Jan 30 17:36:07 2018 -0500

    Merge pull request #950 from sensu/testing/proxy-requests

    Add e2e test for proxy check requests

commit bb7d080
Merge: 5aa5359 bad2890
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Tue Jan 30 17:36:00 2018 -0500

    Merge branch 'master' into testing/proxy-requests

commit bad2890
Author: Simon Plourde <simon@sensu.io>
Date:   Tue Jan 30 16:19:45 2018 -0500

    Bumped version to v2.0.0-alpha.15-1

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit f0f250e
Merge: 67e9871 c49a109
Author: Melissa Page <73hl10n@gmail.com>
Date:   Tue Jan 30 12:49:31 2018 -0800

    Merge pull request #948 from sensu/web/quicknav

    [Web] Quick Nav Implementation

commit c49a109
Merge: fa002d4 67e9871
Author: Melissa Page <73hl10n@gmail.com>
Date:   Tue Jan 30 12:48:48 2018 -0800

    Merge branch 'master' into web/quicknav

commit fa002d4
Author: Melissa P <73hl10n@gmail.com>
Date:   Tue Jan 30 11:45:27 2018 -0800

    Wrap up changes to converting IconButton to Link

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 67e9871
Merge: 735e396 8ae0fe0
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Tue Jan 30 11:40:49 2018 -0800

    Merge pull request #947 from sensu/concurrency/ring-peek

    Add Peek method to Ring.

commit a1243d5
Author: Melissa P <73hl10n@gmail.com>
Date:   Tue Jan 30 09:37:11 2018 -0800

    Add TODOs and use theme colour when possible

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 5aa5359
Author: Simon Plourde <simon@sensu.io>
Date:   Tue Jan 30 10:44:35 2018 -0500

    Add e2e test for proxy check requests

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 735e396
Merge: 44cc345 e895678
Author: Nikki Attea <nikki@sensu.io>
Date:   Tue Jan 30 10:30:03 2018 -0600

    Merge pull request #944 from sensu/feature/proxy-requests

    Publish Proxy Check Requests

commit e895678
Author: Nikki Attea <nikki@sensu.io>
Date:   Tue Jan 30 10:09:39 2018 -0600

    Log statement if no entities match

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 15a20eb
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 18:32:47 2018 -0800

    Update changelog

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 717b5a7
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Jan 29 20:15:27 2018 -0600

    Only replace \" if contained within {{ }}, add test cases

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit ccd3148
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 18:03:15 2018 -0800

    Update package.json with classnames dependency for quick nav

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit cbbac90
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 17:26:44 2018 -0800

    Finish quick nav implementation and clean up

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit f1df0ec
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 15:47:29 2018 -0800

    Quick nav padding and coour adjustments

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 6cb0d9e
Author: Melissa P <73hl10n@gmail.com>
Date:   Mon Jan 29 15:16:39 2018 -0800

    Quick nav improvements

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 0213823
Author: Melissa P <73hl10n@gmail.com>
Date:   Fri Jan 26 14:52:22 2018 -0800

    Quick nav improvements

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 120abc5
Author: Melissa P <73hl10n@gmail.com>
Date:   Thu Jan 25 17:55:48 2018 -0800

    Initial steps for quick nav component

    Signed-off-by: Melissa P <73hl10n@gmail.com>

commit 44cc345
Author: Greg Poirier <grep@binary-snobbery.com>
Date:   Mon Jan 29 13:45:16 2018 -0800

    Cron and Interval check scheduling are now mutually exclusive (#941)

    * Cron and Interval check scheduling are now mutually exclusive

    Signed-off-by: Greg Poirier <greg.istehbest@gmail.com>

commit 8ae0fe0
Author: Eric Chlebek <eric@sensu.io>
Date:   Mon Jan 29 13:11:27 2018 -0800

    Add Peek method to Ring.

    Peek can be used by clients that wish to know what's next in the
    ring, but don't wish to advance the iteration.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 779b7a1
Author: Eric Chlebek <eric@sensu.io>
Date:   Mon Jan 29 10:41:39 2018 -0800

    Don't use -v for tests.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 9477219
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Jan 29 12:56:42 2018 -0600

    Publish proxy check requests to entities if applicable, add remove-proxy-requests cli command, refactor funcs to util/eval

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 40bc256
Merge: 1e0a122 106439c
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Mon Jan 29 10:30:25 2018 -0800

    Merge pull request #908 from sensu/concurrency/leader

    Add package leader.

commit 106439c
Author: Eric Chlebek <eric@sensu.io>
Date:   Thu Jan 18 15:35:27 2018 -0800

    Add package leader.

    Package leader provides the Do function, which allows package
    users to execute functions exclusively from the leader node.
    The leader package uses etcd elections to achieve this.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 1e0a122
Merge: f779c75 d915f19
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 14:08:03 2018 -0800

    Merge pull request #936 from sensu/dashboard-cleanup

    [Web] Housekeeping

commit d915f19
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 04:40:53 2018 -0800

    [Web] Fix gutters on AppBar

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit aea7e13
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 04:29:05 2018 -0800

    [Web] Remove avatar from toolbar; move logout to drawer

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 0fee12b
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 03:37:46 2018 -0800

    [Web] Update lint-staged

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 40c5b33
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 03:30:11 2018 -0800

    [Web] Update react & friends

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 0acc324
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 03:13:02 2018 -0800

    [Web] Update eslint packages

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 6a74cae
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 02:44:34 2018 -0800

    [Web] Update babel packages

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit a3baf90
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 02:34:55 2018 -0800

    [Web] Update react-dev-utils package

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit 309fcda
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Fri Jan 26 02:19:20 2018 -0800

    [Web] Update material-ui to latest for style improvements

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

commit e7cb685
Author: James Phillips <jamesdphillips@gmail.com>
Date:   Thu Jan 25 13:02:05 2018 -0800

    [GraphQL] Fixup issue with pagination

    Signed-off-by: James Phillips <jamesdphillips@gmail.com>

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Set keepalive interval to 1

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Set keepalive interval for all e2e tests, since it is no longer automatically set to 1

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Assign empty values a default in process_test

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Catch edge case if existing monitor timer is still in progress

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Return default timeout for MockMonitor

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Don't loop through events, just search for one

Signed-off-by: Nikki Attea <nikki@sensu.io>
nikkictl pushed a commit that referenced this pull request Feb 6, 2018
* Change uppercase confirm delete to y/N

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Appease the linter, return false if error/interrupt

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Add cli change to changelog

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Change uppercase confirm delete to y/N

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Appease the linter, return false if error/interrupt

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Add cli change to changelog

Signed-off-by: Nikki Attea <nikki@sensu.io>

* Squashed commit of the following:

commit 1dffad9
Merge: ac30441 3b866dc
Author: Nikki Attea <nikki@sensu.io>
Date:   Mon Feb 5 09:56:04 2018 -0600

    Merge branch 'bugfix/confirm-delete' of https://github.com/sensu/sensu-go into bugfix/confirm-delete

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit ac30441
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:12:08 2018 -0600

    Add cli change to changelog

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit f33812c
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:06:57 2018 -0600

    Appease the linter, return false if error/interrupt

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit bd92e0e
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:02:46 2018 -0600

    Change uppercase confirm delete to y/N

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit bbb3f3a
Merge: 8e7bb8f d1deb7d
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 10:12:03 2018 -0500

    Merge pull request #962 from sensu/testing/check-scheduling-refactoring

    Refactoring of check_scheduler_test

commit d1deb7d
Merge: 029cf9c 8e7bb8f
Author: Simon Plourde <simon@sensu.io>
Date:   Mon Feb 5 09:33:00 2018 -0500

    Merge branch 'master' into testing/check-scheduling-refactoring

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 8e7bb8f
Merge: 5d9db4f 4b4b17a
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 09:31:49 2018 -0500

    Merge pull request #964 from sensu/testing/etcd

    Disable race detector for tests with etcd store

commit 4b4b17a
Merge: bc5ebc9 5d9db4f
Author: Simon Plourde <simon@sensu.io>
Date:   Mon Feb 5 09:04:23 2018 -0500

    Merge branch 'master' into testing/etcd

commit 5d9db4f
Merge: 3479231 23e2071
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Mon Feb 5 09:02:26 2018 -0500

    Merge pull request #965 from sensu/fix-queue-test

    Fixed auto nack test

commit 23e2071
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 16:14:51 2018 -0800

    Appease the linter

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit bb85eba
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 15:56:52 2018 -0800

    Rework test to better simulate client crash

    Added context with cancel and then cancel context, queue has default
    timeout of 60 seconds

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 998ceef
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Fri Feb 2 14:20:34 2018 -0800

    Fixed auto nack test

    Added logic to close client, create a new client and queue, and test
    that the expected value is back in the work queue.

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit bc5ebc9
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:48:09 2018 -0500

    Mark backend/queue tests as integration

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 7932cbd
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:47:34 2018 -0500

    Mark backend/etcd tests as integration

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 465d89f
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 15:45:57 2018 -0500

    Explicitly mark which tests should run with race detector

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 24dbd92
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 13:34:01 2018 -0600

    All store/etcd are integration

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 806fca4
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:46:58 2018 -0600

    Revert build tag

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit fc77216
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:43:48 2018 -0600

    Add build tag fix to changelog

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 9085d71
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:42:06 2018 -0600

    Add !race and integration build tags to etcd tests

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 029cf9c
Author: Simon Plourde <simon@sensu.io>
Date:   Fri Feb 2 13:34:35 2018 -0500

    Add check scheduling refactoring to changelog

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 80f4ad0
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 18:10:21 2018 -0500

    Refactoring of check_scheduler_test

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 3b866dc
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:12:08 2018 -0600

    Add cli change to changelog

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 59e7d53
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:06:57 2018 -0600

    Appease the linter, return false if error/interrupt

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 111f4bf
Author: Nikki Attea <nikki@sensu.io>
Date:   Fri Feb 2 12:02:46 2018 -0600

    Change uppercase confirm delete to y/N

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 3479231
Merge: f913cbd c406258
Author: Mercedes Coyle <mercul3s@users.noreply.github.com>
Date:   Thu Feb 1 10:52:21 2018 -0800

    Merge pull request #937 from sensu/durable-queue

    Durable queue

commit f913cbd
Merge: b0baca8 3b3c24c
Author: Simon Plourde <simon.plourde@gmail.com>
Date:   Thu Feb 1 13:22:03 2018 -0500

    Merge pull request #957 from sensu/bugfix/check-silencing

    Compare check & entity subscriptions before silencing

commit c406258
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Wed Jan 31 15:55:45 2018 -0800

    Concurrency fixes

    Added locks around transactions
    Terminate goroutine on ack/nack or context cancelation

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit a1e16be
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Tue Jan 30 16:31:06 2018 -0800

    Avoid race in keepalive

    Added mutex to item so key updates are locked, updated timestamps to be
    consistent time.Time values, un-exported queue lanes

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 6b99d48
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Sat Jan 27 12:26:50 2018 -0800

    Ensure ack or nack can only be called once exclusively

    Added funcs for nacking expired items, getting timestamps from keys, and
    updating the key timestamp, configurable timeout value to Queue

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit 1824a32
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Thu Jan 25 18:42:15 2018 -0800

    Filled out Ack and Nack functions

    Ack now deletes its item, while Nack puts it back in the work queue.
    Now returning nil instead of an empty item struct for better handling.
    Nack does put and delete in one transaction
    Fixed bug in tryDelete where old keyname would be returned

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit eea7e1f
Author: Mercedes Coyle <mercedes@sensu.io>
Date:   Thu Jan 25 13:07:22 2018 -0800

    Added inflight lane and put operation to dequeue

    Dequeue now adds the item to inflight and deletes it from the work queue
    in a multi op transaction.

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

    WIP queue durability

    Added data structure and methods for item
    Added work and in flight lanes

    Signed-off-by: Mercedes Coyle <mercedes@sensu.io>

commit b0baca8
Merge: 69988cf d8da7b7
Author: Eric Chlebek <echlebek@gmail.com>
Date:   Thu Feb 1 09:53:14 2018 -0800

    Merge pull request #952 from sensu/concurrency/ring-ownership

    Add ownership concept to the Ring.

commit d8da7b7
Author: Eric Chlebek <eric@sensu.io>
Date:   Tue Jan 30 14:32:22 2018 -0800

    Add ownership concept to the Ring.

    * Adding ring items implicitly tracks ownership by backends.
    * Only the backend that added an item can retrieve it via Next().
    * A backend can transfer ownership of an item to itself with Add().

    This commit provides a way to disambiguate relationships between
    backends and agents, when the ring is used by schedulerd. When a
    client receives a value via Next(), the client knows for a fact
    that the value is one placed there by them.

    The order of the Ring is maintained throughout, by making Next
    block until it has an item that it is allowed to consume.

    If a client and backend go offline and never come back, an orphaned
    element is left in the ring. These are reclaimed by lease
    expirations.

    Signed-off-by: Eric Chlebek <eric@sensu.io>

commit 3b3c24c
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 12:10:40 2018 -0500

    Add changelog entry for event silencing bugfix

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 8aeece9
Author: Simon Plourde <simon@sensu.io>
Date:   Thu Feb 1 12:00:58 2018 -0500

    Compare check & entity subscriptions before silencing

    Signed-off-by: Simon Plourde <simon@sensu.io>

commit 69988cf
Merge: a9d0d3b b91c5f2
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 19:30:16 2018 -0600

    Merge pull request #956 from sensu/bugfix/process-timer

    [Bugfix] Stop timer if process exits before timeout is exceeded

commit b91c5f2
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 18:30:24 2018 -0600

    Use params properly

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 0de6e6a
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 18:14:55 2018 -0600

    Correct type

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit 885f6a9
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:49:09 2018 -0600

    Add timeout test cases executeCheck

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit fedcc6e
Author: Nikki Attea <nikki@sensu.io>
Date:   Wed Jan 31 17:39:56 2018 -0600

    Stop timer if process exits before timeout

    Signed-off-by: Nikki Attea <nikki@sensu.io>

commit