You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by GitBox <gi...@apache.org> on 2020/07/13 15:35:36 UTC

[GitHub] [hbase] bitoffdev opened a new pull request #2058: HBASE-24722 Update commands with unintentional return values

bitoffdev opened a new pull request #2058:
URL: https://github.com/apache/hbase/pull/2058


   Resolves https://issues.apache.org/jira/browse/HBASE-24722
   
   ## Changelog
   
   - Prior to this commit, there were 13 commands that unintentionally return the
     number of lines they print (usually one). This commit ensures that they
     return the value documented by the help text, or nil if there is not a simple
     logical value to return.
   - Fixes 6 hbase-shell commands that return String rather than TrueClass or
     FalseClass
   - Use double-bang to cast truthy values to TrueClass and FalseClass so that
     ruby's to_s can reliably print true or false without using ternary operators
   - Updates tests for is_disabled, is_enabled, disable_rpc_throttle,
     enable_rpc_throttle, disable_exceed_throttle_quota,
     enable_exceed_throttle_quota, clear_deadservers, snapshot_cleanup_switch,
     snapshot_cleanup_enabled, and balancer to check return values
   - Adds new tests for balance_switch, balancer_enabled, normalizer_switch,
     normalizer_enabled, catalog_janitor_switch, catalogjanitor_enabled,
     cleaner_chore_switch, cleaner_chore_enabled, splitormerge_switch, and
     splitormerge_enabled
   
   _Note that the many assertions with explicit comparisons to booleans are intentional (ie. `assert(return_value == false)`). In ruby, this test makes sure that return value is actually an instance of TrueClass or FalseClass, which makes these tests much more potent. Since every ruby object can be cast to a boolean, we don't want to just `assert(return_value)`._
   
   ## Testing
   
   - Of the 19 commands updated, 17 are covered by unit testing (a number of the unit tests are introduced by this PR).
   - I manually tested my changes to the 2 commands not covered by unit tests: normalize and clear_block_cache. I'd love to get these commands covered as well, but I believe that is out of scope for this ticket since testing those commands should be a little more extensive.


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] madrob commented on a change in pull request #2058: HBASE-24722 Update commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
madrob commented on a change in pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#discussion_r453755216



##########
File path: hbase-shell/src/main/ruby/shell/commands/balancer.rb
##########
@@ -44,7 +44,9 @@ def command(force = nil)
         elsif !force.nil?
           raise ArgumentError, "Invalid argument #{force}."
         end
-        formatter.row([admin.balancer(force_balancer) ? 'true' : 'false'])
+        did_balancer_run = !!admin.balancer(force_balancer)
+        formatter.row([did_balancer_run.to_s])
+        did_balancer_run

Review comment:
       Does it make sense to put this pattern in a method?




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] bitoffdev commented on a change in pull request #2058: HBASE-24722 Address hbase-shell commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
bitoffdev commented on a change in pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#discussion_r456618217



##########
File path: hbase-shell/src/main/ruby/shell/commands/clear_deadservers.rb
##########
@@ -35,18 +37,20 @@ def help
       end
 
       # rubocop:disable Metrics/AbcSize
-      # rubocop:disable Metrics/MethodLength
       def command(*dead_servers)
         servers = admin.clear_deadservers(dead_servers)
         if servers.size <= 0
           formatter.row(['true'])
+          []
         else
           formatter.row(['Some dead server clear failed'])
           formatter.row(['SERVERNAME'])
-          servers.each do |server|
-            formatter.row([server.toString])
+          server_names = servers.map { |server| server.toString }

Review comment:
       This is just a change to collect all the server names as an array so that we can both print and return the list of servers that could not be cleared




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] madrob commented on a change in pull request #2058: HBASE-24722 Address hbase-shell commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
madrob commented on a change in pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#discussion_r454473762



##########
File path: hbase-shell/src/main/ruby/shell/commands/balancer.rb
##########
@@ -44,7 +44,9 @@ def command(force = nil)
         elsif !force.nil?
           raise ArgumentError, "Invalid argument #{force}."
         end
-        formatter.row([admin.balancer(force_balancer) ? 'true' : 'false'])
+        did_balancer_run = !!admin.balancer(force_balancer)
+        formatter.row([did_balancer_run.to_s])
+        did_balancer_run

Review comment:
       Makes sense, can you create the follow-on issue and leave a short description?




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] bitoffdev commented on a change in pull request #2058: HBASE-24722 Address hbase-shell commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
bitoffdev commented on a change in pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#discussion_r454474582



##########
File path: hbase-shell/src/main/ruby/shell/commands/balancer.rb
##########
@@ -44,7 +44,9 @@ def command(force = nil)
         elsif !force.nil?
           raise ArgumentError, "Invalid argument #{force}."
         end
-        formatter.row([admin.balancer(force_balancer) ? 'true' : 'false'])
+        did_balancer_run = !!admin.balancer(force_balancer)
+        formatter.row([did_balancer_run.to_s])
+        did_balancer_run

Review comment:
       Will do! :smile:




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] saintstack commented on a change in pull request #2058: HBASE-24722 Address hbase-shell commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
saintstack commented on a change in pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#discussion_r456614056



##########
File path: hbase-shell/src/test/ruby/hbase/admin_test.rb
##########
@@ -212,13 +215,182 @@ def teardown
     #-------------------------------------------------------------------------------
 
     define_test 'snapshot auto cleanup should work' do
-      command(:snapshot_cleanup_switch, true)
-      output = capture_stdout { command(:snapshot_cleanup_enabled) }
+      result = nil
+      command(:snapshot_cleanup_switch, false)
+
+      # enable snapshot cleanup and check that the previous state is returned
+      output = capture_stdout { result = command(:snapshot_cleanup_switch, true) }
+      assert(output.include?('false'))
+      assert(result == false)
+
+      # check that snapshot_cleanup_enabled returns the current state
+      output = capture_stdout { result = command(:snapshot_cleanup_enabled) }
       assert(output.include?('true'))
+      assert(result == true)
 
