From 656e8dc8e6eadaadaa63c2d184ac3fbd4293f908 Mon Sep 17 00:00:00 2001 From: Xintong Song Date: Thu, 21 May 2020 16:36:15 +0800 Subject: [PATCH] [hotfix][filesystems][test] Fix improper usage of System.nanoTime(). Per the JavaDoc of System.nanoTime(), we should use `t1 - t0 < 0` rather than `t1 < t0` because of the possibility of numerical overflow. --- .../test/java/org/apache/flink/core/fs/FileSystemTestUtils.java | 2 +- .../flink/runtime/fs/hdfs/AbstractHadoopFileSystemITTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/flink-core/src/test/java/org/apache/flink/core/fs/FileSystemTestUtils.java b/flink-core/src/test/java/org/apache/flink/core/fs/FileSystemTestUtils.java index 564ef3a30b349..23bde19abfc1e 100644 --- a/flink-core/src/test/java/org/apache/flink/core/fs/FileSystemTestUtils.java +++ b/flink-core/src/test/java/org/apache/flink/core/fs/FileSystemTestUtils.java @@ -38,7 +38,7 @@ public static void checkPathEventualExistence( long deadline) throws IOException, InterruptedException { boolean dirExists; while ((dirExists = fs.exists(path)) != expectedExists && - System.nanoTime() < deadline) { + System.nanoTime() - deadline < 0) { Thread.sleep(10); } assertEquals(expectedExists, dirExists); diff --git a/flink-filesystems/flink-hadoop-fs/src/test/java/org/apache/flink/runtime/fs/hdfs/AbstractHadoopFileSystemITTest.java b/flink-filesystems/flink-hadoop-fs/src/test/java/org/apache/flink/runtime/fs/hdfs/AbstractHadoopFileSystemITTest.java index 083a8801da112..a7b29a7f28d6b 100644 --- a/flink-filesystems/flink-hadoop-fs/src/test/java/org/apache/flink/runtime/fs/hdfs/AbstractHadoopFileSystemITTest.java +++ b/flink-filesystems/flink-hadoop-fs/src/test/java/org/apache/flink/runtime/fs/hdfs/AbstractHadoopFileSystemITTest.java @@ -155,7 +155,7 @@ public static void teardown() throws IOException, InterruptedException { } public static void cleanupDirectoryWithRetry(FileSystem fs, Path path, long deadline) throws IOException, InterruptedException { - while (fs.exists(path) && System.nanoTime() < deadline) { + while (fs.exists(path) && System.nanoTime() - deadline < 0) { fs.delete(path, true); Thread.sleep(50L); }