Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HBASE-27201 Clean up error-prone findings in hbase-backup #4622

Closed
wants to merge 2 commits into from

Conversation

apurtell
Copy link
Contributor

No description provided.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 39s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚 mvninstall 2m 43s master passed
+1 💚 compile 0m 15s master passed
+1 💚 shadedjars 3m 48s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 13s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 2m 28s the patch passed
+1 💚 compile 0m 15s the patch passed
+1 💚 javac 0m 15s the patch passed
+1 💚 shadedjars 3m 47s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 11s the patch passed
_ Other Tests _
-1 ❌ unit 12m 18s hbase-backup in the patch failed.
27m 39s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4622
Optional Tests javac javadoc unit shadedjars compile
uname Linux f8d43734863b 5.4.0-1071-aws #76~18.04.1-Ubuntu SMP Mon Mar 28 17:49:57 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 01b45e2
Default Java AdoptOpenJDK-11.0.10+9
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-backup.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/1/testReport/
Max. process+thread count 2981 (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-4622/1/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 2m 16s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚 mvninstall 2m 32s master passed
+1 💚 compile 0m 15s master passed
+1 💚 shadedjars 3m 52s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 13s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 2m 22s the patch passed
+1 💚 compile 0m 16s the patch passed
+1 💚 javac 0m 16s the patch passed
+1 💚 shadedjars 3m 50s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 11s the patch passed
_ Other Tests _
-1 ❌ unit 13m 3s hbase-backup in the patch failed.
29m 49s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4622
Optional Tests javac javadoc unit shadedjars compile
uname Linux 20db13b7bf08 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 01b45e2
Default Java AdoptOpenJDK-1.8.0_282-b08
unit https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/1/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-backup.txt
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/1/testReport/
Max. process+thread count 2993 (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-4622/1/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

💔 -1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 34s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+1 💚 mvninstall 3m 2s master passed
+1 💚 compile 0m 31s master passed
+1 💚 checkstyle 0m 12s master passed
+1 💚 spotless 0m 55s branch has no errors when running spotless:check.
+1 💚 spotbugs 0m 39s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 3m 8s the patch passed
+1 💚 compile 0m 31s the patch passed
+1 💚 javac 0m 31s hbase-backup generated 0 new + 0 unchanged - 52 fixed = 0 total (was 52)
+1 💚 checkstyle 0m 11s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 15m 5s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚 spotless 1m 0s patch has no errors when running spotless:check.
-1 ❌ spotbugs 0m 48s hbase-backup generated 6 new + 0 unchanged - 0 fixed = 6 total (was 0)
_ Other Tests _
+1 💚 asflicense 0m 15s The patch does not generate ASF License warnings.
33m 36s
Reason Tests
FindBugs module:hbase-backup
Impossible downcast of toArray() result to org.apache.hadoop.hbase.TableName[] in org.apache.hadoop.hbase.backup.impl.BackupCommands$BackupSetCommand.processSetAdd(String[]) At BackupCommands.java:to org.apache.hadoop.hbase.TableName[] in org.apache.hadoop.hbase.backup.impl.BackupCommands$BackupSetCommand.processSetAdd(String[]) At BackupCommands.java:[line 1093]
Impossible downcast of toArray() result to String[] in org.apache.hadoop.hbase.backup.impl.BackupSystemTable.getRegionNameFromOrigBulkLoadRow(String) At BackupSystemTable.java:to String[] in org.apache.hadoop.hbase.backup.impl.BackupSystemTable.getRegionNameFromOrigBulkLoadRow(String) At BackupSystemTable.java:[line 1751]
Impossible downcast of toArray() result to String[] in org.apache.hadoop.hbase.backup.impl.BackupSystemTable.getTableNameFromOrigBulkLoadRow(String) At BackupSystemTable.java:to String[] in org.apache.hadoop.hbase.backup.impl.BackupSystemTable.getTableNameFromOrigBulkLoadRow(String) At BackupSystemTable.java:[line 1745]
Impossible downcast of toArray() result to String[] in org.apache.hadoop.hbase.backup.util.BackupUtils.findMostRecentBackupId(String[]) At BackupUtils.java:to String[] in org.apache.hadoop.hbase.backup.util.BackupUtils.findMostRecentBackupId(String[]) At BackupUtils.java:[line 741]
Impossible downcast of toArray() result to String[] in org.apache.hadoop.hbase.backup.util.BackupUtils.parseTableNames(String) At BackupUtils.java:to String[] in org.apache.hadoop.hbase.backup.util.BackupUtils.parseTableNames(String) At BackupUtils.java:[line 287]
Impossible downcast of toArray() result to String[] in org.apache.hadoop.hbase.backup.util.BackupUtils$1.getTimestamp(String) At BackupUtils.java:to String[] in org.apache.hadoop.hbase.backup.util.BackupUtils$1.getTimestamp(String) At BackupUtils.java:[line 601]
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4622
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 5627ce41fd98 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 01b45e2
Default Java AdoptOpenJDK-1.8.0_282-b08
spotbugs https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/1/artifact/yetus-general-check/output/new-spotbugs-hbase-backup.html
Max. process+thread count 64 (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-4622/1/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 39s Docker mode activated.
-0 ⚠️ yetus 0m 3s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚 mvninstall 2m 23s master passed
+1 💚 compile 0m 15s master passed
+1 💚 shadedjars 3m 48s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 11s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 2m 31s the patch passed
+1 💚 compile 0m 15s the patch passed
+1 💚 javac 0m 15s the patch passed
+1 💚 shadedjars 3m 47s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 11s the patch passed
_ Other Tests _
+1 💚 unit 9m 40s hbase-backup in the patch passed.
24m 42s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR #4622
Optional Tests javac javadoc unit shadedjars compile
uname Linux 7cd41c68ca82 5.4.0-1071-aws #76~18.04.1-Ubuntu SMP Mon Mar 28 17:49:57 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 01b45e2
Default Java AdoptOpenJDK-11.0.10+9
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/2/testReport/
Max. process+thread count 2997 (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-4622/2/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 0m 41s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+1 💚 hbaseanti 0m 0s Patch does not have any anti-patterns.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ master Compile Tests _
+1 💚 mvninstall 2m 30s master passed
+1 💚 compile 0m 23s master passed
+1 💚 checkstyle 0m 8s master passed
+1 💚 spotless 0m 41s branch has no errors when running spotless:check.
+1 💚 spotbugs 0m 26s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 2m 6s the patch passed
+1 💚 compile 0m 22s the patch passed
+1 💚 javac 0m 22s hbase-backup generated 0 new + 0 unchanged - 52 fixed = 0 total (was 52)
+1 💚 checkstyle 0m 7s the patch passed
+1 💚 whitespace 0m 0s The patch has no whitespace issues.
+1 💚 hadoopcheck 11m 50s Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.
+1 💚 spotless 0m 39s patch has no errors when running spotless:check.
+1 💚 spotbugs 0m 29s the patch passed
_ Other Tests _
+1 💚 asflicense 0m 9s The patch does not generate ASF License warnings.
25m 50s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/2/artifact/yetus-general-check/output/Dockerfile
GITHUB PR #4622
Optional Tests dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
uname Linux 0654daf31d55 5.4.0-1025-aws #25~18.04.1-Ubuntu SMP Fri Sep 11 12:03:04 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 01b45e2
Default Java AdoptOpenJDK-1.8.0_282-b08
Max. process+thread count 69 (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-4622/2/console
versions git=2.17.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase
Copy link

🎊 +1 overall

Vote Subsystem Runtime Comment
+0 🆗 reexec 1m 9s Docker mode activated.
-0 ⚠️ yetus 0m 2s Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+1 💚 mvninstall 2m 28s master passed
+1 💚 compile 0m 16s master passed
+1 💚 shadedjars 3m 44s branch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 14s master passed
_ Patch Compile Tests _
+1 💚 mvninstall 2m 17s the patch passed
+1 💚 compile 0m 16s the patch passed
+1 💚 javac 0m 16s the patch passed
+1 💚 shadedjars 3m 42s patch has no errors when building our shaded downstream artifacts.
+1 💚 javadoc 0m 13s the patch passed
_ Other Tests _
+1 💚 unit 10m 45s hbase-backup in the patch passed.
26m 10s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR #4622
Optional Tests javac javadoc unit shadedjars compile
uname Linux c14508a31575 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/hbase-personality.sh
git revision master / 01b45e2
Default Java AdoptOpenJDK-1.8.0_282-b08
Test Results https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4622/2/testReport/
Max. process+thread count 2919 (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-4622/2/console
versions git=2.17.1 maven=3.6.3
Powered by Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@@ -1639,7 +1642,7 @@ public String[] getListOfBackupIdsFromDeleteOperation() throws IOException {
if (val.length == 0) {
return null;
}
return new String(val).split(",");
return new String(val, StandardCharsets.UTF_8).split(",");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this will introduce another error prone warning? Use guava's Splitter.on

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does not.

@@ -1720,7 +1723,7 @@ public String[] getListOfBackupIdsFromMergeOperation() throws IOException {
if (val.length == 0) {
return null;
}
return new String(val).split(",");
return new String(val, StandardCharsets.UTF_8).split(",");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does not produce a warning, because stringsplitter warnings are suppressed.

@@ -1736,11 +1739,13 @@ static Scan createScanForOrigBulkLoadedFiles(TableName table) {
return scan;
}

@SuppressWarnings("StringSplitter")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we have shaded guava, I think it is OK for use to make use of guava's Splitter.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's nothing wrong with string.split in these applications and when I used Splitter it caused more trouble than it was worth.

static String getTableNameFromOrigBulkLoadRow(String rowStr) {
String[] parts = rowStr.split(BLK_LD_DELIM);
return parts[1];
}

@SuppressWarnings("StringSplitter")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto.

@@ -275,12 +276,12 @@ public static List<String> getWALFilesOlderThan(final Configuration c,
return logFiles;
}

@SuppressWarnings("StringSplitter")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DItto.

@@ -593,6 +594,7 @@ public int compare(BackupInfo o1, BackupInfo o2) {
return ts1 < ts2 ? 1 : -1;
}

@SuppressWarnings("StringSplitter")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto.

@@ -731,6 +733,7 @@ public static BulkLoadHFiles createLoader(Configuration config) {
return BulkLoadHFiles.create(conf);
}

@SuppressWarnings("StringSplitter")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto.

@apurtell
Copy link
Contributor Author

apurtell commented Jul 18, 2022

@Apache9 It is fine to handle the string split warnings some other way, but I thought I would take this approach. I had a bit of trouble actually using Splitter. I'm sure I could figure it out but there are other things that seem more important. string#split works in these cases and is good enough IMHO. Is this ok?

Or, we could just leave these in place and also not add the @SuppressWarnings("StringSplitter"), that is fine with me too. In other words, no change for the string#split cases.

@apurtell
Copy link
Contributor Author

apurtell commented Jul 18, 2022

Lets apply the new spotless rule for the automated fix for many of the javadoc issues, and then come back to this PR.

@apurtell apurtell marked this pull request as draft July 18, 2022 22:54
@Apache9
Copy link
Contributor

Apache9 commented Jul 19, 2022

@Apache9 It is fine to handle the string split warnings some other way, but I thought I would take this approach. I had a bit of trouble actually using Splitter. I'm sure I could figure it out but there are other things that seem more important. string#split works in these cases and is good enough IMHO. Is this ok?

Or, we could just leave these in place and also not add the @SuppressWarnings("StringSplitter"), that is fine with me too. In other words, no change for the string#split cases.

Usually there is no harm to use String.split, as long as it has been like this for a long time in our code base, so I'm OK with leaving it as is or adding a SuppressWarnings.
Out of interest, what is the problem when using Splitter? It is just a Splitter.on().splitToList().

Thanks.

@apurtell apurtell closed this Jul 22, 2022
@apurtell apurtell deleted the HBASE-27201 branch July 22, 2022 23:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants