[MODAES-16] Routing rules can be requested more than once per cache period under heavy load Created: 17/Nov/20  Updated: 04/Jan/21  Resolved: 04/Jan/21

Status: Closed
Project: ARCHIVED: mod-aes
Components: None
Affects versions: None
Fix versions: 0.0.4

Type: Bug Priority: TBD
Reporter: Matt Reno Assignee: Matt Reno
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Sprint:
Development Team: None

 Description   

The routing rules, retrieved from the configuration interface, are cached for a cache period of 1 minute. When this period expires, the routing rules are retrieved again. When the module is under heavy load, it is possible that many requests are received asynchronously at virtually the same time. If the routing rules cache has expired, each request may trigger a routing rule refresh. This can cause spamming to the configuration interface. For example, here are 72 refreshes that came in at once:

04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:50 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]
04:11:51 INFO  uleServiceConfigImpl Refreshed rules: [RoutingRule [criteria=$[?(@.path =~ /^\/circulation\/check-out-by-barcode$/i)], target=fs00001019_default]]

We need to ensure that we only make this call once. Otherwise, it takes several seconds to complete all these requests. It is also possible that this causes increased CPU usage or maxed out thread usage causing the module to become unresponsive via health checks.


Generated at Thu Feb 08 22:26:11 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.