Bug #4211
Potential race condition between archive and replication
0%
Description
Current implementation of CNodeService.archive() does not appear to increment the serial version of the system metadata.
This implies that a race condition between calls of archive (either due to sync or directly by user) could be overwritten by updates from replication (other services in the future). Since the serial version is not updated by archive - the replication process may not recognize there has been an update from archive - and potentially overwrite the archive flag.
A possible short term solution for protecting the 'archive' flag data, would be to implement a 'business rule' that enforces that once SystemMetadata.archive is set to 'true' - that no subsequent updates are allowed to reset the archived flag to 'false'. This would prevent the race condition between updates from over-writing the 'archive' flag. This change will also PREVENT and archived document from being 'unarchived' in the future (even as requested by user?)
Further discussion is likely needed to determine the best layer to insert this type of business logic enforcement.
History
#1 Updated by Chris Jones over 10 years ago
- Due date changed from 2013-12-28 to 2014-01-18
- Target version changed from 2013.51-Block.6.4 to 2014.2-Block.1.1
#2 Updated by Chris Jones over 10 years ago
- Due date changed from 2014-01-18 to 2014-04-12
- Target version changed from 2014.2-Block.1.1 to 2014.14-Block.2.3
#3 Updated by Dave Vieglais about 10 years ago
- Start date deleted (
2013-12-20) - Due date deleted (
2014-04-12) - Target version deleted (
2014.14-Block.2.3)
#4 Updated by Dave Vieglais about 10 years ago
- Due date set to 2014-09-25
- Target version set to Release Backlog
- Start date set to 2014-09-25