Skip to content

Conversation

@bittcrafter
Copy link
Collaborator

No description provided.

…o 0.15.1

Bug Fix:
- **QoS 1 Publish Reliability**: Fixed error handling in QoS 1 message processing
- **Resource Leak Prevention**: Ensure inflight messages are properly cleaned up on errors
- **Ordering Guarantee**: Maintain proper ACK sequencing even after publish failures

Key Changes:
1. **Error Handling Improvement**:
   - Added proper error mapping to clean up inflight messages on publish failure
   - Separated publish operation from ACK sending for better error isolation
   - Ensured inflight removal happens before propagating errors

2. **Version Bump**:
   - Bumped workspace version from 0.15.0 to 0.15.1
   - Updated all plugin dependencies to 0.15.1
   - Maintained version synchronization across all components

Technical Details:
- The fix addresses a potential resource leak where inflight messages wouldn't be cleaned up if `self.publish()` failed
- Now properly removes the inflight entry before returning the error
- Maintains the ACK sending operation separately to ensure proper protocol sequencing

This patch release (0.15.1) focuses on improving reliability and preventing resource leaks in QoS 1 message handling.
- Replaced `map_err` with `inspect_err` for cleaner error side effects
- Maintains same functionality: removes inflight entry on publish failure
- More idiomatic Rust error handling pattern
- Keeps original error unchanged while performing cleanup
@bittcrafter bittcrafter merged commit 9c518af into rmqtt:release/0.15.x Sep 8, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant