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