[ https://issues.apache.org/jira/browse/FLINK-8402?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16415361#comment-16415361 ]
ASF GitHub Bot commented on FLINK-8402: --------------------------------------- Github user StephanEwen commented on the issue: https://github.com/apache/flink/pull/5624 Okay, the solution is actually in the description of another pull request: > Amazon S3 provides read-after-write consistency for PUTS of new objects in your S3 bucket in all regions with one caveat. **The caveat is that if you make a HEAD or GET request to the key name (to find if the object exists) before creating the object, Amazon S3 provides eventual consistency for read-after-write."** https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel That means that through the `flink-s3-fs-hadoop` connector, we can never assume any form of strongly consistent operation, not even the basic read-after-write for exact keys. That's a bummer :-( On the upside, the `flink-s3-fs-presto` does not seem to do that, so we might be able to rely on strong consistency for read-after-write. My original suggestion boiled down to changing the test code as follows, which should work if GET is consistent after PUT: ```java public static boolean pathExists( FileSystem fs, Path path, boolean expectedExists, long deadline) throws IOException { try (FsDataOutputStream ignored = fs.open(path)) { // object exists return true; } catch (FileNotFoundException e) { // object does not exist return false; } } ``` instead of the current code. ```java public static void checkPathExistsEventually( FileSystem fs, Path path, boolean expectedExists, long deadline) throws IOException, InterruptedException { boolean dirExists; while ((dirExists = fs.exists(path)) != expectedExists && System.nanoTime() < deadline) { Thread.sleep(10); } assertEquals(expectedExists, dirExists); } ``` What do you think? Should we use the "strongly consistent" variant for the Presto-S3-based connector? > HadoopS3FileSystemITCase.testDirectoryListing fails on Travis > ------------------------------------------------------------- > > Key: FLINK-8402 > URL: https://issues.apache.org/jira/browse/FLINK-8402 > Project: Flink > Issue Type: Bug > Components: FileSystem, Tests > Affects Versions: 1.5.0 > Reporter: Till Rohrmann > Assignee: Nico Kruber > Priority: Blocker > Labels: test-stability > Fix For: 1.5.0, 1.4.3 > > > The test {{HadoopS3FileSystemITCase.testDirectoryListing}} fails on Travis. > https://travis-ci.org/tillrohrmann/flink/jobs/327021175 -- This message was sent by Atlassian JIRA (v7.6.3#76005)