diff --git a/CHANGELOG.md b/CHANGELOG.md index be7ffcab13..dc3c05050b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,9 @@ and what APIs have changed, if applicable. ## [Unreleased] +## [29.56.1] - 2024-06-06 +- prevent duplicate uri property update + ## [29.56.0] - 2024-05-30 - degrade hosts for HTTP/2 stream errors in Degrader and Relative LB. @@ -5695,7 +5698,8 @@ patch operations can re-use these classes for generating patch messages. ## [0.14.1] -[Unreleased]: https://github.com/linkedin/rest.li/compare/v29.56.0...master +[Unreleased]: https://github.com/linkedin/rest.li/compare/v29.56.1...master +[29.56.1]: https://github.com/linkedin/rest.li/compare/v29.56.0...v29.56.1 [29.56.0]: https://github.com/linkedin/rest.li/compare/v29.55.0...v29.56.0 [29.55.0]: https://github.com/linkedin/rest.li/compare/v29.54.0...v29.55.0 [29.54.0]: https://github.com/linkedin/rest.li/compare/v29.53.1...v29.54.0 diff --git a/d2/src/main/java/com/linkedin/d2/balancer/simple/UriLoadBalancerSubscriber.java b/d2/src/main/java/com/linkedin/d2/balancer/simple/UriLoadBalancerSubscriber.java index 701f3f9df6..ae41f5258a 100644 --- a/d2/src/main/java/com/linkedin/d2/balancer/simple/UriLoadBalancerSubscriber.java +++ b/d2/src/main/java/com/linkedin/d2/balancer/simple/UriLoadBalancerSubscriber.java @@ -59,6 +59,17 @@ protected void handlePut(final String cluster, final UriProperties uriProperties { String clusterName = uriProperties.getClusterName(); + Optional currentUriProperties = Optional.ofNullable( + _simpleLoadBalancerState.getUriProperties(clusterName)).map(LoadBalancerStateItem::getProperty); + if (currentUriProperties.isPresent() && currentUriProperties.get().equals(uriProperties)) + { + _log.debug("For cluster: {}, received duplicate uri properties: {}", clusterName, uriProperties); + return; + } + + _log.debug("For cluster: {}, received new uri properties: {}\nOld properties: {}", clusterName, uriProperties, + currentUriProperties); + Set serviceNames = _simpleLoadBalancerState.getServicesPerCluster().get(clusterName); //updates all the services that these uris provide if (serviceNames != null) diff --git a/gradle.properties b/gradle.properties index 8bc1d8a55b..be0d747a8a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=29.56.0 +version=29.56.1 group=com.linkedin.pegasus org.gradle.configureondemand=true org.gradle.parallel=true