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]

Reply via email to