jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amit Jain (JIRA)" <j...@apache.org>
Subject [jira] [Created] (OAK-7389) MongoBlobStore does not update timestamp for already existing blobs
Date Thu, 05 Apr 2018 06:45:00 GMT
Amit Jain created OAK-7389:
------------------------------

             Summary: MongoBlobStore does not update timestamp for already existing blobs
                 Key: OAK-7389
                 URL: https://issues.apache.org/jira/browse/OAK-7389
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: documentmk
    Affects Versions: 1.6.11, 1.8.2, 1.4.20, 1.2.28
            Reporter: Amit Jain


MongoBlobStore uses uses the {{insert}} call and ignores any exceptions which means any existing
value won't be updated.
{code:java}
    @Override
    protected void storeBlock(byte[] digest, int level, byte[] data) throws IOException {
        String id = StringUtils.convertBytesToHex(digest);
        cache.put(id, data);
        // Check if it already exists?
        MongoBlob mongoBlob = new MongoBlob();
        mongoBlob.setId(id);
        mongoBlob.setData(data);
        mongoBlob.setLevel(level);
        mongoBlob.setLastMod(System.currentTimeMillis());
        // TODO check the return value
        // TODO verify insert is fast if the entry already exists
        try {
            getBlobCollection().insertOne(mongoBlob);
        } catch (DuplicateKeyException e) {
            // the same block was already stored before: ignore
        } catch (MongoException e) {
            if (e.getCode() == DUPLICATE_KEY_ERROR_CODE) {
                // the same block was already stored before: ignore
            } else {
                throw new IOException(e.getMessage(), e);
            }
        }
    }
{code}
 

The above would cause data loss in DSGC if there are updates to the blob blocks which are
re-surrected (stored again at the time of DSGC) because the timestamp would never have been
modified.

 

cc/ [~tmueller], [~mreutegg], [~chetanm], [~catholicon]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message