Back to Dapr

Dapr 1.14.2

docs/release_notes/v1.14.2.md

1.17.63.4 KB
Original Source

Dapr 1.14.2

Fix Memory Leak when running Workflows

Problem

When using workflows, daprd would increase in memory consumption indefinitely, eventually causing daprd to crash from a Out Of Memory Kill (OOM Kill),

Impact

Daprd would consume extra resources from the host, and periodically become unavailable and disrupt running tasks.

Root cause

The actor runtime in Daprd was not releasing memory of workflow actors, and the associated workflow state (history, inbox, etc.).

Solution

The actor runtime now correctly releases the workflow state once that workflow has reached a terminal state.

Fix nil map error on Placement Service state restore from an older version

Problem

When a Placement Service instance using on disk logs was upgraded to 1.14 in some cases we would get a nil map error and the instance would not start.

Impact

Dapr Placement Service instance would not start.

Root cause

Restoring the old format would override the state saved in Raft with a struct that wasn't properly initialised.

Solution

Initialize the struct properly when restoring the old format.

Fix non-URL encoded Kafka headers causing event delivery to fail over HTTP

Problem

When Kafka headers are present that are not URL encoded, the event delivery to the app will fail with a retriable error.

Impact

Messages cannot be delivered to the app.

Root cause

Lack of URL encoding on header values from Kafka.

Solution

Add URL encoding to Kafka headers.

Fix AWS Secret Manager and Parameter Store initialization

Problem

If users had IAM policies in place that only allowed access to specific secrets, the initialization of the AWS secret manager and parameter store components would fail.

Impact

Components could not be initialized.

Root cause

There was a redundant check in initialization that tried to read a random secret which caused the init to fail if a policy was present to only allow reading specific secrets.

Solution

The redundant check was removed.

Fix Kafka Avro validation for null values

Problem

When publishing a message containing a null byte array with Kafka and Avro validation enabled, the message would be rejected when it shouldn't be.

Impact

A message could not be sent.

Root cause

There was a missing validation logic for null byte arrays that would allow the message to continue processing.

Solution

The missing validation logic was added.

Fix Kafka edge case of lost messages upon process termination

Problem

In certain cases, Dapr would drop a Kafka message when it should have been retried if the daprd process is abruptly terminated.

Impact

A message would not be retried upon failure.

Root cause

Message processing logic moved on to process the next message instead of exiting when the session context was done.

Solution

The code was changed to handle session context exiting prior to processing the next message.

Fix Outbox not sending messages to the user topic

Problem

If outbox was being used and a publisher didn't have an app channel open or the subscriber didn't have access to the transactional state store, then outbox messages would not be published.

Impact

Outbox messages could not be sent.

Root cause

Faulty logic that required Dapr to have an app channel in order to subscribe to the internal topics.

Solution

Enable Dapr to subscribe to internal topics without needing an app channel.