[MAGNOLIA-4593] simultaneous activation of 1st and 2nd level page might cause failure to activate due incorrect locking Created: 24/Oct/12  Updated: 15/May/13  Resolved: 27/Nov/12

Status: Closed
Project: Magnolia
Component/s: activation
Affects Version/s: 4.4.8, 4.5.6
Fix Version/s: 4.4.10, 4.5.7

Type: Bug Priority: Blocker
Reporter: Jan Haderka Assignee: Ondrej Chytil
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Cloners
is cloned by MGNLACTIVATION-3 CLONE -simultaneous activation of 1st... Closed
causality
is causing MGNLXAA-50 simultaneous activation of 1st and 2n... Closed
relation
is related to MAGNOLIA-2379 Check/Make sure locks are released wh... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

When activating 1st level pages (home page) the root of the repo can't be locked and no JCR lock is issued for activation. If 2nd level page that exists under same path is activated at the same time, it would issue lock on the parent (1st level page) and thus lock it during the activation causing first activation to fail.



 Comments   
Comment by Jan Haderka [ 27/Oct/12 ]

Fixed on 4.4 branch. Needs to be ported to 4.5 and master

Comment by Ondrej Chytil [ 27/Nov/12 ]

Bundle build is failing because of attempts of locking the root node.

Comment by Jan Haderka [ 27/Nov/12 ]
+        Content node = null;
+        try{
+            node = getHierarchyManager(request).getContentByUUID(getUUID(request));
+        } catch (ItemNotFoundException e) {
+        // ignore node just ain't exist yet
+        } catch (RepositoryException e) {
+            log.warn("Exception caught", e);
+        }

IMHO you need to rethrow RepoException at this place as ExchangeException and fail the activation. If node to be activated can't be retrieved now it won't be retrievable later either.

Generated at Mon Feb 12 03:57:16 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.