kgeisz opened a new pull request, #8809:
URL: https://github.com/apache/hbase/pull/8809

   https://issues.apache.org/jira/browse/HBASE-30087
   
   ## Summary
   
   HBase's Read-Replica feature was merged into `master` in PR #8044. This pull 
request adds Jenkins integration tests for Read-Replica.
   
   The typical HBase mini-cluster integration test framework cannot be used to 
test the Read-Replica feature because each cluster in a read-replica setup must 
have a unique meta table name. These mini-clusters run in the same JVM and end 
up sharing the same static `META_TABLE_NAME` variable. (PR #7730 is an open 
pull request to make the meta table name non-static.)
   
   Instead, these integration tests use two Docker containers running HBase 
that are part of a read-replica setup. An HBase Docker client uses Python to 
send HBase commands to the HBase shell within each container.  This allows us 
to run each HBase cluster in its own isolated JVM.
   
   The Read-Replica integration tests reside in `dev-support/read-replica`.  
The tests have their own `Jenkinsfile` that runs the 
`hbase_nightly_read_replica_test.sh` driver script, which does the following:
   
   1. Builds a Docker test environment image using 
`dev-support/docker/Dockerfile` and starts this container. The container helps 
with portability for running tests either locally or in Jenkins.
   
   Once the test environment container is up and running, the driver script 
runs `run_read_replica_integration_tests.sh` inside of this container, which 
does the following:
   
   2. Sets up the test environment - creates Python env, compile Protobuf, etc.
   3. Builds the hbase-docker image, which is used to establish a read-replica 
setup between two Docker containers running HBase.
   4. Starts the hbase-docker containers using `docker compose`. These 
containers are run alongside the test env container by bind-mounting the host's 
Docker socket (a Docker-outside-of-Docker (DooD) setup)
   5. Uses `pytest` to run several integration tests
   6. Creates a test report to be published by Jenkins (similar to the Nightly 
Test's console report)
   
   These integration tests have been run in Jenkins against this feature branch 
(HBASE-30087). We now would like to merge this feature branch to the master so 
the Read-Replica feature can continue to be tested against new changes to HBase.
   
   ## Results Examples
   
   Previous runs against the HBASE-30087 branch, including successful runs, can 
be found here:
   
   https://ci-hbase.apache.org/job/HBase-Read-Replica-Tests/job/HBASE-30087/
   
   Here is an example of a console report from a successful test run:
   
   <img width="735" height="283" alt="Screenshot 2026-10-15 at 2 58 41 PM" 
src="https://github.com/user-attachments/assets/cc06e899-5a23-4db3-bd04-557f69f7e015";
 />
   
   Here is an example of a failed run. When a test fails, the test's logs are 
linked along with the HBase logs from each read-replica Docker container:
   
   <img width="997" height="415" alt="Screenshot 2026-10-15 at 2 58 15 PM" 
src="https://github.com/user-attachments/assets/dd64016d-2c4e-427f-b10e-d17598742b38";
 />


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to