
# Dapr 1.0.1

## Fixes

* Fixed race condition in actor reminders (https://github.com/dapr/dapr/issues/2705)
* Added etag support to MongoDB state store

### Overview
[The issue](https://github.com/dapr/dapr/issues/2705) describes how actor reminders can fail to persist when deleted with concurrent updates. It means that if there are multiple reminders for the same actor type being registered or unregistered at the same time, an update might be overwritten by another update.

The root cause was that all instances for a given actor type shares the same record in the database to keep track of the list of registered reminders. Concurrent updates to this list were not done atomically. The fix uses `eTag` feature in state stores in Dapr to only update if etag is unchanged from the time it was last read and avoid race conditions. With this fix, states stores must be transactional **and** support eTag in order to be used as actors' state store. The only transactional state store in Dapr that did not have eTag support was MongoDB but that is being added in this hotfix as well.

The issue was fixed with the following pull requests:
* https://github.com/dapr/components-contrib/pull/734
* https://github.com/dapr/components-contrib/pull/736
* https://github.com/dapr/dapr/pull/2873
* https://github.com/dapr/dapr/pull/2877

In addition, the changes above also include a new E2E test scenario reproducing the issue to avoid future regressions.

> Note: Applications using MongoDB as state store for actors can safely upgrade to this version since the eTag will be added automatically on the first update to actors' reminders.