Fixed Issues in Schema Registry

Review the list of Schema Registry issues that are resolved in Cloudera Runtime 7.2.11.

CDPD-26382: Schema Registry Client does not clear resources for daemon thread for Kerberos Login
Closing SchemaRegistryClient did not stop the threads managing KerberosLogin, so an application could end up with multiple open threads. This has been fixed and calling close() will also stop the Kerberos thread.
CDPD-25995: Fingerprint hashes are not consistent for Avro schemas
Previously, if there is a default null value in the schema text, the schema's fingerprint will be different with every restart of Schema Registry. With this fix, the default null values in the schema text will remain the same null values independent of restarting the Schema Registry service.
CDPD-25905: _orderByFields and name parameters on the API should not be mandatory
In the previous release, the "name" field was mandatory in the /search/schemas API endpoint. The intent was to make the API better, because searching without a "name" parameter returns an incorrect result. However, this was interpreted as a breaking change in the API and had to be reverted to maintain backward compatibility. Now it is again possible to send requests without providing a "name" parameter, and again this will return an incorrect result.
CDPD-25614: Clearing the cache throws a NPE
Fixed issue where invoking schemaRegistryClient.deleteSchema() caused a NullPointerException.
CDPD-21913: Rename properties in Schema Registry yaml file, remove the dots

Schema Registry uses the Dropwizard framework which allows overriding configuration properties from the command line. Due to implementation specifics, until now some of the properties could not be overridden. This issue is now resolved.

Schema Registry's StorageManager's init method's properties parameter has type StorageProviderConfiguration.

In Schema Registry's configuration file, StorageProviderConfiguration properties can be:

  • Dbtype
  • queryTimeoutInSecs

Properties that can be dataSourceClassName, dataSourceUrl, dataSourceUser, dataSourcePassword and connectionProperties can be:

  • oracleNetSslVersion
  • oracleNetSslServerDnMatch
  • trustStore
  • trustStoreType
  • keyStore
  • keyStoreType
CDPD-21617: Migrate lettuce to lettuce-io in cache module
The following classes have been removed from the cache module:
  • CacheServiceRegistry
  • CacheServiceLocalRegistry
  • RedisCacheServiceBuilder
  • RedisCacheService
  • DataStoreBackedCacheService
  • CacheServiceJsonFactory
  • CacheServiceId
  • CacheService
  • CacheWriterSync
  • CacheWriterAsync
  • CacheWriter
  • CacheLoaderSyncFactory
  • CacheLoaderSync
  • CacheLoaderFactory
  • CacheLoaderCallback
  • CacheLoaderAsyncFactory
  • CacheLoaderAsync
  • CacheLoader
  • RedisConnectionPoolFactory
  • RedisConnectionFactory
  • AbstractRedisConnectionFactory
  • RedisStringsCache
  • RedisHashesCache
  • RedisAbstractCache
  • GuavaCache
  • PhoenixDataStore
  • DataStoreWriter
  • DataStoreReader
  • AbstractDataStore
  • ViewConfig
  • TypeConfig
  • DataStoreConfig
  • ConnectionConfig
  • CachesConfig
  • CacheEntry
  • CacheConfig
  • StaticFactory
  • Factory
  • DataStoreBackedCache
  • CacheException
  • LoadableCache
  • AbstractCache
CDPD-17358: Add logging to Ranger filtering operations in Schema Registry
Logging added to show which schemas have been filtered out.
OPSAPS-59993: Disable admin port in Schema Registry
The following admin ports are no longer enabled in Schema Registry:
  • Port 7791 on a secure cluster.
  • Port 7789 on a unsecured cluster.
OPSAPS-59972: Disable the TRACE method on all HTTP ports
In Streams Messaging Manager and Schema Registry, the allowed HTTP methods are changed to GET, POST, PUT, DELETE, HEAD, OPTIONS.
OPSAPS-60458: Knox principal is not over-ridable in SMM and Schema Registry
Custom Knox principal can be set for Schema Registry and SMM by setting the knox_principal_name property in Schema Registry Server Advanced Configuration Snippet (Safety Valve) for registry.yaml or Streams Messaging Manager Rest Admin Server Advanced Configuration Snippet (Safety Valve) for streams-messaging-manager.yaml.