API Compatibility changes in 7.3.2 for ZooKeeper

Removed or Modified APIs in Cloudera Runtime 7.3.2 for ZooKeeper and recommendations for how to handle them.

Apache Version of ZooKeeper in 7.3.2 and 7.3.2.10000 is 3.8.5

Removed APIs in 7.3.2

The following ZooKeeper API endpoints have been removed from Cloudera Runtime 7.3.2.

SecurityUtils.createSaslServer

Method Removed

Package Name
org.apache.zookeeper.util
Effect
A client program may be interrupted by NoSuchMethodError exception.
Reason for change
ZOOKEEPER-5043: Disable fallback to DIGEST-MD5 in SaslServer when FIPS mode is set
Recommendation
Recompile client application. The method now has a new parameter: ZKConfig config.
Recompilation Required?
Yes

X509Util.createSSLContextAndOptionsFromConfig

Method Removed

Package Name
org.apache.zookeeper.common
Effect
A client program may be interrupted by NoSuchMethodError exception.
Reason for change
CDPD-104916: ZooKeeper client fails to connect on FIPS-enabled TLS 1.3 clusters due to TLS protocol mismatch
Recommendation
Recompile client application. The method now has a new parameter: boolean isClient.
Recompilation Required?
Yes

X509Util.createTrustManager

Method Removed

Package Name
org.apache.zookeeper.common
Effect
A client program may be interrupted by NoSuchMethodError exception.
Reason for change
ZOOKEEPER-4986: Disable reverse DNS lookup in TLS client and server
Recommendation
Recompile client application. The method now has a new parameter: final boolean allowReverseDnsLookup.
Recompilation Required?
Yes

Modified APIs in 7.3.2

The following ZooKeeper API endpoints have been modified in Cloudera Runtime 7.3.2.

X509Util

Interface/Class Modified

Package Name
org.apache.zookeeper.common
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method shouldAllowReverseDnsLookup() in org.apache.zookeeper.common.X509Util.
Reason for change
ZOOKEEPER-4986: Disable reverse DNS lookup in TLS client and server
Recommendation
Recompile client application. Abstract method boolean shouldAllowReverseDnsLookup() has been added to this class.
Recompilation Required?
Yes

X509Util.DEFAULT_PROTOCOL

Field Renamed

Package Name
org.apache.zookeeper.common
Effect
Recompilation of a client program may be terminated with the message: cannot find variable DEFAULT_PROTOCOL in org.apache.zookeeper.common.X509Util.
Reason for change
CDPD-104916: ZooKeeper client fails to connect on FIPS-enabled TLS 1.3 clusters due to TLS protocol mismatch
Recommendation
Recompile client application. Field DEFAULT_PROTOCOL has been renamed to DEFAULT_TLS_PROTOCOL_CLIENT.
Recompilation Required?
Yes

PrometheusMetricsProvider.getServlet

Method Modified

Package Name
org.apache.zookeeper.metrics.prometheus
Effect
Recompilation of a client program may be terminated with the message: incompatible types: io.prometheus.metrics.exporter.servlet.javax.PrometheusMetricsServlet cannot be converted to org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider.MetricsServletImpl.
Reason for change
ZOOKEEPER-4741: High latency under heavy load when prometheus metrics enabled.
Recommendation
Recompile client application. Return value type has been changed from org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider.MetricsServletImpl to io.prometheus.metrics.exporter.servlet.javax.PrometheusMetricsServlet.
Recompilation Required?
Yes