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]
