Dapr Runtime v1.16.8
Dapr 1.16.8
This update includes bug fixes:
RabbitMQ PubSub concurrent map writes panic
Problem
After upgrading to Dapr v1.16, applications using RabbitMQ PubSub started experiencing panics with the message "fatal error: concurrent map writes". The error occurred during subscription management in the RabbitMQ PubSub component.
Impact
The Dapr sidecar would panic and crash when using RabbitMQ PubSub components, potentially causing service disruption.
Root Cause
The subscription code was incorrectly using read locks (RLock/RUnlock) when writing to a shared map, causing concurrent map writes and panics.
Solution
Fixed the mutex usage by changing from read locks to write locks (Lock/Unlock) in the subscription management code to ensure thread-safe access to shared data.
Pulsar: optional issuer file credential
Problem
The Pulsar OAuth2 credentials file required issuer_url in addition to client_id and client_secret, which does not match the Pulsar documentation for credentials files.
Impact
Users with credentials files that only include client_id and client_secret could not load credentials and had to add an issuer_url even when it was not needed or was provided via metadata.
Root Cause
The credentials file validation treated issuer_url as mandatory instead of optional, causing validation failures when it was omitted.
Solution
Only require client_id and client_secret. issuer_url is now optional and is used only when present in the file and not overridden by metadata.