You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shenyu.apache.org by "zhaowei85 (via GitHub)" <gi...@apache.org> on 2024/06/17 02:05:31 UTC

[I] [BUG] websocket closed refresh data from admin clean plugin local memory [shenyu]

zhaowei85 opened a new issue, #5580:
URL: https://github.com/apache/shenyu/issues/5580

   ### Is there an existing issue for this?
   
   - [X] I have searched the existing issues
   
   ### Current Behavior
   
   when the websocket connection closed between admin and bootstrap, bootsrap refresh local cache data from the admin resend rule data,in this stage, the local cache data is been cleared first and restore one by one ,when the request is arrived this time , we can't find the plugin cache and throw error because we don't finish the cache data refreshing
   
   ### Expected Behavior
   
   the refresh cache data staging  need reconstructing. can't clear cache data first,we should friendly for the current requesting to the bootstrap
   
   ### Steps To Reproduce
   
   _No response_
   
   ### Environment
   
   ```markdown
   ShenYu version(s):2.6.1
   ```
   
   
   ### Debug logs
   
   _No response_
   
   ### Anything else?
   
   _No response_


-- 
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: notifications-unsubscribe@shenyu.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] [BUG] websocket closed refresh data from admin clean plugin local memory [shenyu]

Posted by "sunnysabor (via GitHub)" <gi...@apache.org>.
sunnysabor commented on issue #5580:
URL: https://github.com/apache/shenyu/issues/5580#issuecomment-5942903494

   I checked current `upstream/master` (`09c6a528`). The WebSocket `MYSELF` path still calls `refreshPluginDataSelf(dataList)` before iterating `onSubscribe` in `PluginDataHandler#doRefresh`; `CommonPluginDataSubscriber.refreshPluginDataSelf` delegates to `BaseDataCache.cleanPluginDataSelf`, which removes each incoming plugin entry. The selector and rule handlers use the same clear-then-apply order. Admin sends the namespace's plugin, selector, and rule lists as separate `MYSELF` messages from `syncAllByNamespaceId`, so an in-flight request can observe a missing entry while a group is being applied.
   
   I also found the earlier attempted fix in closed PR #6381. It is not merged, and its description calls out a selector/rule cleanup-granularity limitation, so I do not want to reapply it unchanged.
   
   Could you confirm whether this still reproduces on a current 2.7.x build, and whether `MYSELF` should be treated as an authoritative per-group snapshot for that gateway namespace? That determines how the refresh should retain the old cache during application and reconcile entries absent from the new snapshot.
   


-- 
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: notifications-unsubscribe@shenyu.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] [BUG] websocket closed refresh data from admin clean plugin local memory [shenyu]

Posted by "Aias00 (via GitHub)" <gi...@apache.org>.
Aias00 closed issue #5580: [BUG] websocket closed refresh data from admin clean plugin local memory
URL: https://github.com/apache/shenyu/issues/5580


-- 
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: notifications-unsubscribe@shenyu.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org