You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "vinayakphegde (via GitHub)" <gi...@apache.org> on 2025/03/24 05:23:15 UTC
[PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
vinayakphegde opened a new pull request, #6848:
URL: https://github.com/apache/hbase/pull/6848
This PR introduces validation to prevent the deletion of backups that are essential for Point-In-Time Recovery (PITR). If a backup is the only remaining full backup enabling PITR for certain tables, deletion will be blocked unless the force option is explicitly specified.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2784635516
:confetti_ball: **+1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 0m 36s | | Docker mode activated. |
|||| _ Prechecks _ |
| +1 :green_heart: | dupname | 0m 0s | | No case conflicting files found. |
| +0 :ok: | codespell | 0m 0s | | codespell was not available. |
| +0 :ok: | detsecrets | 0m 0s | | detect-secrets 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. |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 59s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 0m 35s | | HBASE-28957 passed |
| +1 :green_heart: | checkstyle | 0m 14s | | HBASE-28957 passed |
| +1 :green_heart: | spotbugs | 0m 39s | | HBASE-28957 passed |
| +1 :green_heart: | spotless | 0m 57s | | branch has no errors when running spotless:check. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 32s | | the patch passed |
| +1 :green_heart: | compile | 0m 35s | | the patch passed |
| +1 :green_heart: | javac | 0m 35s | | the patch passed |
| +1 :green_heart: | blanks | 0m 0s | | The patch has no blanks issues. |
| +1 :green_heart: | checkstyle | 0m 11s | | the patch passed |
| +1 :green_heart: | spotbugs | 0m 45s | | the patch passed |
| +1 :green_heart: | hadoopcheck | 13m 4s | | Patch does not cause any errors with Hadoop 3.3.6 3.4.0. |
| +1 :green_heart: | spotless | 0m 55s | | patch has no errors when running spotless:check. |
|||| _ Other Tests _ |
| +1 :green_heart: | asflicense | 0m 10s | | The patch does not generate ASF License warnings. |
| | | 34m 23s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/4/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless |
| uname | Linux cf1232b41770 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 | HBASE-28957 / 27e92cd2481b11936a1d9ea42744c072c4cf5472 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Max. process+thread count | 83 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/4/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "vinayakphegde (via GitHub)" <gi...@apache.org>.
vinayakphegde commented on code in PR #6848:
URL: https://github.com/apache/hbase/pull/6848#discussion_r2030460304
##########
hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java:
##########
@@ -183,4 +188,86 @@ public void testBackupDeleteUpdatesIncrementalBackupSet() throws Exception {
assertEquals(Sets.newHashSet(table3),
backupSystemTable.getIncrementalBackupTableSet(BACKUP_ROOT_DIR));
}
+
+ @Test
+ public void testPITRBackupDeletion() throws Exception {
Review Comment:
Makes sense. we'll fix that.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2790633250
:broken_heart: **-1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 0m 29s | | Docker mode activated. |
| -0 :warning: | yetus | 0m 3s | | Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck |
|||| _ Prechecks _ |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 31s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 0m 20s | | HBASE-28957 passed |
| +1 :green_heart: | javadoc | 0m 16s | | HBASE-28957 passed |
| +1 :green_heart: | shadedjars | 6m 0s | | branch has no errors when building our shaded downstream artifacts. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 5s | | the patch passed |
| +1 :green_heart: | compile | 0m 19s | | the patch passed |
| +1 :green_heart: | javac | 0m 19s | | the patch passed |
| +1 :green_heart: | javadoc | 0m 13s | | the patch passed |
| +1 :green_heart: | shadedjars | 5m 52s | | patch has no errors when building our shaded downstream artifacts. |
|||| _ Other Tests _ |
| -1 :x: | unit | 21m 53s | [/patch-unit-hbase-backup.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/6/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-backup.txt) | hbase-backup in the patch failed. |
| | | 43m 12s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/6/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | javac javadoc unit compile shadedjars |
| uname | Linux 32ba1b1f9814 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 | HBASE-28957 / 821f57bd50330173e96d1d8fdb94736565bf06c6 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Test Results | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/6/testReport/ |
| Max. process+thread count | 3633 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/6/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.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2788324767
:confetti_ball: **+1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 2m 55s | | Docker mode activated. |
| -0 :warning: | yetus | 0m 3s | | Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck |
|||| _ Prechecks _ |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 37s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 0m 19s | | HBASE-28957 passed |
| +1 :green_heart: | javadoc | 0m 14s | | HBASE-28957 passed |
| +1 :green_heart: | shadedjars | 5m 53s | | branch has no errors when building our shaded downstream artifacts. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 3s | | the patch passed |
| +1 :green_heart: | compile | 0m 19s | | the patch passed |
| +1 :green_heart: | javac | 0m 19s | | the patch passed |
| +1 :green_heart: | javadoc | 0m 13s | | the patch passed |
| +1 :green_heart: | shadedjars | 5m 50s | | patch has no errors when building our shaded downstream artifacts. |
|||| _ Other Tests _ |
| +1 :green_heart: | unit | 21m 30s | | hbase-backup in the patch passed. |
| | | 44m 49s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/5/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | javac javadoc unit compile shadedjars |
| uname | Linux d45ea57b6bf3 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 | HBASE-28957 / e3b166ede9c6f6673dd3dc458d3d2d82f3ad1792 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Test Results | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/5/testReport/ |
| Max. process+thread count | 3602 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/5/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.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2753756954
:confetti_ball: **+1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 0m 30s | | Docker mode activated. |
|||| _ Prechecks _ |
| +1 :green_heart: | dupname | 0m 0s | | No case conflicting files found. |
| +0 :ok: | codespell | 0m 0s | | codespell was not available. |
| +0 :ok: | detsecrets | 0m 0s | | detect-secrets 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. |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 17s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 0m 30s | | HBASE-28957 passed |
| +1 :green_heart: | checkstyle | 0m 10s | | HBASE-28957 passed |
| +1 :green_heart: | spotbugs | 0m 30s | | HBASE-28957 passed |
| +1 :green_heart: | spotless | 0m 46s | | branch has no errors when running spotless:check. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 3s | | the patch passed |
| +1 :green_heart: | compile | 0m 28s | | the patch passed |
| +1 :green_heart: | javac | 0m 28s | | the patch passed |
| +1 :green_heart: | blanks | 0m 0s | | The patch has no blanks issues. |
| +1 :green_heart: | checkstyle | 0m 10s | | the patch passed |
| +1 :green_heart: | spotbugs | 0m 36s | | the patch passed |
| +1 :green_heart: | hadoopcheck | 11m 48s | | Patch does not cause any errors with Hadoop 3.3.6 3.4.0. |
| +1 :green_heart: | spotless | 0m 44s | | patch has no errors when running spotless:check. |
|||| _ Other Tests _ |
| +1 :green_heart: | asflicense | 0m 10s | | The patch does not generate ASF License warnings. |
| | | 30m 12s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/2/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless |
| uname | Linux deb76a01a26f 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 | HBASE-28957 / 2eb33d317a6ae72140152fa525f72d014e52220a |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Max. process+thread count | 83 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/2/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2753850533
:broken_heart: **-1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 0m 28s | | Docker mode activated. |
| -0 :warning: | yetus | 0m 2s | | Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck |
|||| _ Prechecks _ |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 15s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 0m 19s | | HBASE-28957 passed |
| +1 :green_heart: | javadoc | 0m 15s | | HBASE-28957 passed |
| +1 :green_heart: | shadedjars | 6m 2s | | branch has no errors when building our shaded downstream artifacts. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 4s | | the patch passed |
| +1 :green_heart: | compile | 0m 18s | | the patch passed |
| +1 :green_heart: | javac | 0m 18s | | the patch passed |
| +1 :green_heart: | javadoc | 0m 13s | | the patch passed |
| +1 :green_heart: | shadedjars | 5m 56s | | patch has no errors when building our shaded downstream artifacts. |
|||| _ Other Tests _ |
| -1 :x: | unit | 22m 10s | [/patch-unit-hbase-backup.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/2/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-backup.txt) | hbase-backup in the patch failed. |
| | | 43m 9s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/2/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | javac javadoc unit compile shadedjars |
| uname | Linux b0dcfc6130b4 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 | HBASE-28957 / 2eb33d317a6ae72140152fa525f72d014e52220a |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Test Results | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/2/testReport/ |
| Max. process+thread count | 3737 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/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.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "anmolnar (via GitHub)" <gi...@apache.org>.
anmolnar commented on code in PR #6848:
URL: https://github.com/apache/hbase/pull/6848#discussion_r2033892663
##########
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java:
##########
@@ -695,12 +707,161 @@ private void executeDeleteListOfBackups(CommandLine cmdline) throws IOException
}
+ /**
+ * Validates whether the specified backups can be deleted while preserving Point-In-Time
+ * Recovery (PITR) capabilities. If a backup is the only remaining full backup enabling PITR for
+ * certain tables, deletion is prevented unless forced.
+ * @param backupIds Array of backup IDs to validate.
+ * @param isForceDelete Flag indicating whether deletion should proceed regardless of PITR
+ * constraints.
+ * @throws IOException If a backup is essential for PITR and force deletion is not enabled.
+ */
+ private void validatePITRBackupDeletion(String[] backupIds, boolean isForceDelete)
+ throws IOException {
+ if (!isForceDelete) {
+ for (String backupId : backupIds) {
+ List<TableName> affectedTables = getTablesDependentOnBackupForPITR(backupId);
+ if (!affectedTables.isEmpty()) {
+ String errMsg = String.format(
+ "Backup %s is the only FULL backup remaining that enables PITR for tables: %s. "
+ + "Use the force option to delete it anyway.",
+ backupId, affectedTables);
+ System.err.println(errMsg);
+ throw new IOException(errMsg);
+ }
+ }
+ }
+ }
+
+ /**
+ * Identifies tables that rely on the specified backup for PITR. If a table has no other valid
+ * FULL backups that can facilitate recovery to all points within the PITR retention window, it
+ * is added to the dependent list.
+ * @param backupId The backup ID being evaluated.
+ * @return List of tables dependent on the specified backup for PITR.
+ * @throws IOException If backup metadata cannot be retrieved.
+ */
+ private List<TableName> getTablesDependentOnBackupForPITR(String backupId) throws IOException {
+ List<TableName> dependentTables = new ArrayList<>();
+
+ try (final BackupSystemTable backupSystemTable = new BackupSystemTable(conn)) {
+ List<BackupInfo> backupHistory = backupSystemTable.getBackupInfos(BackupState.COMPLETE);
+ BackupInfo targetBackup = backupSystemTable.readBackupInfo(backupId);
+
+ if (targetBackup == null) {
+ throw new IOException("Backup info not found for backupId: " + backupId);
+ }
+
+ // Only full backups are mandatory for PITR
+ if (!BackupType.FULL.equals(targetBackup.getType())) {
+ return List.of();
+ }
+
+ // Retrieve the tables with continuous backup enabled and their start times
+ Map<TableName, Long> continuousBackupStartTimes =
+ backupSystemTable.getContinuousBackupTableSet();
+
+ // Determine the PITR time window
+ long pitrWindowDays = getConf().getLong(CONF_CONTINUOUS_BACKUP_PITR_WINDOW_DAYS,
+ DEFAULT_CONTINUOUS_BACKUP_PITR_WINDOW_DAYS);
+ long currentTime = EnvironmentEdgeManager.getDelegate().currentTime();
+ long pitrMaxStartTime = currentTime - TimeUnit.DAYS.toMillis(pitrWindowDays);
+
+ // For all tables, determine the earliest (minimum) continuous backup start time.
+ // This represents the actual earliest point-in-time recovery (PITR) timestamp
+ // that can be used, ensuring we do not go beyond the available backup data.
+ long minContinuousBackupStartTime = currentTime;
+ for (TableName table : targetBackup.getTableNames()) {
+ minContinuousBackupStartTime = Math.min(minContinuousBackupStartTime,
+ continuousBackupStartTimes.getOrDefault(table, currentTime));
+ }
+
+ // The PITR max start time should be the maximum of the calculated minimum continuous backup
+ // start time and the default PITR max start time (based on the configured window).
+ // This ensures that PITR does not extend beyond what is practically possible.
+ pitrMaxStartTime = Math.max(minContinuousBackupStartTime, pitrMaxStartTime);
+
+ for (TableName table : targetBackup.getTableNames()) {
+ // This backup is not necessary for this table since it doesn't have PITR enabled
+ if (!continuousBackupStartTimes.containsKey(table)) {
+ continue;
+ }
+ if (
+ !isValidPITRBackup(targetBackup, table, continuousBackupStartTimes, pitrMaxStartTime)
+ ) {
+ continue; // This backup is not crucial for PITR of this table
+ }
+
+ // Check if another valid full backup exists for this table
+ long finalPitrMaxStartTime = pitrMaxStartTime;
Review Comment:
I see. Make it final then.
```java
final long finalPitrMaxStartTime = pitrMaxStartTime;
```
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "vinayakphegde (via GitHub)" <gi...@apache.org>.
vinayakphegde commented on code in PR #6848:
URL: https://github.com/apache/hbase/pull/6848#discussion_r2030447009
##########
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java:
##########
@@ -695,12 +707,161 @@ private void executeDeleteListOfBackups(CommandLine cmdline) throws IOException
}
+ /**
+ * Validates whether the specified backups can be deleted while preserving Point-In-Time
+ * Recovery (PITR) capabilities. If a backup is the only remaining full backup enabling PITR for
+ * certain tables, deletion is prevented unless forced.
+ * @param backupIds Array of backup IDs to validate.
+ * @param isForceDelete Flag indicating whether deletion should proceed regardless of PITR
+ * constraints.
+ * @throws IOException If a backup is essential for PITR and force deletion is not enabled.
+ */
+ private void validatePITRBackupDeletion(String[] backupIds, boolean isForceDelete)
+ throws IOException {
+ if (!isForceDelete) {
+ for (String backupId : backupIds) {
+ List<TableName> affectedTables = getTablesDependentOnBackupForPITR(backupId);
+ if (!affectedTables.isEmpty()) {
+ String errMsg = String.format(
+ "Backup %s is the only FULL backup remaining that enables PITR for tables: %s. "
+ + "Use the force option to delete it anyway.",
+ backupId, affectedTables);
+ System.err.println(errMsg);
+ throw new IOException(errMsg);
+ }
+ }
+ }
+ }
+
+ /**
+ * Identifies tables that rely on the specified backup for PITR. If a table has no other valid
+ * FULL backups that can facilitate recovery to all points within the PITR retention window, it
+ * is added to the dependent list.
+ * @param backupId The backup ID being evaluated.
+ * @return List of tables dependent on the specified backup for PITR.
+ * @throws IOException If backup metadata cannot be retrieved.
+ */
+ private List<TableName> getTablesDependentOnBackupForPITR(String backupId) throws IOException {
+ List<TableName> dependentTables = new ArrayList<>();
+
+ try (final BackupSystemTable backupSystemTable = new BackupSystemTable(conn)) {
+ List<BackupInfo> backupHistory = backupSystemTable.getBackupInfos(BackupState.COMPLETE);
+ BackupInfo targetBackup = backupSystemTable.readBackupInfo(backupId);
+
+ if (targetBackup == null) {
+ throw new IOException("Backup info not found for backupId: " + backupId);
+ }
+
+ // Only full backups are mandatory for PITR
+ if (!BackupType.FULL.equals(targetBackup.getType())) {
+ return List.of();
+ }
+
+ // Retrieve the tables with continuous backup enabled and their start times
+ Map<TableName, Long> continuousBackupStartTimes =
+ backupSystemTable.getContinuousBackupTableSet();
+
+ // Determine the PITR time window
+ long pitrWindowDays = getConf().getLong(CONF_CONTINUOUS_BACKUP_PITR_WINDOW_DAYS,
+ DEFAULT_CONTINUOUS_BACKUP_PITR_WINDOW_DAYS);
+ long currentTime = EnvironmentEdgeManager.getDelegate().currentTime();
+ long pitrMaxStartTime = currentTime - TimeUnit.DAYS.toMillis(pitrWindowDays);
+
+ // For all tables, determine the earliest (minimum) continuous backup start time.
+ // This represents the actual earliest point-in-time recovery (PITR) timestamp
+ // that can be used, ensuring we do not go beyond the available backup data.
+ long minContinuousBackupStartTime = currentTime;
+ for (TableName table : targetBackup.getTableNames()) {
+ minContinuousBackupStartTime = Math.min(minContinuousBackupStartTime,
+ continuousBackupStartTimes.getOrDefault(table, currentTime));
+ }
+
+ // The PITR max start time should be the maximum of the calculated minimum continuous backup
+ // start time and the default PITR max start time (based on the configured window).
+ // This ensures that PITR does not extend beyond what is practically possible.
+ pitrMaxStartTime = Math.max(minContinuousBackupStartTime, pitrMaxStartTime);
+
+ for (TableName table : targetBackup.getTableNames()) {
+ // This backup is not necessary for this table since it doesn't have PITR enabled
+ if (!continuousBackupStartTimes.containsKey(table)) {
+ continue;
+ }
+ if (
+ !isValidPITRBackup(targetBackup, table, continuousBackupStartTimes, pitrMaxStartTime)
+ ) {
+ continue; // This backup is not crucial for PITR of this table
+ }
+
+ // Check if another valid full backup exists for this table
+ long finalPitrMaxStartTime = pitrMaxStartTime;
Review Comment:
Otherwise we'll get this error: `Variable used in lambda expression should be final or effectively final`
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "anmolnar (via GitHub)" <gi...@apache.org>.
anmolnar commented on code in PR #6848:
URL: https://github.com/apache/hbase/pull/6848#discussion_r2029409379
##########
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java:
##########
@@ -695,12 +707,161 @@ private void executeDeleteListOfBackups(CommandLine cmdline) throws IOException
}
+ /**
+ * Validates whether the specified backups can be deleted while preserving Point-In-Time
+ * Recovery (PITR) capabilities. If a backup is the only remaining full backup enabling PITR for
+ * certain tables, deletion is prevented unless forced.
+ * @param backupIds Array of backup IDs to validate.
+ * @param isForceDelete Flag indicating whether deletion should proceed regardless of PITR
+ * constraints.
+ * @throws IOException If a backup is essential for PITR and force deletion is not enabled.
+ */
+ private void validatePITRBackupDeletion(String[] backupIds, boolean isForceDelete)
+ throws IOException {
+ if (!isForceDelete) {
+ for (String backupId : backupIds) {
+ List<TableName> affectedTables = getTablesDependentOnBackupForPITR(backupId);
+ if (!affectedTables.isEmpty()) {
+ String errMsg = String.format(
+ "Backup %s is the only FULL backup remaining that enables PITR for tables: %s. "
+ + "Use the force option to delete it anyway.",
+ backupId, affectedTables);
+ System.err.println(errMsg);
+ throw new IOException(errMsg);
+ }
+ }
+ }
+ }
+
+ /**
+ * Identifies tables that rely on the specified backup for PITR. If a table has no other valid
+ * FULL backups that can facilitate recovery to all points within the PITR retention window, it
+ * is added to the dependent list.
+ * @param backupId The backup ID being evaluated.
+ * @return List of tables dependent on the specified backup for PITR.
+ * @throws IOException If backup metadata cannot be retrieved.
+ */
+ private List<TableName> getTablesDependentOnBackupForPITR(String backupId) throws IOException {
+ List<TableName> dependentTables = new ArrayList<>();
+
+ try (final BackupSystemTable backupSystemTable = new BackupSystemTable(conn)) {
+ List<BackupInfo> backupHistory = backupSystemTable.getBackupInfos(BackupState.COMPLETE);
+ BackupInfo targetBackup = backupSystemTable.readBackupInfo(backupId);
+
+ if (targetBackup == null) {
+ throw new IOException("Backup info not found for backupId: " + backupId);
+ }
+
+ // Only full backups are mandatory for PITR
+ if (!BackupType.FULL.equals(targetBackup.getType())) {
+ return List.of();
+ }
+
+ // Retrieve the tables with continuous backup enabled and their start times
+ Map<TableName, Long> continuousBackupStartTimes =
+ backupSystemTable.getContinuousBackupTableSet();
+
+ // Determine the PITR time window
+ long pitrWindowDays = getConf().getLong(CONF_CONTINUOUS_BACKUP_PITR_WINDOW_DAYS,
+ DEFAULT_CONTINUOUS_BACKUP_PITR_WINDOW_DAYS);
+ long currentTime = EnvironmentEdgeManager.getDelegate().currentTime();
+ long pitrMaxStartTime = currentTime - TimeUnit.DAYS.toMillis(pitrWindowDays);
+
+ // For all tables, determine the earliest (minimum) continuous backup start time.
+ // This represents the actual earliest point-in-time recovery (PITR) timestamp
+ // that can be used, ensuring we do not go beyond the available backup data.
+ long minContinuousBackupStartTime = currentTime;
+ for (TableName table : targetBackup.getTableNames()) {
+ minContinuousBackupStartTime = Math.min(minContinuousBackupStartTime,
+ continuousBackupStartTimes.getOrDefault(table, currentTime));
+ }
+
+ // The PITR max start time should be the maximum of the calculated minimum continuous backup
+ // start time and the default PITR max start time (based on the configured window).
+ // This ensures that PITR does not extend beyond what is practically possible.
+ pitrMaxStartTime = Math.max(minContinuousBackupStartTime, pitrMaxStartTime);
+
+ for (TableName table : targetBackup.getTableNames()) {
+ // This backup is not necessary for this table since it doesn't have PITR enabled
+ if (!continuousBackupStartTimes.containsKey(table)) {
+ continue;
+ }
+ if (
+ !isValidPITRBackup(targetBackup, table, continuousBackupStartTimes, pitrMaxStartTime)
+ ) {
+ continue; // This backup is not crucial for PITR of this table
+ }
+
+ // Check if another valid full backup exists for this table
+ long finalPitrMaxStartTime = pitrMaxStartTime;
Review Comment:
Why do you need to introduce this new variable?
##########
hbase-backup/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java:
##########
@@ -183,4 +188,86 @@ public void testBackupDeleteUpdatesIncrementalBackupSet() throws Exception {
assertEquals(Sets.newHashSet(table3),
backupSystemTable.getIncrementalBackupTableSet(BACKUP_ROOT_DIR));
}
+
+ @Test
+ public void testPITRBackupDeletion() throws Exception {
Review Comment:
I prefer to implement multiple test methods for the different test scenarios where the method name can declare which scenario is being tested exactly. setup() and teardown() methods are good for setting up and deleting a fresh environment for every test run. Since tests are running in isolation, a test failure indicates which scenario is broken. Cost of setting up and destroying the environment every time doesn't matter that much and benefits are more important.
##########
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java:
##########
@@ -695,12 +707,161 @@ private void executeDeleteListOfBackups(CommandLine cmdline) throws IOException
}
+ /**
+ * Validates whether the specified backups can be deleted while preserving Point-In-Time
+ * Recovery (PITR) capabilities. If a backup is the only remaining full backup enabling PITR for
+ * certain tables, deletion is prevented unless forced.
+ * @param backupIds Array of backup IDs to validate.
+ * @param isForceDelete Flag indicating whether deletion should proceed regardless of PITR
+ * constraints.
+ * @throws IOException If a backup is essential for PITR and force deletion is not enabled.
+ */
+ private void validatePITRBackupDeletion(String[] backupIds, boolean isForceDelete)
+ throws IOException {
+ if (!isForceDelete) {
+ for (String backupId : backupIds) {
+ List<TableName> affectedTables = getTablesDependentOnBackupForPITR(backupId);
+ if (!affectedTables.isEmpty()) {
+ String errMsg = String.format(
+ "Backup %s is the only FULL backup remaining that enables PITR for tables: %s. "
+ + "Use the force option to delete it anyway.",
+ backupId, affectedTables);
+ System.err.println(errMsg);
+ throw new IOException(errMsg);
+ }
+ }
+ }
+ }
+
+ /**
+ * Identifies tables that rely on the specified backup for PITR. If a table has no other valid
+ * FULL backups that can facilitate recovery to all points within the PITR retention window, it
+ * is added to the dependent list.
+ * @param backupId The backup ID being evaluated.
+ * @return List of tables dependent on the specified backup for PITR.
+ * @throws IOException If backup metadata cannot be retrieved.
+ */
+ private List<TableName> getTablesDependentOnBackupForPITR(String backupId) throws IOException {
+ List<TableName> dependentTables = new ArrayList<>();
+
+ try (final BackupSystemTable backupSystemTable = new BackupSystemTable(conn)) {
+ List<BackupInfo> backupHistory = backupSystemTable.getBackupInfos(BackupState.COMPLETE);
+ BackupInfo targetBackup = backupSystemTable.readBackupInfo(backupId);
Review Comment:
nit: You can swap the order of these calls, because `backupHistory` is only needed later.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "wchevreuil (via GitHub)" <gi...@apache.org>.
wchevreuil commented on code in PR #6848:
URL: https://github.com/apache/hbase/pull/6848#discussion_r2035549590
##########
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupCommands.java:
##########
@@ -695,12 +707,161 @@ private void executeDeleteListOfBackups(CommandLine cmdline) throws IOException
}
+ /**
+ * Validates whether the specified backups can be deleted while preserving Point-In-Time
+ * Recovery (PITR) capabilities. If a backup is the only remaining full backup enabling PITR for
+ * certain tables, deletion is prevented unless forced.
+ * @param backupIds Array of backup IDs to validate.
+ * @param isForceDelete Flag indicating whether deletion should proceed regardless of PITR
+ * constraints.
+ * @throws IOException If a backup is essential for PITR and force deletion is not enabled.
+ */
+ private void validatePITRBackupDeletion(String[] backupIds, boolean isForceDelete)
+ throws IOException {
+ if (!isForceDelete) {
+ for (String backupId : backupIds) {
+ List<TableName> affectedTables = getTablesDependentOnBackupForPITR(backupId);
+ if (!affectedTables.isEmpty()) {
+ String errMsg = String.format(
+ "Backup %s is the only FULL backup remaining that enables PITR for tables: %s. "
+ + "Use the force option to delete it anyway.",
+ backupId, affectedTables);
+ System.err.println(errMsg);
+ throw new IOException(errMsg);
+ }
+ }
+ }
+ }
+
+ /**
+ * Identifies tables that rely on the specified backup for PITR. If a table has no other valid
+ * FULL backups that can facilitate recovery to all points within the PITR retention window, it
+ * is added to the dependent list.
+ * @param backupId The backup ID being evaluated.
+ * @return List of tables dependent on the specified backup for PITR.
+ * @throws IOException If backup metadata cannot be retrieved.
+ */
+ private List<TableName> getTablesDependentOnBackupForPITR(String backupId) throws IOException {
+ List<TableName> dependentTables = new ArrayList<>();
+
+ try (final BackupSystemTable backupSystemTable = new BackupSystemTable(conn)) {
+ BackupInfo targetBackup = backupSystemTable.readBackupInfo(backupId);
+
+ if (targetBackup == null) {
+ throw new IOException("Backup info not found for backupId: " + backupId);
+ }
+
+ // Only full backups are mandatory for PITR
+ if (!BackupType.FULL.equals(targetBackup.getType())) {
+ return List.of();
+ }
+
+ // Retrieve the tables with continuous backup enabled and their start times
+ Map<TableName, Long> continuousBackupStartTimes =
+ backupSystemTable.getContinuousBackupTableSet();
+
+ // Determine the PITR time window
+ long pitrWindowDays = getConf().getLong(CONF_CONTINUOUS_BACKUP_PITR_WINDOW_DAYS,
+ DEFAULT_CONTINUOUS_BACKUP_PITR_WINDOW_DAYS);
+ long currentTime = EnvironmentEdgeManager.getDelegate().currentTime();
+ long pitrMaxStartTime = currentTime - TimeUnit.DAYS.toMillis(pitrWindowDays);
+
+ // For all tables, determine the earliest (minimum) continuous backup start time.
+ // This represents the actual earliest point-in-time recovery (PITR) timestamp
+ // that can be used, ensuring we do not go beyond the available backup data.
+ long minContinuousBackupStartTime = currentTime;
+ for (TableName table : targetBackup.getTableNames()) {
+ minContinuousBackupStartTime = Math.min(minContinuousBackupStartTime,
+ continuousBackupStartTimes.getOrDefault(table, currentTime));
+ }
+
+ // The PITR max start time should be the maximum of the calculated minimum continuous backup
+ // start time and the default PITR max start time (based on the configured window).
+ // This ensures that PITR does not extend beyond what is practically possible.
+ pitrMaxStartTime = Math.max(minContinuousBackupStartTime, pitrMaxStartTime);
+
+ for (TableName table : targetBackup.getTableNames()) {
+ // This backup is not necessary for this table since it doesn't have PITR enabled
+ if (!continuousBackupStartTimes.containsKey(table)) {
+ continue;
+ }
+ if (
+ !isValidPITRBackup(targetBackup, table, continuousBackupStartTimes, pitrMaxStartTime)
+ ) {
+ continue; // This backup is not crucial for PITR of this table
+ }
+
+ // Check if another valid full backup exists for this table
+ List<BackupInfo> backupHistory = backupSystemTable.getBackupInfos(BackupState.COMPLETE);
+ final long finalPitrMaxStartTime = pitrMaxStartTime;
Review Comment:
nit: declare pitrMaxStartTime as a final MutableLong, then no need to use extra variable here.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "wchevreuil (via GitHub)" <gi...@apache.org>.
wchevreuil merged PR #6848:
URL: https://github.com/apache/hbase/pull/6848
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2782307761
:broken_heart: **-1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 0m 30s | | Docker mode activated. |
| -0 :warning: | yetus | 0m 2s | | Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck |
|||| _ Prechecks _ |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 15s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 0m 18s | | HBASE-28957 passed |
| +1 :green_heart: | javadoc | 0m 14s | | HBASE-28957 passed |
| +1 :green_heart: | shadedjars | 5m 54s | | branch has no errors when building our shaded downstream artifacts. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 2s | | the patch passed |
| +1 :green_heart: | compile | 0m 18s | | the patch passed |
| +1 :green_heart: | javac | 0m 18s | | the patch passed |
| +1 :green_heart: | javadoc | 0m 13s | | the patch passed |
| +1 :green_heart: | shadedjars | 5m 52s | | patch has no errors when building our shaded downstream artifacts. |
|||| _ Other Tests _ |
| -1 :x: | unit | 20m 22s | [/patch-unit-hbase-backup.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/3/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-backup.txt) | hbase-backup in the patch failed. |
| | | 41m 12s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/3/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | javac javadoc unit compile shadedjars |
| uname | Linux 6a0706c8b98b 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 | HBASE-28957 / 14008d5bf59ca5a9d52e328fb19586574d195847 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Test Results | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/3/testReport/ |
| Max. process+thread count | 3714 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/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.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2782281251
:confetti_ball: **+1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 0m 32s | | Docker mode activated. |
|||| _ Prechecks _ |
| +1 :green_heart: | dupname | 0m 0s | | No case conflicting files found. |
| +0 :ok: | codespell | 0m 0s | | codespell was not available. |
| +0 :ok: | detsecrets | 0m 0s | | detect-secrets 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. |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 18s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 0m 32s | | HBASE-28957 passed |
| +1 :green_heart: | checkstyle | 0m 12s | | HBASE-28957 passed |
| +1 :green_heart: | spotbugs | 0m 30s | | HBASE-28957 passed |
| +1 :green_heart: | spotless | 0m 46s | | branch has no errors when running spotless:check. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 3s | | the patch passed |
| +1 :green_heart: | compile | 0m 29s | | the patch passed |
| +1 :green_heart: | javac | 0m 29s | | the patch passed |
| +1 :green_heart: | blanks | 0m 0s | | The patch has no blanks issues. |
| +1 :green_heart: | checkstyle | 0m 9s | | the patch passed |
| +1 :green_heart: | spotbugs | 0m 35s | | the patch passed |
| +1 :green_heart: | hadoopcheck | 11m 49s | | Patch does not cause any errors with Hadoop 3.3.6 3.4.0. |
| +1 :green_heart: | spotless | 0m 44s | | patch has no errors when running spotless:check. |
|||| _ Other Tests _ |
| +1 :green_heart: | asflicense | 0m 10s | | The patch does not generate ASF License warnings. |
| | | 30m 10s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/3/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless |
| uname | Linux 3a8c78a8fdd7 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 | HBASE-28957 / 14008d5bf59ca5a9d52e328fb19586574d195847 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Max. process+thread count | 83 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/3/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2784716580
:broken_heart: **-1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 0m 27s | | Docker mode activated. |
| -0 :warning: | yetus | 0m 3s | | Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck |
|||| _ Prechecks _ |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 16s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 0m 19s | | HBASE-28957 passed |
| +1 :green_heart: | javadoc | 0m 15s | | HBASE-28957 passed |
| +1 :green_heart: | shadedjars | 6m 0s | | branch has no errors when building our shaded downstream artifacts. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 5s | | the patch passed |
| +1 :green_heart: | compile | 0m 19s | | the patch passed |
| +1 :green_heart: | javac | 0m 19s | | the patch passed |
| +1 :green_heart: | javadoc | 0m 13s | | the patch passed |
| +1 :green_heart: | shadedjars | 5m 59s | | patch has no errors when building our shaded downstream artifacts. |
|||| _ Other Tests _ |
| -1 :x: | unit | 21m 36s | [/patch-unit-hbase-backup.txt](https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/4/artifact/yetus-jdk17-hadoop3-check/output/patch-unit-hbase-backup.txt) | hbase-backup in the patch failed. |
| | | 42m 26s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/4/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | javac javadoc unit compile shadedjars |
| uname | Linux bca45d841f05 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 | HBASE-28957 / 27e92cd2481b11936a1d9ea42744c072c4cf5472 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Test Results | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/4/testReport/ |
| Max. process+thread count | 3667 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/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.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2788316255
:confetti_ball: **+1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 3m 28s | | Docker mode activated. |
|||| _ Prechecks _ |
| +1 :green_heart: | dupname | 0m 0s | | No case conflicting files found. |
| +0 :ok: | codespell | 0m 0s | | codespell was not available. |
| +0 :ok: | detsecrets | 0m 0s | | detect-secrets 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. |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 4m 3s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 0m 40s | | HBASE-28957 passed |
| +1 :green_heart: | checkstyle | 0m 11s | | HBASE-28957 passed |
| +1 :green_heart: | spotbugs | 0m 39s | | HBASE-28957 passed |
| +1 :green_heart: | spotless | 0m 54s | | branch has no errors when running spotless:check. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 3m 42s | | the patch passed |
| +1 :green_heart: | compile | 0m 40s | | the patch passed |
| +1 :green_heart: | javac | 0m 40s | | the patch passed |
| +1 :green_heart: | blanks | 0m 0s | | The patch has no blanks issues. |
| +1 :green_heart: | checkstyle | 0m 17s | | the patch passed |
| +1 :green_heart: | spotbugs | 0m 48s | | the patch passed |
| +1 :green_heart: | hadoopcheck | 13m 36s | | Patch does not cause any errors with Hadoop 3.3.6 3.4.0. |
| +1 :green_heart: | spotless | 0m 56s | | patch has no errors when running spotless:check. |
|||| _ Other Tests _ |
| +1 :green_heart: | asflicense | 0m 12s | | The patch does not generate ASF License warnings. |
| | | 38m 17s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/5/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless |
| uname | Linux 7913d31f12d3 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 | HBASE-28957 / e3b166ede9c6f6673dd3dc458d3d2d82f3ad1792 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Max. process+thread count | 83 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/5/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] HBASE-29210: Introduce Validation for PITR-Critical Backup Deletion [hbase]
Posted by "Apache-HBase (via GitHub)" <gi...@apache.org>.
Apache-HBase commented on PR #6848:
URL: https://github.com/apache/hbase/pull/6848#issuecomment-2790616760
:confetti_ball: **+1 overall**
| Vote | Subsystem | Runtime | Logfile | Comment |
|:----:|----------:|--------:|:--------:|:-------:|
| +0 :ok: | reexec | 0m 32s | | Docker mode activated. |
|||| _ Prechecks _ |
| +1 :green_heart: | dupname | 0m 1s | | No case conflicting files found. |
| +0 :ok: | codespell | 0m 0s | | codespell was not available. |
| +0 :ok: | detsecrets | 0m 0s | | detect-secrets 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. |
|||| _ HBASE-28957 Compile Tests _ |
| +1 :green_heart: | mvninstall | 4m 15s | | HBASE-28957 passed |
| +1 :green_heart: | compile | 1m 9s | | HBASE-28957 passed |
| +1 :green_heart: | checkstyle | 0m 22s | | HBASE-28957 passed |
| +1 :green_heart: | spotbugs | 0m 40s | | HBASE-28957 passed |
| +1 :green_heart: | spotless | 0m 53s | | branch has no errors when running spotless:check. |
|||| _ Patch Compile Tests _ |
| +1 :green_heart: | mvninstall | 4m 13s | | the patch passed |
| +1 :green_heart: | compile | 0m 56s | | the patch passed |
| +1 :green_heart: | javac | 0m 56s | | the patch passed |
| +1 :green_heart: | blanks | 0m 0s | | The patch has no blanks issues. |
| +1 :green_heart: | checkstyle | 0m 16s | | the patch passed |
| +1 :green_heart: | spotbugs | 0m 51s | | the patch passed |
| +1 :green_heart: | hadoopcheck | 14m 5s | | Patch does not cause any errors with Hadoop 3.3.6 3.4.0. |
| +1 :green_heart: | spotless | 0m 51s | | patch has no errors when running spotless:check. |
|||| _ Other Tests _ |
| +1 :green_heart: | asflicense | 0m 11s | | The patch does not generate ASF License warnings. |
| | | 37m 21s | | |
| Subsystem | Report/Notes |
|----------:|:-------------|
| Docker | ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/6/artifact/yetus-general-check/output/Dockerfile |
| GITHUB PR | https://github.com/apache/hbase/pull/6848 |
| JIRA Issue | HBASE-29210 |
| Optional Tests | dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless |
| uname | Linux bb3ae20e3c15 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 | HBASE-28957 / 821f57bd50330173e96d1d8fdb94736565bf06c6 |
| Default Java | Eclipse Adoptium-17.0.11+9 |
| Max. process+thread count | 87 (vs. ulimit of 30000) |
| modules | C: hbase-backup U: hbase-backup |
| Console output | https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6848/6/console |
| versions | git=2.34.1 maven=3.9.8 spotbugs=4.7.3 |
| Powered by | Apache Yetus 0.15.0 https://yetus.apache.org |
This message was automatically generated.
--
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: issues-unsubscribe@hbase.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org