-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.1.1
-
Fix Version/s: None
-
Component/s: core
-
Labels:None
-
Environment:
Structure
-
Proposal:
-
Resolution:
3.4.4 Actions reads:
*****
When the sender of a PUBLISH Packet receives a PUBACK Packet it discards the original message.
This is fully described in Section 4.3.
*****
My initial comment was going to be this is a violation of DRY, Don't Repeat Yourself, define this in 4.3 and omit it here.
However, upon comparing 3.4.4 to 4.3, I find 4.3 has several sections, none of which bear the 3.4 PUBACK - Publish acknowledgement label, to clue me in to where to look next.
After puzzling over the text, I discovered that 4.3.2 QoS 1: At least once delivery was the appropriate section but there was still no mention of discarding of packets.
Finally, i saw the diagram (unnumbered by the way) that includes the text "Discard message"
Note this is another case where required behavior is not covered by the "MUST" collection in Appendix A.
It would be clearer is all required behavior is specified in normative prose. Can simply be declarative statements without "MUST," example, "Upon receipt of a PUBACK packet, the sender discards the original message." or words to that effect.