OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

mqtt message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] (MQTT-325) Use Disconnect RC 0x82 in place of Nack for incorrect Packet Id.


    [ https://issues.oasis-open.org/browse/MQTT-325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=64536#comment-64536 ] 

Ken Borgendale commented on MQTT-325:
-------------------------------------

The return code 0x92 (PacketID not found) on PubRel and PubComp is not a protocol error.  This happens during reconnect of a session when one side has completed processing of the message but the other still has it in the packetID tables.  If it happens at any time other than reconnect it indicates an error which could be a mismatch between the client and server session state, or a protocol error.

The return code 0x91 (PacketID in use) could quite possibly indicate a mismatch between client and server session state and thus merits its own return code.  We could move this to DISCONNECT and require anybody checking this to be close the connection.  Otherwise it should be added to PUBACK and PUBREC.  In the discussion of MQTT-287 we agreed that the server is not required to check that the PacketID is not in use but could do so (we have existing servers which only check for QoS=2 publishes), thus it should probably not be called a protocol error.

Jira MQTT-311 was closed without resolution, so it is not clear that anything was adopted by it.

I am very concerned that we claim to have applied changes based on MQTT-311 and applied MQTT-299, MQTT-300, and MQTT-301 although we never put in the proposal into those.  


> Use Disconnect RC 0x82 in place of Nack for incorrect Packet Id.
> ----------------------------------------------------------------
>
>                 Key: MQTT-325
>                 URL: https://issues.oasis-open.org/browse/MQTT-325
>             Project: OASIS Message Queuing Telemetry Transport (MQTT) TC
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 5, wd09
>            Reporter: Andrew Banks
>
> The following return codes amount to a protocol error:
> PubRel 0x92	PacketID not found 
> PubComp 0x92	PacketID not found
> Suback 0x91	PacketID in use
> so we should send DISCONECT RC 0x82	Protocol error
> followed by network disconnect instead. Otherwise we risk corrupting data because either the client or server implementation is bad or their state has been corrupted.
> The same thing could happen on Publish / PubRec / PubAck , Unsunscribe/Unsuback as well.
> This is the same methodology as was adopted in Jira MQTT-311



--
This message was sent by Atlassian JIRA
(v6.2.2#6258)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]