Fixed Issues in HBase
Review the list of HBase issues that are resolved in Cloudera Runtime 7.3.1.
- CDPD-67520: JWT authentication expects [sub] claim in the payload
-
A JWT payload can have a custom claim for
Subject/Principal
instead of the standardsub
claim.You can set the hbase.security.oauth.jwt.token.principal.claim configuration property in Cloudera Manager under HBase Service Advanced Configuration Snippet (Safety Valve) for hbase-site.xml to define the custom
Subject/Principal
claim. - CDPD-66387: RegionServer should be aborted when WAL.sync throws TimeoutIOException
- This fix adds additional logic for WAL.sync. If WAL.sync gets a timeout
exception, HBase wraps TimeoutIOException as a special
WALSyncTimeoutIOException. When the upper layer such as
HRegion.doMiniBatchMutate called by HRegion.batchMutation catches this special
exception, HBase aborts the region server.
Apache Jira: HBASE-27230
- CDPD-65373: Make delay prefetch property dynamically configurable
- This change allows you to dynamically configure the
hbase.hfile.prefetch.delay property using the Cloudera
Manager. You need to update the value and refresh the HBase service. The new
value is applied to the HBase service automatically.
Apache Jira: HBASE-28292
- CDPD-74494: JVM crashes intermittently on ARM64 machines
- After noticing the JVM crashes in the HBase service
that is based on arm64 architecture and uses JDK 17, the fix is applied that
refactors the module and the large implementation function into multiple smaller
functions. The issue was observed in a specific module that had a very large
member function.
Apache Jira: HBASE-28206
- CDPD-73118: Bucket cache validation fails after a rolling restart resulting in an empty bucket cache without running the prefetch operations
- During the retrieval of bucket cache from
persistence, it was observed that, if an exception, other than the IOException
occurs, the exception is not logged, and also the retrieval thread exits leaving
the bucket cache in an uninitialized state, leaving it unusable.
This change enables the retrieval thread to print all types of exceptions and also reinitializes the bucket cache and makes it reusable.