wy471x commented on PR #6902: URL: https://github.com/apache/shenyu/pull/6902#issuecomment-5942916914
> I rechecked the new conflict-resolution head `b29821d3` and ran `./mvnw -B -ntp -pl shenyu-protocol/shenyu-protocol-mqtt -am -DskipTests=false -Dcheckstyle.skip=false test`; the reactor passed, including all 103 MQTT module tests and Checkstyle. I found one remaining delivery correctness issue in `publishWill`: > > It gets only `List<Channel>` from `getChannelsByTopic` and writes every will using `willQos` (lines 160-171). Normal `Publish.send` instead uses `minQoS(publishQoS, subscriptionGrantedQoS)` for each subscriber (lines 131-148). So a QoS 2 will is sent at QoS 2 even to a subscriber whose matching subscription was granted QoS 0, violating the subscription QoS limit. The new `getChannelsByTopic` API also discards the per-channel QoS needed to apply that limit. > > Please preserve the maximum granted QoS per channel across matching (including wildcard and overlapping) filters, cap the will delivery QoS with it as the normal publish path does, and add a regression test where a QoS 2 will reaches a QoS 0 subscriber at QoS 0. The existing will tests assert only the will's QoS and do not cover a lower granted subscriber QoS. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
