-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution:
Fixed
-
Affects Version/s:
5
-
-
-
-
Proposal:
Hide
Replace "receiver sends a No Topic return code on the PUBACK or PUBREL response."
With "receiver sends a No Topic return code in a DISCONNECT packet and then closes the network connection.".
Replace "sends an Alias Not Accepted return code on the PUBACK or PUBREL response."
With "sends an Alias Not Accepted return code in a DISCONNECT packet and then closes the network connection.
Show
Replace "receiver sends a No Topic return code on the PUBACK or PUBREL response."
With "receiver sends a No Topic return code in a DISCONNECT packet and then closes the network connection.".
Replace "sends an Alias Not Accepted return code on the PUBACK or PUBREL response."
With "sends an Alias Not Accepted return code in a DISCONNECT packet and then closes the network connection.
Issue 269 MQTT-SN Feature: Topic Registration allows the protocol to continue where an invalid topic alias has been used.
The network is required to provided an in order lossless connection so the only possible causes of an invalid alias are an incorrect implementation or the sending of publications by the client before the connack has been received informing it of the servers maximum topic alias value.
Continuing the message flow risks data loss. In all cases where an invalid topic alias is received the receiver should disconnect with a 130 0x82 Protocol error disconnect code.
{"report":{"apdex":1,"isInitial":true,"journeyId":"679239ab-20d8-4702-b6dd-d3eaf47c0c3b","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":674.6000003814697,"redirectCount":0,"resourceLoadedEnd":697.3000001907349,"resourceLoadedStart":195.10000038146973,"resourceTiming":[{"duration":73,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":195.10000038146973,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":195.10000038146973,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.1000003814697,"responseStart":0,"secureConnectionStart":0},{"duration":73.09999990463257,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":195.40000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":195.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.5,"responseStart":0,"secureConnectionStart":0},{"duration":73,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":195.60000038146973,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":195.60000038146973,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.6000003814697,"responseStart":0,"secureConnectionStart":0},{"duration":73,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":195.7000002861023,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":195.7000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":268.7000002861023,"responseStart":0,"secureConnectionStart":0},{"duration":73.30000019073486,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":195.90000009536743,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":195.90000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":269.2000002861023,"responseStart":0,"secureConnectionStart":0},{"duration":124.89999961853027,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":196.10000038146973,"connectEnd":196.10000038146973,"connectStart":196.10000038146973,"domainLookupEnd":196.10000038146973,"domainLookupStart":196.10000038146973,"fetchStart":196.10000038146973,"redirectEnd":0,"redirectStart":0,"requestStart":196.10000038146973,"responseEnd":321,"responseStart":321,"secureConnectionStart":196.10000038146973},{"duration":155.19999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":196.2000002861023,"connectEnd":196.2000002861023,"connectStart":196.2000002861023,"domainLookupEnd":196.2000002861023,"domainLookupStart":196.2000002861023,"fetchStart":196.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":196.2000002861023,"responseEnd":351.40000009536743,"responseStart":351.40000009536743,"secureConnectionStart":196.2000002861023},{"duration":157.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":196.40000009536743,"connectEnd":196.40000009536743,"connectStart":196.40000009536743,"domainLookupEnd":196.40000009536743,"domainLookupStart":196.40000009536743,"fetchStart":196.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":196.40000009536743,"responseEnd":353.80000019073486,"responseStart":353.80000019073486,"secureConnectionStart":196.40000009536743},{"duration":157.69999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":196.60000038146973,"connectEnd":196.60000038146973,"connectStart":196.60000038146973,"domainLookupEnd":196.60000038146973,"domainLookupStart":196.60000038146973,"fetchStart":196.60000038146973,"redirectEnd":0,"redirectStart":0,"requestStart":196.60000038146973,"responseEnd":354.30000019073486,"responseStart":354.30000019073486,"secureConnectionStart":196.60000038146973},{"duration":158,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":196.7000002861023,"connectEnd":196.7000002861023,"connectStart":196.7000002861023,"domainLookupEnd":196.7000002861023,"domainLookupStart":196.7000002861023,"fetchStart":196.7000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":196.7000002861023,"responseEnd":354.7000002861023,"responseStart":354.7000002861023,"secureConnectionStart":196.7000002861023},{"duration":158.19999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":196.80000019073486,"connectEnd":196.80000019073486,"connectStart":196.80000019073486,"domainLookupEnd":196.80000019073486,"domainLookupStart":196.80000019073486,"fetchStart":196.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":196.80000019073486,"responseEnd":355,"responseStart":355,"secureConnectionStart":196.80000019073486},{"duration":272.59999990463257,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":197.10000038146973,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":197.10000038146973,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":469.7000002861023,"responseStart":0,"secureConnectionStart":0},{"duration":158.2999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":197.2000002861023,"connectEnd":197.2000002861023,"connectStart":197.2000002861023,"domainLookupEnd":197.2000002861023,"domainLookupStart":197.2000002861023,"fetchStart":197.2000002861023,"redirectEnd":0,"redirectStart":0,"requestStart":197.2000002861023,"responseEnd":355.5,"responseStart":355.5,"secureConnectionStart":197.2000002861023},{"duration":255.2999997138977,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":214.60000038146973,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":214.60000038146973,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":469.90000009536743,"responseStart":0,"secureConnectionStart":0},{"duration":172.90000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":214.80000019073486,"connectEnd":214.80000019073486,"connectStart":214.80000019073486,"domainLookupEnd":214.80000019073486,"domainLookupStart":214.80000019073486,"fetchStart":214.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":214.80000019073486,"responseEnd":387.7000002861023,"responseStart":387.7000002861023,"secureConnectionStart":214.80000019073486},{"duration":384.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":225,"connectEnd":225,"connectStart":225,"domainLookupEnd":225,"domainLookupStart":225,"fetchStart":225,"redirectEnd":0,"redirectStart":0,"requestStart":225,"responseEnd":609.4000000953674,"responseStart":609.4000000953674,"secureConnectionStart":225},{"duration":133.40000009536743,"initiatorType":"xmlhttprequest","name":"https://issues.oasis-open.org/rest/webResources/1.0/resources","startTime":482.40000009536743,"connectEnd":482.40000009536743,"connectStart":482.40000009536743,"domainLookupEnd":482.40000009536743,"domainLookupStart":482.40000009536743,"fetchStart":482.40000009536743,"redirectEnd":0,"redirectStart":0,"requestStart":482.40000009536743,"responseEnd":615.8000001907349,"responseStart":615.8000001907349,"secureConnectionStart":482.40000009536743}],"threshold":1000,"fetchStart":0,"domainLookupStart":74,"domainLookupEnd":74,"connectStart":74,"connectEnd":122,"secureConnectionStart":98,"requestStart":122,"responseStart":171,"responseEnd":246,"domLoading":188,"domInteractive":729,"domContentLoadedEventStart":729,"domContentLoadedEventEnd":779,"domComplete":959,"loadEventStart":959,"loadEventEnd":962,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"8f0bc01bf739f2","effectiveType":"4g","downlink":9.4,"rtt":0,"serverDuration":98,"dbReadsTimeInMs":18,"dbConnsTimeInMs":21,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}
I think there are some other loose ends on error handling for topic registration (which I'm trying to distill).
1.) First among these is that we really need to specify very clearly when the topic<
> token registration and replacement of the token with the topic take place. Some examples: using QoS 2 delivery Method A, QoS 0 and 1 messages may overtake of QoS 2 messages. So it is possible that a QoS 2 message that establishes the topic mapping may arrive at the receiver later than subsequently send QoS 0 or 1 messages sent using a topic token. This can be avoided by saying that for either Method A or B, the registration of the topic token occurs when the PUBLISH arrives (and not when the PUBREC is sent or the PUBREL is received) or several race conditions occur. For example, if you're in the middle of performing the token>topic replacement on the receive side AND another PUBLISH arrives which alters that mapping, there is a race condition. It also means we have to specify that the original topic (and not the token) needs to be on unacknowledged message queue.2.) I would also broaden your statement above that any condition that causes the topic registration to fail at the receiver must close the transport connection, or the Sending mapping will not match the receiving mapping, causing delivery to the wrong topic, or interleaving of unrelated data streams.
3.) We are now contemplating discarding packets in some cases (e.g. if A server knows the message is too big for the receiver, especially with QoS 0). This would break the integrity of the topic mapping.
I imagine there are others as well.