[
https://issues.apache.org/jira/browse/JCLOUDS-835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Gaul resolved JCLOUDS-835.
---------------------------------
Resolution: Fixed
Assignee: Andrew Gaul
Fix Version/s: 2.0.0
> filesystem blobstore does not atomically replace objects
> --------------------------------------------------------
>
> Key: JCLOUDS-835
> URL: https://issues.apache.org/jira/browse/JCLOUDS-835
> Project: jclouds
> Issue Type: Bug
> Components: jclouds-blobstore
> Affects Versions: 1.8.1
> Reporter: Andrew Gaul
> Assignee: Andrew Gaul
> Labels: filesystem
> Fix For: 2.0.0
>
>
> Object stores have atomic replacement of keys, i.e., a mutating operation
> like write or overwrite should succeed and expose the new object or fail and
> retain the old object. The filesystem blobstore does neither of these and
> also has issues when handling simultaneous writes. From
> {{FilesystemStorageStrategyImpl.putBlob}}:
> {code:java}
> try {
> outputFile.delete();
> Files.asByteSink(outputFile).writeFrom(his);
> ...
> } catch (IOException ex) {
> if (outputFile != null) {
> if (!outputFile.delete()) {
> logger.debug("Could not delete %s", outputFile);
> }
> }
> throw ex;
> }
> {code}
> Instead we should write to a temporary file and rename on top of the target
> object.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)