Expand my Community achievements bar.

SOLVED

Rollout failed

Avatar

Level 3

I'm experiencing the following problem: I have a blueprint for mySite and a liveCopy myLiveCopySite. I try to do a rollout of a page in mySite that contains a node myList. That node exists at the corresponding path in myLiveCopySite. From what I understand, in that case the live action contentCopy should not be applied for that node since it already exists in the live copy.

However, even though I can see the node in crx, the handles method of ContentCopyAction is called with a null target and in the end the copy fails with an ItemNotFoundException. I created a custom live action that has the exact same source as ContentCopyActionFactory in order to debug this. I modified it to skip the node that causes the problem. After this the rollout suceeds and in the live copy the node is now called myList_msm_moved. 

Did anyone encounter this also? What does _msm_moved mean?

I'm using Adobe CQ 5.6.1

1 Accepted Solution

Avatar

Correct answer by
Level 9

Hi gabrielav2004072 ,

The below was posted by someone in this forum. Not able to get hold of that post. Content as below:

"The "_msm_moved" is created when the a rollout action is triggered and content is being rolled out to a livecopy where an identically named resource is located and that resource is identified as being detached.

A relationship is determined to exist between a resource in the livecopy and a resource is in the blueprint by a mixin type on the livecopy resource called cq:LiveRelationship. If that mixin type is not present the assumption is that that content was created directly in the livecopy or there was a desire to treat that resource like it was created directly in the livecopy and a detach command was executed on the resource through the MSM Control panel.

When a rollout is triggered for that blueprint resource, the application understands that it's being told to put this new content into that livecopy, however, since the mixin doesn't exist it doesn't know how to handle that existing resource, so it renames it and puts the current blueprint resource in it's place.

The interesting thing with your problem is that new resource should have that mixin applied as soon as the rollout takes place. The fact that you have so many of these instances would seem that either there is a rollout configuration in place that is preventing this mixin being applied to this resource OR you have some secondary process in place that is removing the mixin for that resource after the fact.

I would check your Rollout Configurations, any automated workflows or processes that are focused on that path"

View solution in original post

7 Replies

Avatar

Correct answer by
Level 9

Hi gabrielav2004072 ,

The below was posted by someone in this forum. Not able to get hold of that post. Content as below:

"The "_msm_moved" is created when the a rollout action is triggered and content is being rolled out to a livecopy where an identically named resource is located and that resource is identified as being detached.

A relationship is determined to exist between a resource in the livecopy and a resource is in the blueprint by a mixin type on the livecopy resource called cq:LiveRelationship. If that mixin type is not present the assumption is that that content was created directly in the livecopy or there was a desire to treat that resource like it was created directly in the livecopy and a detach command was executed on the resource through the MSM Control panel.

When a rollout is triggered for that blueprint resource, the application understands that it's being told to put this new content into that livecopy, however, since the mixin doesn't exist it doesn't know how to handle that existing resource, so it renames it and puts the current blueprint resource in it's place.

The interesting thing with your problem is that new resource should have that mixin applied as soon as the rollout takes place. The fact that you have so many of these instances would seem that either there is a rollout configuration in place that is preventing this mixin being applied to this resource OR you have some secondary process in place that is removing the mixin for that resource after the fact.

I would check your Rollout Configurations, any automated workflows or processes that are focused on that path"

Avatar

Level 10

Are you following the documentation exactly as specified here:

https://docs.adobe.com/docs/en/cq/5-6/administering/multi_site_manager.html#Rolling out Changes to the Live Copy (Manually)

Avatar

Level 3

Thank you,

I will take a deeper look tomorrow as I don't have access to the system right now and then let you know. I get the following exception when doing the rollout:

ItemNotFoundException: node /content/myLiveCopySite/myPage/jcr:content has no child node with name someNode at org.apache.jackrabbit.core.NodeImpl.orderBefore(NodeImpl.java:1459) at org.apache.jackrabbit.core.NodeImpl.orderBefore(NodeImpl.java:1857) at com.day.cq.wcm.msm.impl.actions.ContentCopyActionFactory$ContentCopyAction.createCopy(ContentCopyActionFactory.java:180) at com.day.cq.wcm.msm.impl.actions.ContentCopyActionFactory$ContentCopyAction.doExecute(ContentCopyActionFactory.java:136) at com.day.cq.wcm.msm.impl.actions.BaseAction.execute(BaseAction.java:53) ... 110 more

The node someNode exists in the blueprint but not in the live copy and it should be coppied during the rollout (copyContent action). However, when it tries to do the rollout for myList the exception is thrown at the orderBefore method: parentNode.orderBefore(myListPath,someNodePath).

Avatar

Level 3

I'm following the exact steps described in the Managing a Blueprint and its Live Copies: the Blueprint Control Center section.

https://docs.adobe.com/docs/en/cq/5-6/administering/multi_site_manager.html#Managing%20Blueprints%20...

Avatar

Level 3

Thanks for the answer. That was indeed the problem: the node was created manually and did not have the cq:LiveRelationship property. However I think there is still an issue there (aem bug maybe). I think the rollout should not fail in case the previous sibling for a node without the property doesn't exist in the live copy, and not throw an ItemNotFoundException.

Avatar

Level 8

could you describe the rollout that you are using, including the trigger, sync actions?

Avatar

Level 3

trigger: rollout

sync action: contentCopy

At first there were other actions as well, but I removed those to see if I'm still getting the exception and narrow the case.