dmsolr commented on PR #7035:
URL: https://github.com/apache/shenyu/pull/7035#issuecomment-5597750528

   Request changes: the refresh implementation in BaseDataCache can lose 
concurrent incremental updates. 
refreshPluginData/refreshSelectorData/refreshRuleData copy the current map, 
build a replacement, and then publish it via a volatile assignment without 
synchronizing with cache*Data or remove*Data. If an update or deletion occurs 
while the replacement is being built, it writes to the old map and is then 
overwritten by the refresh publication, causing an update to be lost or deleted 
data to reappear. Please protect refresh and incremental mutations with a 
common lock or versioned CAS/retry, and add a concurrency test covering an 
update/deletion racing with refresh.


-- 
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