HBASE-29368: Key management for encryption at rest (MVP changes)
Jira: HBASE-29368 Design doc: https://docs.google.com/document/d/1ToW_rveXHXUc1F6eFNQfu5LOeMAjzgq6FcYUDbdZrSM/edit?usp=sharing Discussion thread: https://lists.apache.org/thread/q7g2rr2xcgl64rkn9j3mnokf6fvohp2y
Cumulative changes from feature branch corresponding to the following sub-tasks:
- Phase 1: Key caching and minimal service
- Phase 2: Integrate key management with existing encryption
- Phase 2: Migration path from current encryption to managed encryption
- Phase 2: Admin API to trigger for System Key rotation detection as an alternative to failover.
- Phase 3: Additional key management APIs
Overview
This feature introduces a comprehensive key management system that extends HBase's existing encryption-at-rest capabilities. The implementation provides enterprise-grade key lifecycle management with support for key rotation, hierarchical namespace resolution for key lookup, key caching and improved integration with key management systems to handle key life cycles and external key changes.
Key Features
1. Managed Keys Infrastructure
- Introduction of
ManagedKeyProviderinterface for pluggable key provider implementations on the lines of the existingKeyProviderinterface. - The new interface can also return Data Encryption Keys (DEKs) and a lot more details on the keys.
- Comes with the default
ManagedKeyStoreKeyProviderimplementation using Java KeyStore, similar to the existingKeyStoreKeyProvider. - Enables logical key isolation for multi-tenant scenarios through custodian identifiers (future use cases) and the special default global custodian.
- Hierarchical namespace resolution for DEKs with automatic fallback: explicit CF namespace attribute → constructed
table/familynamespace → table name → global namespace
2. System Key (STK) Management
- Cluster-wide system key for wrapping data encryption keys (DEKs). This is equivalent to the existing master key, but better managed and operation friendly.
- Secure storage in HDFS with support for automatic key rotation during boot up.
- Admin API to trigger key rotation and propagation to all RegionServers without needing to do a rolling restart.
- Preserves the current double-wrapping architecture: DEKs wrapped by STK, STK sourced from external KMS
3. KeymetaAdmin API
enableKeyManagement(keyCust, keyNamespace)- Enable key management for a custodian/namespace pairgetManagedKeys(keyCust, keyNamespace)- Query key status and metadatarotateSTK()- Check for and propagate new system keysdisableKeyManagement(keyCust, keyNamespace)- Disable all the keys for a custodian/namespacedisableManagedKey(keyCust, keyNamespace, keyMetadataHash)- Disable a specific keyrotateManagedKey(keyCust, keyNamespace)- Rotate the active keyrefreshManagedKeys(keyCust, keyNamespace)- Refresh from external KMS to validate all the keys.- Internal cache management operations for convenience and meeting SLAs.
4. Persistent Key Metadata Storage
- New system table
hbase:keymetafor storing key metadata and state which acts as anL2cache. - Tracks key lifecycle:
ACTIVE,INACTIVE,DISABLED,FAILEDstates - Stores wrapped DEKs and metadata for key lookup without depending on external KMS.
- Optimized for high-priority access with in-memory column families
- Key metadata tracking with cryptographic hashes for integrity verification
5. Multi-Layer Caching
- L1: In-memory Caffeine cache on RegionServers for hot key data
- L2: Keymeta table for persistent key metadata that is shared across all RegionServers.
- L3: Dynamic lookup from external KMS as fallback when not found in L2.
- Cache invalidation mechanism for key rotation scenarios
6. HBase Shell Integration
enable_key_management- Enable key management for a custodian and namespaceshow_key_status- Display key status and metadatarotate_stk- Trigger system key rotationdisable_key_management- Disable key management for a custodian and namespacedisable_managed_key- Disable a specific keyrotate_managed_key- Rotate the active keyrefresh_managed_keys- Refresh all keys for a custodian and namespace
Implementation Highlights
- Backward Compatibility: Changes are fully compatible with existing encryption-at-rest configuration
- Gradual step-by-step migration: Well defined migration path from existing configuration to new configuration
- Performance: Minimal overhead through efficient caching and lazy key loading
- Security: Cryptographic verification of key metadata, secure key wrapping
- Operability: Administrative tools for key life cycle and cache management
- Extensibility: Plugin architecture for custom key provider implementations
- Testing: Comprehensive unit and integration tests coverage
Architecture
The implementation follows a layered architecture:
- Provider Layer: Pluggable
ManagedKeyProviderfor KMS integration - Management Layer:
KeyMetaAdminAPI for administrative operations - Persistence Layer:
KeymetaTableAccessorfor metadata storage - Cache Layer:
ManagedKeyDataCacheandSystemKeyCachefor performance - Service Layer: Coprocessor endpoints for client-server communication
Areas for Review
I would particularly appreciate feedback on:
- API Design: Is the
KeymetaAdminAPI intuitive and complete for common key management scenarios? - Security Model: Does the double-wrapping architecture (DEK wrapped by STK, STK from KMS) provide appropriate security guarantees?
- Performance: Are there potential bottlenecks in the caching strategy or table access patterns?
- Operational Aspects: Are the administrative commands sufficient for the needs of operations and monitoring?
- Testing Coverage: Are there additional test scenarios we should cover?
- Documentation: Is the design document clear? What additional documentation would be helpful?
- Compatibility: Any concerns about interaction with existing HBase features?
Next Steps
After incorporating community feedback, I plan to:
- Address any issues identified during review
- Implement the work identified for future phases
- Add additional documentation to the reference guide
How to Review
This PR introduces changes across multiple modules. Rather than reviewing all 143 files, I recommend focusing on these core components first:
Core Architecture:
- Design document (linked above) - architectural overview
ManagedKeyProvider,KeymetaAdmin,ManagedKeyDatainterfaces (hbase-common)ManagedKeys.proto- protocol definitionsHMasterand misc. procedure changes - initialization ofkeymetain a predictable orderFixedFileTrailer+ reader/writer changes - encode/decode additional encryption key in store files
Key Implementation:
KeymetaAdminImpl,KeymetaTableAccessor,ManagedKeyUtils,SystemKeyManager,SystemKeyAccessor- admin operations and persistenceManagedKeyDataCache,SystemKeyCache- caching layerSecurityUtil- encryption context creation
Client & Shell:
KeymetaAdminClient- client API- Shell commands and Ruby wrappers
Tests & Examples:
TestKeymetaAdminImpl,TestManagedKeymeta- for usage patternskey_provider_keymeta_migration_test.rb- E2E migration steps
Note: The remaining files contain secondary changes (API updates, test helpers, configuration constants, etc.) that can be reviewed later or skipped for initial feedback.
:broken_heart: -1 overall
| Vote | Subsystem | Runtime | Logfile | Comment |
|---|---|---|---|---|
| +0 :ok: | reexec | 2m 45s | Docker mode activated. | |
| _ Prechecks _ | ||||
| +1 :green_heart: | dupname | 0m 1s | No case conflicting files found. | |
| +0 :ok: | codespell | 0m 1s | codespell was not available. | |
| +0 :ok: | detsecrets | 0m 2s | detect-secrets was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | yamllint | 0m 0s | yamllint was not available. | |
| +1 :green_heart: | @author | 0m 0s | The patch does not contain any @author tags. | |
| +1 :green_heart: | hbaseanti | 0m 0s | Patch does not have any anti-patterns. | |
| _ master Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 21s | Maven dependency ordering for branch | |
| +1 :green_heart: | mvninstall | 5m 59s | master passed | |
| +1 :green_heart: | compile | 15m 44s | master passed | |
| +1 :green_heart: | checkstyle | 3m 2s | master passed | |
| +1 :green_heart: | spotbugs | 24m 16s | master passed | |
| +1 :green_heart: | spotless | 1m 14s | branch has no errors when running spotless:check. | |
| -0 :warning: | patch | 2m 19s | Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary. | |
| _ Patch Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 13s | Maven dependency ordering for patch | |
| +1 :green_heart: | mvninstall | 5m 18s | the patch passed | |
| +1 :green_heart: | compile | 17m 53s | the patch passed | |
| +1 :green_heart: | cc | 17m 53s | the patch passed | |
| -0 :warning: | javac | 17m 53s | /results-compile-javac-root.txt | root generated 8 new + 1890 unchanged - 6 fixed = 1898 total (was 1896) |
| +1 :green_heart: | blanks | 0m 0s | The patch has no blanks issues. | |
| -0 :warning: | checkstyle | 3m 5s | /results-checkstyle-root.txt | root: The patch generated 14 new + 101 unchanged - 0 fixed = 115 total (was 101) |
| -0 :warning: | rubocop | 0m 34s | /results-rubocop.txt | The patch generated 23 new + 488 unchanged - 17 fixed = 511 total (was 505) |
| +1 :green_heart: | xmllint | 0m 0s | No new issues. | |
| -1 :x: | spotbugs | 3m 1s | /new-spotbugs-hbase-server.html | hbase-server generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0) |
| -1 :x: | spotbugs | 13m 20s | /new-spotbugs-root.html | root generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0) |
| +1 :green_heart: | hadoopcheck | 16m 1s | Patch does not cause any errors with Hadoop 3.3.6 3.4.1. | |
| +1 :green_heart: | hbaseprotoc | 11m 39s | the patch passed | |
| +1 :green_heart: | spotless | 1m 30s | patch has no errors when running spotless:check. | |
| _ Other Tests _ | ||||
| +1 :green_heart: | asflicense | 2m 19s | The patch does not generate ASF License warnings. | |
| 150m 42s |
| Reason | Tests |
|---|---|
| SpotBugs | module:hbase-server |
| Possible null pointer dereference in org.apache.hadoop.hbase.keymeta.ManagedKeyDataCache.getActiveEntry(byte[], String) due to return value of called method Dereferenced at ManagedKeyDataCache.java:org.apache.hadoop.hbase.keymeta.ManagedKeyDataCache.getActiveEntry(byte[], String) due to return value of called method Dereferenced at ManagedKeyDataCache.java:[line 244] | |
| Possible null pointer dereference in org.apache.hadoop.hbase.keymeta.ManagedKeyDataCache.getEntry(byte[], String, String, byte[]) due to return value of called method Dereferenced at ManagedKeyDataCache.java:org.apache.hadoop.hbase.keymeta.ManagedKeyDataCache.getEntry(byte[], String, String, byte[]) due to return value of called method Dereferenced at ManagedKeyDataCache.java:[line 164] | |
| SpotBugs | module:root |
| Possible null pointer dereference in org.apache.hadoop.hbase.keymeta.ManagedKeyDataCache.getActiveEntry(byte[], String) due to return value of called method Dereferenced at ManagedKeyDataCache.java:org.apache.hadoop.hbase.keymeta.ManagedKeyDataCache.getActiveEntry(byte[], String) due to return value of called method Dereferenced at ManagedKeyDataCache.java:[line 244] | |
| Possible null pointer dereference in org.apache.hadoop.hbase.keymeta.ManagedKeyDataCache.getEntry(byte[], String, String, byte[]) due to return value of called method Dereferenced at ManagedKeyDataCache.java:org.apache.hadoop.hbase.keymeta.ManagedKeyDataCache.getEntry(byte[], String, String, byte[]) due to return value of called method Dereferenced at ManagedKeyDataCache.java:[line 164] |
| Subsystem | Report/Notes |
|---|---|
| Docker | ClientAPI=1.48 ServerAPI=1.48 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/1/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/7421 |
| JIRA Issue | HBASE-29368 |
| Optional Tests | dupname asflicense codespell detsecrets spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti cc buflint bufcompat hbaseprotoc xmllint rubocop yamllint |
| uname | Linux 561daf93846d 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | dev-support/hbase-personality.sh |
| git revision | master / 020adaa0643a7564939a09e1701c62cfe849300a |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Max. process+thread count | 161 (vs. ulimit of 30000) |
| modules | C: hbase-protocol-shaded hbase-common hbase-client hbase-server hbase-testing-util hbase-thrift hbase-shell . U: . |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/1/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 xmllint=20913 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
Fixing misc. issues flagged in the PR validation build via PR #7423
:broken_heart: -1 overall
| Vote | Subsystem | Runtime | Logfile | Comment |
|---|---|---|---|---|
| +0 :ok: | reexec | 3m 31s | Docker mode activated. | |
| -0 :warning: | yetus | 0m 5s | Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck | |
| _ Prechecks _ | ||||
| _ master Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 24s | Maven dependency ordering for branch | |
| +1 :green_heart: | mvninstall | 9m 57s | master passed | |
| +1 :green_heart: | compile | 6m 44s | master passed | |
| +1 :green_heart: | javadoc | 10m 32s | master passed | |
| +1 :green_heart: | shadedjars | 12m 24s | branch has no errors when building our shaded downstream artifacts. | |
| -0 :warning: | patch | 13m 36s | Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary. | |
| _ Patch Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 24s | Maven dependency ordering for patch | |
| +1 :green_heart: | mvninstall | 9m 0s | the patch passed | |
| +1 :green_heart: | compile | 6m 30s | the patch passed | |
| +1 :green_heart: | javac | 6m 30s | the patch passed | |
| -0 :warning: | javadoc | 1m 14s | /results-javadoc-javadoc-hbase-server.txt | hbase-server generated 2 new + 63 unchanged - 0 fixed = 65 total (was 63) |
| -0 :warning: | javadoc | 6m 16s | /results-javadoc-javadoc-root.txt | root generated 2 new + 210 unchanged - 0 fixed = 212 total (was 210) |
| +1 :green_heart: | shadedjars | 11m 44s | patch has no errors when building our shaded downstream artifacts. | |
| _ Other Tests _ | ||||
| -1 :x: | unit | 52m 50s | /patch-unit-root.txt | root in the patch failed. |
| 139m 6s |
| Subsystem | Report/Notes |
|---|---|
| Docker | ClientAPI=1.48 ServerAPI=1.48 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/2/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/7421 |
| JIRA Issue | HBASE-29368 |
| Optional Tests | javac javadoc unit compile shadedjars |
| uname | Linux 62d26d6fad5c 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | dev-support/hbase-personality.sh |
| git revision | master / 973c81a72925865c27aacba6d02c693e1bbc3389 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Test Results | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/2/testReport/ |
| Max. process+thread count | 969 (vs. ulimit of 30000) |
| modules | C: hbase-protocol-shaded hbase-common hbase-client hbase-server hbase-testing-util hbase-thrift hbase-shell . U: . |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/2/console |
| versions | git=2.34.1 maven=3.9.8 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
:broken_heart: -1 overall
| Vote | Subsystem | Runtime | Logfile | Comment |
|---|---|---|---|---|
| +0 :ok: | reexec | 3m 34s | Docker mode activated. | |
| _ Prechecks _ | ||||
| +1 :green_heart: | dupname | 0m 2s | No case conflicting files found. | |
| +0 :ok: | codespell | 0m 2s | codespell was not available. | |
| +0 :ok: | detsecrets | 0m 2s | detect-secrets was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | yamllint | 0m 0s | yamllint was not available. | |
| +1 :green_heart: | @author | 0m 0s | The patch does not contain any @author tags. | |
| +1 :green_heart: | hbaseanti | 0m 0s | Patch does not have any anti-patterns. | |
| _ master Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 26s | Maven dependency ordering for branch | |
| +1 :green_heart: | mvninstall | 10m 4s | master passed | |
| +1 :green_heart: | compile | 25m 51s | master passed | |
| +1 :green_heart: | checkstyle | 4m 7s | master passed | |
| +1 :green_heart: | spotbugs | 37m 58s | master passed | |
| +1 :green_heart: | spotless | 1m 39s | branch has no errors when running spotless:check. | |
| -0 :warning: | patch | 3m 12s | Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary. | |
| _ Patch Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 22s | Maven dependency ordering for patch | |
| +1 :green_heart: | mvninstall | 8m 44s | the patch passed | |
| +1 :green_heart: | compile | 27m 8s | the patch passed | |
| +1 :green_heart: | cc | 27m 8s | the patch passed | |
| -0 :warning: | javac | 27m 8s | /results-compile-javac-root.txt | root generated 4 new + 1894 unchanged - 2 fixed = 1898 total (was 1896) |
| +1 :green_heart: | blanks | 0m 0s | The patch has no blanks issues. | |
| -0 :warning: | checkstyle | 4m 48s | /results-checkstyle-root.txt | root: The patch generated 1 new + 101 unchanged - 0 fixed = 102 total (was 101) |
| -0 :warning: | rubocop | 0m 40s | /results-rubocop.txt | The patch generated 20 new + 488 unchanged - 17 fixed = 508 total (was 505) |
| +1 :green_heart: | xmllint | 0m 0s | No new issues. | |
| +1 :green_heart: | spotbugs | 34m 20s | the patch passed | |
| +1 :green_heart: | hadoopcheck | 20m 2s | Patch does not cause any errors with Hadoop 3.3.6 3.4.1. | |
| +1 :green_heart: | hbaseprotoc | 11m 16s | the patch passed | |
| -1 :x: | spotless | 1m 24s | patch has 22 errors when running spotless:check, run spotless:apply to fix. | |
| _ Other Tests _ | ||||
| +1 :green_heart: | asflicense | 1m 50s | The patch does not generate ASF License warnings. | |
| 209m 46s |
| Subsystem | Report/Notes |
|---|---|
| Docker | ClientAPI=1.48 ServerAPI=1.48 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/2/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/7421 |
| JIRA Issue | HBASE-29368 |
| Optional Tests | dupname asflicense codespell detsecrets spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti cc buflint bufcompat hbaseprotoc xmllint rubocop yamllint |
| uname | Linux 8ca36f82aa94 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | dev-support/hbase-personality.sh |
| git revision | master / 973c81a72925865c27aacba6d02c693e1bbc3389 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| spotless | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/2/artifact/yetus-general-check/output/patch-spotless.txt |
| Max. process+thread count | 162 (vs. ulimit of 30000) |
| modules | C: hbase-protocol-shaded hbase-common hbase-client hbase-server hbase-testing-util hbase-thrift hbase-shell . U: . |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/2/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 xmllint=20913 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
:broken_heart: -1 overall
| Vote | Subsystem | Runtime | Logfile | Comment |
|---|---|---|---|---|
| +0 :ok: | reexec | 0m 31s | Docker mode activated. | |
| _ Prechecks _ | ||||
| +1 :green_heart: | dupname | 0m 1s | No case conflicting files found. | |
| +0 :ok: | codespell | 0m 1s | codespell was not available. | |
| +0 :ok: | detsecrets | 0m 1s | detect-secrets was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | yamllint | 0m 0s | yamllint was not available. | |
| +1 :green_heart: | @author | 0m 0s | The patch does not contain any @author tags. | |
| +1 :green_heart: | hbaseanti | 0m 0s | Patch does not have any anti-patterns. | |
| _ master Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 18s | Maven dependency ordering for branch | |
| +1 :green_heart: | mvninstall | 3m 37s | master passed | |
| +1 :green_heart: | compile | 8m 36s | master passed | |
| +1 :green_heart: | checkstyle | 2m 28s | master passed | |
| +1 :green_heart: | spotbugs | 14m 33s | master passed | |
| +1 :green_heart: | spotless | 0m 51s | branch has no errors when running spotless:check. | |
| -0 :warning: | patch | 1m 39s | Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary. | |
| _ Patch Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 12s | Maven dependency ordering for patch | |
| +1 :green_heart: | mvninstall | 3m 11s | the patch passed | |
| +1 :green_heart: | compile | 8m 40s | the patch passed | |
| +1 :green_heart: | cc | 8m 40s | the patch passed | |
| -0 :warning: | javac | 8m 40s | /results-compile-javac-root.txt | root generated 3 new + 1895 unchanged - 1 fixed = 1898 total (was 1896) |
| +1 :green_heart: | blanks | 0m 0s | The patch has no blanks issues. | |
| -0 :warning: | checkstyle | 2m 25s | /results-checkstyle-root.txt | root: The patch generated 1 new + 101 unchanged - 0 fixed = 102 total (was 101) |
| -0 :warning: | rubocop | 0m 31s | /results-rubocop.txt | The patch generated 20 new + 488 unchanged - 17 fixed = 508 total (was 505) |
| +1 :green_heart: | xmllint | 0m 0s | No new issues. | |
| +1 :green_heart: | spotbugs | 15m 26s | the patch passed | |
| +1 :green_heart: | hadoopcheck | 12m 24s | Patch does not cause any errors with Hadoop 3.3.6 3.4.1. | |
| +1 :green_heart: | hbaseprotoc | 5m 27s | the patch passed | |
| -1 :x: | spotless | 0m 38s | patch has 22 errors when running spotless:check, run spotless:apply to fix. | |
| _ Other Tests _ | ||||
| +1 :green_heart: | asflicense | 1m 12s | The patch does not generate ASF License warnings. | |
| 90m 34s |
| Subsystem | Report/Notes |
|---|---|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/3/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/7421 |
| JIRA Issue | HBASE-29368 |
| Optional Tests | dupname asflicense codespell detsecrets spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti cc buflint bufcompat hbaseprotoc xmllint rubocop yamllint |
| uname | Linux b6f994373470 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | dev-support/hbase-personality.sh |
| git revision | master / 3de7a7ce6835571d1ac8e48634e204e7beb0a9cc |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| spotless | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/3/artifact/yetus-general-check/output/patch-spotless.txt |
| Max. process+thread count | 190 (vs. ulimit of 30000) |
| modules | C: hbase-protocol-shaded hbase-common hbase-client hbase-server hbase-testing-util hbase-thrift hbase-shell . U: . |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/3/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 xmllint=20913 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
:broken_heart: -1 overall
| Vote | Subsystem | Runtime | Logfile | Comment |
|---|---|---|---|---|
| +0 :ok: | reexec | 0m 30s | Docker mode activated. | |
| -0 :warning: | yetus | 0m 4s | Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck | |
| _ Prechecks _ | ||||
| _ master Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 15s | Maven dependency ordering for branch | |
| +1 :green_heart: | mvninstall | 3m 33s | master passed | |
| +1 :green_heart: | compile | 2m 14s | master passed | |
| +1 :green_heart: | javadoc | 3m 52s | master passed | |
| +1 :green_heart: | shadedjars | 6m 23s | branch has no errors when building our shaded downstream artifacts. | |
| -0 :warning: | patch | 7m 11s | Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary. | |
| _ Patch Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 11s | Maven dependency ordering for patch | |
| +1 :green_heart: | mvninstall | 3m 6s | the patch passed | |
| +1 :green_heart: | compile | 2m 16s | the patch passed | |
| +1 :green_heart: | javac | 2m 16s | the patch passed | |
| -0 :warning: | javadoc | 0m 26s | /results-javadoc-javadoc-hbase-server.txt | hbase-server generated 2 new + 63 unchanged - 0 fixed = 65 total (was 63) |
| -0 :warning: | javadoc | 1m 56s | /results-javadoc-javadoc-root.txt | root generated 2 new + 210 unchanged - 0 fixed = 212 total (was 210) |
| +1 :green_heart: | shadedjars | 6m 14s | patch has no errors when building our shaded downstream artifacts. | |
| _ Other Tests _ | ||||
| -1 :x: | unit | 282m 56s | /patch-unit-root.txt | root in the patch failed. |
| 325m 53s |
| Subsystem | Report/Notes |
|---|---|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/3/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/7421 |
| JIRA Issue | HBASE-29368 |
| Optional Tests | javac javadoc unit compile shadedjars |
| uname | Linux 17bcd0dcc49f 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | dev-support/hbase-personality.sh |
| git revision | master / 3de7a7ce6835571d1ac8e48634e204e7beb0a9cc |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Test Results | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/3/testReport/ |
| Max. process+thread count | 8105 (vs. ulimit of 30000) |
| modules | C: hbase-protocol-shaded hbase-common hbase-client hbase-server hbase-testing-util hbase-thrift hbase-shell . U: . |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/3/console |
| versions | git=2.34.1 maven=3.9.8 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
:confetti_ball: +1 overall
| Vote | Subsystem | Runtime | Logfile | Comment |
|---|---|---|---|---|
| +0 :ok: | reexec | 0m 31s | Docker mode activated. | |
| _ Prechecks _ | ||||
| +1 :green_heart: | dupname | 0m 1s | No case conflicting files found. | |
| +0 :ok: | codespell | 0m 1s | codespell was not available. | |
| +0 :ok: | detsecrets | 0m 1s | detect-secrets was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | yamllint | 0m 0s | yamllint was not available. | |
| +1 :green_heart: | @author | 0m 0s | The patch does not contain any @author tags. | |
| +1 :green_heart: | hbaseanti | 0m 0s | Patch does not have any anti-patterns. | |
| _ master Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 32s | Maven dependency ordering for branch | |
| +1 :green_heart: | mvninstall | 3m 32s | master passed | |
| +1 :green_heart: | compile | 8m 34s | master passed | |
| +1 :green_heart: | checkstyle | 2m 23s | master passed | |
| +1 :green_heart: | spotbugs | 14m 57s | master passed | |
| +1 :green_heart: | spotless | 0m 48s | branch has no errors when running spotless:check. | |
| -0 :warning: | patch | 1m 41s | Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary. | |
| _ Patch Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 11s | Maven dependency ordering for patch | |
| +1 :green_heart: | mvninstall | 3m 11s | the patch passed | |
| +1 :green_heart: | compile | 8m 34s | the patch passed | |
| +1 :green_heart: | cc | 8m 34s | the patch passed | |
| -0 :warning: | javac | 8m 34s | /results-compile-javac-root.txt | root generated 3 new + 1895 unchanged - 1 fixed = 1898 total (was 1896) |
| +1 :green_heart: | blanks | 0m 0s | The patch has no blanks issues. | |
| -0 :warning: | checkstyle | 2m 19s | /results-checkstyle-root.txt | root: The patch generated 1 new + 103 unchanged - 0 fixed = 104 total (was 103) |
| -0 :warning: | rubocop | 0m 37s | /results-rubocop.txt | The patch generated 20 new + 488 unchanged - 17 fixed = 508 total (was 505) |
| +1 :green_heart: | xmllint | 0m 0s | No new issues. | |
| +1 :green_heart: | spotbugs | 15m 57s | the patch passed | |
| +1 :green_heart: | hadoopcheck | 12m 31s | Patch does not cause any errors with Hadoop 3.3.6 3.4.1. | |
| +1 :green_heart: | hbaseprotoc | 5m 41s | the patch passed | |
| +1 :green_heart: | spotless | 0m 46s | patch has no errors when running spotless:check. | |
| _ Other Tests _ | ||||
| +1 :green_heart: | asflicense | 1m 20s | The patch does not generate ASF License warnings. | |
| 92m 9s |
| Subsystem | Report/Notes |
|---|---|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/4/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/7421 |
| JIRA Issue | HBASE-29368 |
| Optional Tests | dupname asflicense codespell detsecrets spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti cc buflint bufcompat hbaseprotoc xmllint rubocop yamllint |
| uname | Linux 0d42a41b26d8 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | dev-support/hbase-personality.sh |
| git revision | master / c22e111a49105c9d33d5fbefec3e125e65572d87 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Max. process+thread count | 187 (vs. ulimit of 30000) |
| modules | C: hbase-protocol-shaded hbase-common hbase-client hbase-procedure hbase-server hbase-testing-util hbase-thrift hbase-shell . U: . |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/4/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 xmllint=20913 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
:broken_heart: -1 overall
| Vote | Subsystem | Runtime | Logfile | Comment |
|---|---|---|---|---|
| +0 :ok: | reexec | 0m 45s | Docker mode activated. | |
| -0 :warning: | yetus | 0m 6s | Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck | |
| _ Prechecks _ | ||||
| _ master Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 23s | Maven dependency ordering for branch | |
| +1 :green_heart: | mvninstall | 5m 8s | master passed | |
| +1 :green_heart: | compile | 3m 33s | master passed | |
| +1 :green_heart: | javadoc | 6m 32s | master passed | |
| +1 :green_heart: | shadedjars | 8m 49s | branch has no errors when building our shaded downstream artifacts. | |
| -0 :warning: | patch | 9m 59s | Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary. | |
| _ Patch Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 12s | Maven dependency ordering for patch | |
| +1 :green_heart: | mvninstall | 4m 9s | the patch passed | |
| +1 :green_heart: | compile | 3m 17s | the patch passed | |
| +1 :green_heart: | javac | 3m 17s | the patch passed | |
| -0 :warning: | javadoc | 0m 40s | /results-javadoc-javadoc-hbase-server.txt | hbase-server generated 2 new + 63 unchanged - 0 fixed = 65 total (was 63) |
| -0 :warning: | javadoc | 3m 5s | /results-javadoc-javadoc-root.txt | root generated 2 new + 210 unchanged - 0 fixed = 212 total (was 210) |
| +1 :green_heart: | shadedjars | 8m 17s | patch has no errors when building our shaded downstream artifacts. | |
| _ Other Tests _ | ||||
| -1 :x: | unit | 297m 27s | /patch-unit-root.txt | root in the patch failed. |
| 356m 15s |
| Subsystem | Report/Notes |
|---|---|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/4/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/7421 |
| JIRA Issue | HBASE-29368 |
| Optional Tests | javac javadoc unit compile shadedjars |
| uname | Linux 2eef51d875cc 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | dev-support/hbase-personality.sh |
| git revision | master / c22e111a49105c9d33d5fbefec3e125e65572d87 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Test Results | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/4/testReport/ |
| Max. process+thread count | 8210 (vs. ulimit of 30000) |
| modules | C: hbase-protocol-shaded hbase-common hbase-client hbase-procedure hbase-server hbase-testing-util hbase-thrift hbase-shell . U: . |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/4/console |
| versions | git=2.34.1 maven=3.9.8 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
:broken_heart: -1 overall
| Vote | Subsystem | Runtime | Logfile | Comment |
|---|---|---|---|---|
| +0 :ok: | reexec | 0m 55s | Docker mode activated. | |
| _ Prechecks _ | ||||
| +1 :green_heart: | dupname | 0m 1s | No case conflicting files found. | |
| +0 :ok: | codespell | 0m 1s | codespell was not available. | |
| +0 :ok: | detsecrets | 0m 1s | detect-secrets was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | buf | 0m 0s | buf was not available. | |
| +0 :ok: | yamllint | 0m 0s | yamllint was not available. | |
| +1 :green_heart: | @author | 0m 0s | The patch does not contain any @author tags. | |
| +1 :green_heart: | hbaseanti | 0m 0s | Patch does not have any anti-patterns. | |
| _ master Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 36s | Maven dependency ordering for branch | |
| +1 :green_heart: | mvninstall | 4m 28s | master passed | |
| +1 :green_heart: | compile | 10m 48s | master passed | |
| +1 :green_heart: | checkstyle | 2m 47s | master passed | |
| +1 :green_heart: | spotbugs | 17m 19s | master passed | |
| +1 :green_heart: | spotless | 1m 7s | branch has no errors when running spotless:check. | |
| -0 :warning: | patch | 2m 7s | Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary. | |
| _ Patch Compile Tests _ | ||||
| +0 :ok: | mvndep | 0m 11s | Maven dependency ordering for patch | |
| +1 :green_heart: | mvninstall | 3m 49s | the patch passed | |
| +1 :green_heart: | compile | 10m 36s | the patch passed | |
| +1 :green_heart: | cc | 10m 36s | the patch passed | |
| -0 :warning: | javac | 10m 36s | /results-compile-javac-root.txt | root generated 2 new + 1896 unchanged - 0 fixed = 1898 total (was 1896) |
| +1 :green_heart: | blanks | 0m 1s | The patch has no blanks issues. | |
| -0 :warning: | checkstyle | 2m 32s | /results-checkstyle-root.txt | root: The patch generated 1 new + 102 unchanged - 1 fixed = 103 total (was 103) |
| -0 :warning: | rubocop | 0m 47s | /results-rubocop.txt | The patch generated 34 new + 488 unchanged - 17 fixed = 522 total (was 505) |
| +1 :green_heart: | xmllint | 0m 1s | No new issues. | |
| +1 :green_heart: | spotbugs | 20m 7s | the patch passed | |
| +1 :green_heart: | hadoopcheck | 14m 29s | Patch does not cause any errors with Hadoop 3.3.6 3.4.1. | |
| +1 :green_heart: | hbaseprotoc | 6m 31s | the patch passed | |
| -1 :x: | spotless | 0m 48s | patch has 23 errors when running spotless:check, run spotless:apply to fix. | |
| _ Other Tests _ | ||||
| +1 :green_heart: | asflicense | 1m 33s | The patch does not generate ASF License warnings. | |
| 110m 51s |
| Subsystem | Report/Notes |
|---|---|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/5/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/7421 |
| JIRA Issue | HBASE-29368 |
| Optional Tests | dupname asflicense codespell detsecrets spotless javac spotbugs checkstyle compile hadoopcheck hbaseanti cc buflint bufcompat hbaseprotoc xmllint rubocop yamllint |
| uname | Linux a74441611868 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | dev-support/hbase-personality.sh |
| git revision | master / ffc1743ced25936728f92074c83e3e63b75b53e9 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| spotless | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/5/artifact/yetus-general-check/output/patch-spotless.txt |
| Max. process+thread count | 190 (vs. ulimit of 30000) |
| modules | C: hbase-protocol-shaded hbase-common hbase-client hbase-procedure hbase-server hbase-testing-util hbase-thrift hbase-shell . U: . |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-7421/5/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 rubocop=1.37.1 xmllint=20913 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
You can run mvn spotless:apply for spotless failures