You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Dominique Pfister (JIRA)" <ji...@apache.org> on 2007/02/20 16:03:05 UTC
[jira] Created: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Concurrent add/remove child node operations in a cluster may corrupt repository.
--------------------------------------------------------------------------------
Key: JCR-756
URL: https://issues.apache.org/jira/browse/JCR-756
Project: Jackrabbit
Issue Type: Bug
Components: core
Affects Versions: 1.2.1
Reporter: Dominique Pfister
Assigned To: Dominique Pfister
Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Posted by "Dominique Pfister (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dominique Pfister updated JCR-756:
----------------------------------
Attachment: Create.java
Create.java: Sample application that creates nodes and properties below the root node.
> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>
> Key: JCR-756
> URL: https://issues.apache.org/jira/browse/JCR-756
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1
> Reporter: Dominique Pfister
> Assigned To: Dominique Pfister
> Attachments: Create.java, Remove.java
>
>
> Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12475896 ]
Jukka Zitting commented on JCR-756:
-----------------------------------
Dominique, can you isolate the fix for just this issue from the 509624 commit? Otherwise I can't include
this in the Jackrabbit 1.2.3 release, as the 509624 change is IMHO too large for a patch release.
> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>
> Key: JCR-756
> URL: https://issues.apache.org/jira/browse/JCR-756
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1, 1.2.2
> Reporter: Dominique Pfister
> Assigned To: Dominique Pfister
> Fix For: 1.2.3
>
> Attachments: Create.java, Remove.java, repository.xml
>
>
> Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12477701 ]
Jukka Zitting commented on JCR-756:
-----------------------------------
No problem, we'll just release the fix with 1.3. :-)
> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>
> Key: JCR-756
> URL: https://issues.apache.org/jira/browse/JCR-756
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1, 1.2.2
> Reporter: Dominique Pfister
> Assigned To: Dominique Pfister
> Fix For: 1.3
>
> Attachments: Create.java, Remove.java, repository.xml
>
>
> Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Posted by "Dominique Pfister (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dominique Pfister resolved JCR-756.
-----------------------------------
Resolution: Fixed
Problem identified to be the following during an update:
1) When a journal update is started, the clustered instance syncs with journal contents. This
might change the SharedItemStateManager's states
2) Later on, eventual, non-conflicting changes are merged to the local states.
3) Finally, the journal update is prepared. This might again trigger an external update from
the journal and change the shared states . However, these changes are not merged to the
local states.
4) The local states are pushed "blindly" to the shared states, potentially overwriting a previous
change.
Fixed by locking the journal in 1) instead of 3). This still allows non-conflicting merge, but only once. An even
better, less blocking approach would iteratively merge the changes seen in external updates to the local states.
Thanks a lot to Rafał Kwiecień for reporting this bug and providing the test classes.
Fixed in revision 509624.
> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>
> Key: JCR-756
> URL: https://issues.apache.org/jira/browse/JCR-756
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1
> Reporter: Dominique Pfister
> Assigned To: Dominique Pfister
> Attachments: Create.java, Remove.java, repository.xml
>
>
> Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Posted by "Dominique Pfister (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dominique Pfister updated JCR-756:
----------------------------------
Attachment: repository.xml
Sample repository.xml configuration that might be used for both create and remove sample application.
> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>
> Key: JCR-756
> URL: https://issues.apache.org/jira/browse/JCR-756
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1
> Reporter: Dominique Pfister
> Assigned To: Dominique Pfister
> Attachments: Create.java, Remove.java, repository.xml
>
>
> Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Posted by "Dominique Pfister (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dominique Pfister updated JCR-756:
----------------------------------
Attachment: Remove.java
Remove.java: Sample application that deletes nodes below the root node
> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>
> Key: JCR-756
> URL: https://issues.apache.org/jira/browse/JCR-756
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1
> Reporter: Dominique Pfister
> Assigned To: Dominique Pfister
> Attachments: Create.java, Remove.java
>
>
> Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jukka Zitting updated JCR-756:
------------------------------
Fix Version/s: (was: 1.2.3)
1.3
> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>
> Key: JCR-756
> URL: https://issues.apache.org/jira/browse/JCR-756
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1, 1.2.2
> Reporter: Dominique Pfister
> Assigned To: Dominique Pfister
> Fix For: 1.3
>
> Attachments: Create.java, Remove.java, repository.xml
>
>
> Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Posted by "Dominique Pfister (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12477661 ]
Dominique Pfister commented on JCR-756:
---------------------------------------
Jukka, sorry for not having answered to your question, was quite busy the last few days! I quickly took a look at the changes I had to make in order to have the Create/Remove test scenario pass in my already refactored classes, and those changes looked to complicated to be merged back to the 1.2 branch.
> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>
> Key: JCR-756
> URL: https://issues.apache.org/jira/browse/JCR-756
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1, 1.2.2
> Reporter: Dominique Pfister
> Assigned To: Dominique Pfister
> Fix For: 1.3
>
> Attachments: Create.java, Remove.java, repository.xml
>
>
> Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-756) Concurrent add/remove child node
operations in a cluster may corrupt repository.
Posted by "Jukka Zitting (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JCR-756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jukka Zitting updated JCR-756:
------------------------------
Fix Version/s: 1.2.3
Affects Version/s: 1.2.2
> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>
> Key: JCR-756
> URL: https://issues.apache.org/jira/browse/JCR-756
> Project: Jackrabbit
> Issue Type: Bug
> Components: core
> Affects Versions: 1.2.1, 1.2.2
> Reporter: Dominique Pfister
> Assigned To: Dominique Pfister
> Fix For: 1.2.3
>
> Attachments: Create.java, Remove.java, repository.xml
>
>
> Concurrent add/remove child node operations in a cluster may store an inconsistent list of child node entries, i.e. an entry in the list may appear that has no associated node. This eventually results in an ItemNotFoundException, the next time one of these bogus entries is accessed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.