-      command(:snapshot_cleanup_switch, false)
-      output = capture_stdout { command(:snapshot_cleanup_enabled) }
+      # disable snapshot cleanup and check that the previous state is returned
+      output = capture_stdout { result = command(:snapshot_cleanup_switch, false) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # check that snapshot_cleanup_enabled returns the current state
+      output = capture_stdout { result = command(:snapshot_cleanup_enabled) }
+      assert(output.include?('false'))
+      assert(result == false)
+    end
+
+    #-------------------------------------------------------------------------------
+
+    define_test 'balancer switch should work' do
+      result = nil
+      command(:balance_switch, false)
+
+      # enable balancer and check that the previous state is returned
+      output = capture_stdout { result = command(:balance_switch, true) }
+      assert(output.include?('false'))
+      assert(result == false)
+
+      # check that balancer_enabled returns the current state
+      output = capture_stdout { result = command(:balancer_enabled) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # disable balancer and check that the previous state is returned
+      output = capture_stdout { result = command(:balance_switch, false) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # check that balancer_enabled returns the current state
+      output = capture_stdout { result = command(:balancer_enabled) }
       assert(output.include?('false'))
+      assert(result == false)
+    end
+
+    #-------------------------------------------------------------------------------
+
+    define_test 'normalizer switch should work' do
+      result = nil
+      command(:normalizer_switch, false)
+
+      # enable normalizer and check that the previous state is returned
+      output = capture_stdout { result = command(:normalizer_switch, true) }
+      assert(output.include?('false'))
+      assert(result == false)
+
+      # check that normalizer_enabled returns the current state
+      output = capture_stdout { result = command(:normalizer_enabled) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # disable normalizer and check that the previous state is returned
+      output = capture_stdout { result = command(:normalizer_switch, false) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # check that normalizer_enabled returns the current state
+      output = capture_stdout { result = command(:normalizer_enabled) }
+      assert(output.include?('false'))
+      assert(result == false)
+    end
+
+    #-------------------------------------------------------------------------------
+
+    define_test 'catalogjanitor switch should work' do
+      result = nil
+      command(:catalogjanitor_switch, false)
+
+      # enable catalogjanitor and check that the previous state is returned
+      output = capture_stdout { result = command(:catalogjanitor_switch, true) }
+      assert(output.include?('false'))
+      assert(result == false)
+
+      # check that catalogjanitor_enabled returns the current state
+      output = capture_stdout { result = command(:catalogjanitor_enabled) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # disable catalogjanitor and check that the previous state is returned
+      output = capture_stdout { result = command(:catalogjanitor_switch, false) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # check that catalogjanitor_enabled returns the current state
+      output = capture_stdout { result = command(:catalogjanitor_enabled) }
+      assert(output.include?('false'))
+      assert(result == false)
+    end
+
+    #-------------------------------------------------------------------------------
+
+    define_test 'cleaner_chore switch should work' do
+      result = nil
+      command(:cleaner_chore_switch, false)
+
+      # enable cleaner_chore and check that the previous state is returned
+      output = capture_stdout { result = command(:cleaner_chore_switch, true) }
+      assert(output.include?('false'))
+      assert(result == false)
+
+      # check that cleaner_chore_enabled returns the current state
+      output = capture_stdout { result = command(:cleaner_chore_enabled) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # disable cleaner_chore and check that the previous state is returned
+      output = capture_stdout { result = command(:cleaner_chore_switch, false) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # check that cleaner_chore_enabled returns the current state
+      output = capture_stdout { result = command(:cleaner_chore_enabled) }
+      assert(output.include?('false'))
+      assert(result == false)
+    end
+
+    #-------------------------------------------------------------------------------
+
+    define_test 'splitormerge switch should work' do
+      # Author's note: All the other feature switches in hbase-shell only toggle one feature. This command operates on
+      # both the "SPLIT" and "MERGE", so you will note that both code paths need coverage.
+      result = nil
+      command(:splitormerge_switch, 'SPLIT', false)
+      command(:splitormerge_switch, 'MERGE', true)
+
+      # flip switch and check that the previous state is returned
+      output = capture_stdout { result = command(:splitormerge_switch, 'SPLIT', true) }
+      assert(output.include?('false'))
+      assert(result == false)
+
+      output = capture_stdout { result = command(:splitormerge_switch, 'MERGE', false) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      # check that splitormerge_enabled returns the current state
+      output = capture_stdout { result = command(:splitormerge_enabled, 'SPLIT') }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      output = capture_stdout { result = command(:splitormerge_enabled, 'MERGE') }
+      assert(output.include?('false'))
+      assert(result == false)
+
+      # flip switch and check that the previous state is returned
+      output = capture_stdout { result = command(:splitormerge_switch, 'SPLIT', false) }
+      assert(output.include?('true'))
+      assert(result == true)
+
+      output = capture_stdout { result = command(:splitormerge_switch, 'MERGE', true) }
+      assert(output.include?('false'))
+      assert(result == false)
+
+      # check that splitormerge_enabled returns the current state
+      output = capture_stdout { result = command(:splitormerge_enabled, 'SPLIT') }
+      assert(output.include?('false'))
+      assert(result == false)
+
+      output = capture_stdout { result = command(:splitormerge_enabled, 'MERGE') }
+      assert(output.include?('true'))
+      assert(result == true)

Review comment:
       Sweet

##########
File path: hbase-shell/src/main/ruby/shell/commands/balance_switch.rb
##########
@@ -31,7 +31,7 @@ def help
       end
 
       def command(enableDisable)
-        prev_state = admin.balance_switch(enableDisable) ? 'true' : 'false'
+        prev_state = !!admin.balance_switch(enableDisable)

Review comment:
       Nice idiom convertion (java to ruby)

##########
File path: hbase-shell/src/main/ruby/shell/commands/clear_block_cache.rb
##########
@@ -33,6 +33,7 @@ def help
 
       def command(table_name)
         formatter.row([admin.clear_block_cache(table_name)])
+        nil

Review comment:
       formatter.row returns void? Different to nil?

##########
File path: hbase-shell/src/main/ruby/shell/commands/clear_deadservers.rb
##########
@@ -35,18 +37,20 @@ def help
       end
 
       # rubocop:disable Metrics/AbcSize
-      # rubocop:disable Metrics/MethodLength
       def command(*dead_servers)
         servers = admin.clear_deadservers(dead_servers)
         if servers.size <= 0
           formatter.row(['true'])
+          []
         else
           formatter.row(['Some dead server clear failed'])
           formatter.row(['SERVERNAME'])
-          servers.each do |server|
-            formatter.row([server.toString])
+          server_names = servers.map { |server| server.toString }

Review comment:
       Bug fix?




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] bitoffdev commented on a change in pull request #2058: HBASE-24722 Address hbase-shell commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
bitoffdev commented on a change in pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#discussion_r456617522



##########
File path: hbase-shell/src/main/ruby/shell/commands/clear_block_cache.rb
##########
@@ -33,6 +33,7 @@ def help
 
       def command(table_name)
         formatter.row([admin.clear_block_cache(table_name)])
+        nil

Review comment:
       formatter.row returns the running total number of rows printed (`@row_count`) since the last call to formatter.header




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #2058: HBASE-24722 Update commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#issuecomment-657713860


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |:----:|----------:|--------:|:--------|
   | +0 :ok: |  reexec  |   0m 30s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files found.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any @author tags.  |
   ||| _ master Compile Tests _ |
   ||| _ Patch Compile Tests _ |
   | -0 :warning: |  rubocop  |   0m 57s |  The patch generated 25 new + 300 unchanged - 6 fixed = 325 total (was 306)  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace issues.  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 12s |  The patch does not generate ASF License warnings.  |
   |  |   |   2m 58s |   |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | Client=19.03.12 Server=19.03.12 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2058/1/artifact/yetus-general-check/output/Dockerfile |
   | GITHUB PR | https://github.com/apache/hbase/pull/2058 |
   | Optional Tests | dupname asflicense rubocop |
   | uname | Linux 262dd5130c9e 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 3bd54217a0 |
   | rubocop | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2058/1/artifact/yetus-general-check/output/diff-patch-rubocop.txt |
   | Max. process+thread count | 51 (vs. ulimit of 12500) |
   | modules | C: hbase-shell U: hbase-shell |
   | Console output | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2058/1/console |
   | versions | git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f) rubocop=0.80.0 |
   | Powered by | Apache Yetus 0.11.1 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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] bitoffdev commented on a change in pull request #2058: HBASE-24722 Address hbase-shell commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
bitoffdev commented on a change in pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#discussion_r454467521



##########
File path: hbase-shell/src/main/ruby/shell/commands/balancer.rb
##########
@@ -44,7 +44,9 @@ def command(force = nil)
         elsif !force.nil?
           raise ArgumentError, "Invalid argument #{force}."
         end
-        formatter.row([admin.balancer(force_balancer) ? 'true' : 'false'])
+        did_balancer_run = !!admin.balancer(force_balancer)
+        formatter.row([did_balancer_run.to_s])
+        did_balancer_run

Review comment:
       I think the simple implementation to encapsulate this pattern would be strange. I would rather leave this as is, and revisit the formatter more holistically as a separate ticket.




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #2058: HBASE-24722 Update commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#issuecomment-657721660


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |:----:|----------:|--------:|:--------|
   | +0 :ok: |  reexec  |   0m 24s |  Docker mode activated.  |
   | -0 :warning: |  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 :green_heart: |  mvninstall  |   4m  1s |  master passed  |
   | +1 :green_heart: |  javadoc  |   0m 14s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 43s |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   0m 12s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  |   6m 52s |  hbase-shell in the patch passed.  |
   |  |   |  16m 29s |   |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | Client=19.03.12 Server=19.03.12 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2058/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile |
   | GITHUB PR | https://github.com/apache/hbase/pull/2058 |
   | Optional Tests | javac javadoc unit |
   | uname | Linux 0bf0ae7cf57d 4.15.0-101-generic #102-Ubuntu SMP Mon May 11 10:07:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 3bd54217a0 |
   | Default Java | 1.8.0_232 |
   |  Test Results | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2058/1/testReport/ |
   | Max. process+thread count | 1528 (vs. ulimit of 12500) |
   | modules | C: hbase-shell U: hbase-shell |
   | Console output | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2058/1/console |
   | versions | git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f) |
   | Powered by | Apache Yetus 0.11.1 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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] saintstack merged pull request #2058: HBASE-24722 Address hbase-shell commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
saintstack merged pull request #2058:
URL: https://github.com/apache/hbase/pull/2058


   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [hbase] Apache-HBase commented on pull request #2058: HBASE-24722 Address hbase-shell commands with unintentional return values

Posted by GitBox <gi...@apache.org>.
Apache-HBase commented on pull request #2058:
URL: https://github.com/apache/hbase/pull/2058#issuecomment-657725473


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |:----:|----------:|--------:|:--------|
   | +0 :ok: |  reexec  |   1m 43s |  Docker mode activated.  |
   | -0 :warning: |  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 :green_heart: |  mvninstall  |   6m  3s |  master passed  |
   | +1 :green_heart: |  javadoc  |   0m 18s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m 56s |  the patch passed  |
   | +1 :green_heart: |  javadoc  |   0m 15s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  |   8m 27s |  hbase-shell in the patch passed.  |
   |  |   |  24m  5s |   |
   
   
   | Subsystem | Report/Notes |
   |----------:|:-------------|
   | Docker | Client=19.03.12 Server=19.03.12 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2058/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile |
   | GITHUB PR | https://github.com/apache/hbase/pull/2058 |
   | Optional Tests | javac javadoc unit |
   | uname | Linux 0c0286776f12 4.15.0-101-generic #102-Ubuntu SMP Mon May 11 10:07:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 3bd54217a0 |
   | Default Java | 2020-01-14 |
   |  Test Results | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2058/1/testReport/ |
   | Max. process+thread count | 1603 (vs. ulimit of 12500) |
   | modules | C: hbase-shell U: hbase-shell |
   | Console output | https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2058/1/console |
   | versions | git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f) |
   | Powered by | Apache Yetus 0.11.1 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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org