You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Vikas Saurabh (JIRA)" <ji...@apache.org> on 2016/07/04 10:09:11 UTC

[jira] [Comment Edited] (OAK-4529) DocumentNodeStore does not have a repository software version range check.

    [ https://issues.apache.org/jira/browse/OAK-4529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15361122#comment-15361122 ] 

Vikas Saurabh edited comment on OAK-4529 at 7/4/16 10:08 AM:
-------------------------------------------------------------

bq. check the versions stored in the repository then check the versions are within a compatible range and refuse to start if not.

I think utilities like oak-run are always able to read an old format. The issue, of course is that once they write out some data using a potentially new format then the oak version (presumably old) which was using the repo might get confused (e.g. oak-run at trunk would write out revision vectors for checkpoints which would confuse old oak at 1.0 or 1.2).

So, I think what's more important is for DNS instance to be initialized with the fact that the repository needs to be accessible by an older version of oak after any writes that this one does.


was (Author: catholicon):
bq. check the versions stored in the repository then check the versions are within a compatible range and refuse to start if not.

I think utilities like oak-run are always able to read and old format. The issue, of course is that once they write out some data using a potentially new format then the oak version (presumably old) which was using the repo might get confused (e.g. oak-run at trunk would write out revision vectors for checkpoints which would confuse old oak at 1.0 or 1.2).

So, I think what's more important is for DNS instance to be initialized with the fact that the repository needs to be accessible by an older version of oak after any writes that this one does.

> DocumentNodeStore does not have a repository software version range check.
> --------------------------------------------------------------------------
>
>                 Key: OAK-4529
>                 URL: https://issues.apache.org/jira/browse/OAK-4529
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.2.14, 1.0.31, 1.5.4, 1.4.4
>            Reporter: Ian Boston
>
> DocumentNodeStore does not currently check which software version the persisted repository it is connecting to was created with or last updated. There is a risk that if the versions are incompatible the repository may be damaged.
> Somewhere in the repository, the version of the software that created it, and the versions that written to it should be stored. In the case of TarMK this information could be on local disk near the TarMK files. In the case of a DocumentMK implementation, the information should be stored in the "database" itself.
> When a DocumentNodeStore instance connects it should: check the versions stored in the repository then check the versions are within a compatible range and refuse to start if not.
> When a DocumentNodeStore writes to a repository, it should add its version to the list of versions that have updated the repository.
> This check behaviour should be active in full Oak or any utilities (eg oak-run).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)