This is an automated email from the ASF dual-hosted git repository.

stack pushed a commit to branch branch-2.3
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.3 by this push:
     new 88a694c  HBASE-24454 - Read ioErrorStartTime to local temporary 
variable to avoid issue when it is set to -1 between greater than zero check 
and calculation of error duration (#1816)
88a694c is described below

commit 88a694cd6cd5b98ed232f3ae40f14bbf82e9ed68
Author: jacob-leblanc <56317445+jacob-lebl...@users.noreply.github.com>
AuthorDate: Sun May 31 00:06:40 2020 -0400

    HBASE-24454 - Read ioErrorStartTime to local temporary variable to avoid 
issue when it is set to -1 between greater than zero check and calculation of 
error duration (#1816)
    
    
    Signed-off-by Anoop Sam John <anoopsamj...@apache.org>
---
 .../java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java   | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
index 52f0e8a..fca1ffa 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java
@@ -1164,8 +1164,10 @@ public class BucketCache implements BlockCache, HeapSize 
{
    */
   private void checkIOErrorIsTolerated() {
     long now = EnvironmentEdgeManager.currentTime();
-    if (this.ioErrorStartTime > 0) {
-      if (cacheEnabled && (now - ioErrorStartTime) > 
this.ioErrorsTolerationDuration) {
+    // Do a single read to a local variable to avoid timing issue - HBASE-24454
+    long ioErrorStartTimeTmp = this.ioErrorStartTime;
+    if (ioErrorStartTimeTmp > 0) {
+      if (cacheEnabled && (now - ioErrorStartTimeTmp) > 
this.ioErrorsTolerationDuration) {
         LOG.error("IO errors duration time has exceeded " + 
ioErrorsTolerationDuration +
           "ms, disabling cache, please check your IOEngine");
         disableCache();

Reply via email to