Dapr 1.7.4
Fixes PubSub messages delivered to wrong handler
Problem
We have discovered an issue with 3 PubSub Dapr components that causes messages to be routed to the wrong handler:
- AWS SNS/SQS
- Kafka
- MQTT
Applications that use those components to listen to multiple topics may find that all messages are routed to the same handler, regardless of the topic the message.
This issue impacts the 1.7 branch of Dapr only (versions 1.7.0 through 1.7.3).
Root cause
When listening for messages on multiple topics, each one with a different handler, the 3 PubSub components listed above incorrectly route all messages to a single handler (usually, the last one that was added).
Prior to 1.7, the Dapr runtime would re-route messages to the correct handler, even though the components themselves were routing them incorrectly. This behavior was (correctly) removed in 1.7.0, which uncovered the issues in the underlying implementation of the 3 PubSub components listed above.
Solution
This release includes a mitigation that makes the runtime route messages again, essentially restoring the behavior of Dapr 1.6 in this specific part.
A more complete fix, which includes correcting the behavior of the 3 PubSub components listed above, will be included in a future Dapr release in the 1.8 branch.
More details
You can see more details in dapr/dapr#4685.