Description
Jets3tNativeFileSystemStore.copy(String, String) handles its exceptions with handleServiceException(String, ServiceException), which behaves like:
1) Throw FileNotFoundException if the exception's error code is NoSuchKey
2) Otherwise, throw IOException if the exception's cause is an IOException
3) Otherwise, LOG.debug a message and throw nothing
So S3 exceptions other than NoSuchKey (like RequestTimeout, ServiceUnavailable) are suppressed. This makes "copy" fail while still returning as if it succeeded. Furthermore since NativeS3FileSystem's "rename" is implemented as a copy followed by a delete, this means "rename" can delete the source key even though the copy has failed.
Attachments
Issue Links
- is broken by
-
HADOOP-9623 Update jets3t dependency to 0.9.0
- Closed
- Is contained by
-
HADOOP-9961 versions of a few transitive dependencies diverged between hadoop subprojects
- Closed
- relates to
-
HADOOP-10589 NativeS3FileSystem throw NullPointerException when the file is empty
- Closed