This is an automated email from the ASF dual-hosted git repository. stack pushed a commit to branch branch-2.2 in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.2 by this push: new 5ad1d0b 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) 5ad1d0b is described below commit 5ad1d0b22b63497311330f9b276a4e5466b1ad19 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 4ef9057..eb51ce3 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 @@ -1144,8 +1144,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();