Comments (5)
@micw thanks, something smells wrong here.
I think we fail to add a message id and do not add the "QoS-0-message-which-is-now-a-Qos>0-message" to the waiting acks and replay queue in the FSM statemachines.
I agree the behaviour you expect is what the option promises. So, should be somehow fixed and aligned, even if it's a non-spec option. ("We have left MQTT jurisdiction").
This is somewhat low-priority for me but feel free to propose a fix, if it's urgent for your use case.
👉 Thank you for supporting VerneMQ: https://github.com/sponsors/vernemq
👉 Using the binary VerneMQ packages commercially (.deb/.rpm/Docker) requires a paid subscription.
from vernemq.
The upgrade is done too late (the decision to store on disk or not has already been made). The upgrade should be moved to the earliest possible moment (maybe in vmq_queue, and not in mqtt_fsm)
from vernemq.
@mths1 Thanks for the PR! @micw can you give it a try? #2221
👉 Thank you for supporting VerneMQ: https://github.com/sponsors/vernemq
👉 Using the binary VerneMQ packages commercially (.deb/.rpm/Docker) requires a paid subscription.
from vernemq.
Test plan:
- publish without client connected and without any sessions
mosquitto_pub -t "test1" -m "test.q0" -q 0
mosquitto_pub -t "test1" -m "test.q1" -q 1
- subscribe with a client, qos=1, clear-session=false
mosquitto_sub -t 'test1' -q 1 -i c1 -c -d
Expected result: no messages are received - PASS
- publish with client connected
mosquitto_pub -t "test1" -m "test.q0" -q 0
mosquitto_pub -t "test1" -m "test.q1" -q 1
Expected result: both messages are received by the connected client. Both have qos 1 - PASS
- disconnect the client, publish with client disconnected and existing offline session
mosquitto_pub -t "test1" -m "test.q0" -q 0
mosquitto_pub -t "test1" -m "test.q1" -q 1
- subscribe with the same client id again, qos=1, clear-session=false
mosquitto_sub -t 'test1' -q 1 -i c1 -c -d
Expected result: both offline messages are received by the client. Both have qos 1 - PASS
Works for me.
from vernemq.
@micw thanks for verifying! cc @mths1
👉 Thank you for supporting VerneMQ: https://github.com/sponsors/vernemq
👉 Using the binary VerneMQ packages commercially (.deb/.rpm/Docker) requires a paid subscription.
from vernemq.
Related Issues (20)
- Multiple connections using same client_id and username HOT 9
- Changes in mysql.lua file to not match client_id from myql HOT 3
- Using username in a TLS context is inappropriate HOT 3
- Need help with ECONNRESET using mqtt.js and VerneMQ HOT 5
- Add api Key using environment variables HOT 10
- [Bug]: Caching for auth_on_xxx_m5 hooks is not working HOT 8
- max_request_line_length config has no effect for HTTP sessions
- [Question]: Does VerneMQ support RocksDB in 1.13.0? HOT 12
- [Bug]: Issues with the correct CPU quota detection on k8s v1.26 HOT 12
- [Bug]: vmq_http_pub plugins apis not restricted by api key and bounded to default http listener HOT 7
- Enhancement: MQTT TLS listeners with multiple TLS versions.
- [Bug]: Loss of retained QoS 1 messages across cluster nodes HOT 1
- [Bug]: <title>HIGH CPU for VerneMQ (beam.smp) HOT 3
- Support Alternative TCP listener with proxy protocol enabled by default HOT 6
- VerneMQ HTTPs support HOT 12
- [Bug]: Websockets upgrade request: HTTP 431: Request Header Fields Too Large with big cookies HOT 11
- [Bug]: CRASH REPORT Process with 0 neighbours crashed with reason: bad argument in vmq_cluster_com:process_bytes/3 line 171 HOT 1
- Seeing various messages in the logs when under load HOT 3
- [Bug]: VerneMQ Certificates for testing expired HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vernemq.