FileDataStore ignores return code from setLastModified
------------------------------------------------------
Key: JCR-2674
URL: https://issues.apache.org/jira/browse/JCR-2674
Project: Jackrabbit Content Repository
Issue Type: Bug
Components: jackrabbit-core
Affects Versions: 2.1.0
Environment: Solaris/ZFS/JDK1.6.0_20
Reporter: Peter Dettman
Priority: Critical
Garbage collection depends on the file modification date being successfully
updated when records are "touched" during the mark phase. The result of a
silent failure is the catastrophic loss of the file in the sweep phase.
FileDataStore.getRecordIfStored does not, however, check the return code from
setLastModified.
I believe I was bitten by this when my dev deployment ran out of disk space. A
substantial portion of my datastore was deleted, and the best explanation I can
come up with is that the setLastModified calls started (silently) failing,
leading to massive overkill in the sweep.
There is also a call to setLastModified in FileDataStore.addRecord which is not
strictly correct in the face of GC (i.e. it needs the resolution offset, and
also must succeed if the file is writable or risk incorrect collection).
Patch to follow.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.