[MGNLPN-523] Publishing a page with variants leads to an exception Created: 19/Feb/21  Updated: 04/Jan/22  Resolved: 31/Dec/21

Status: Closed
Project: Magnolia Personalization
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Neutral
Reporter: Jaroslav Simak Assignee: Javier Benito
Resolution: Obsolete Votes: 0
Labels: maintenance
Remaining Estimate: 0d
Time Spent: 0.5d
Original Estimate: Not Specified

Issue Links:
Problem/Incident
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:
Sprint: Pages Maintenance 3, Pages Maintenance 4
Story Points: 3

 Description   

Steps to reproduce

  1. Create page with multiple variants
  2. Configure activation command for personalization to also include mgnl:variant
  3. Publish the page

Expected results

  1. Page is published including variants

Actual results

  1. Errors related to the variant observation mechanism appear
  2. 2021-02-19 13:55:39,227 ERROR registry.variant.ConfiguredVariantObservingManager: Unable to create variant provider from variant node [node /Emocion/variants/variant-2/cuerpo/0111110]
    javax.jcr.InvalidItemStateException: Item does not exist anymore: 0125efa3-94c9-41e2-91cf-d6e18318ba44
    	at org.apache.jackrabbit.core.ItemImpl.itemSanityCheck(ItemImpl.java:116) ~[jackrabbit-core-2.18.1.jar:2.18.1]
    	at org.apache.jackrabbit.core.ItemImpl.sanityCheck(ItemImpl.java:104) ~[jackrabbit-core-2.18.1.jar:2.18.1]
    	at org.apache.jackrabbit.core.NodeImpl.hasNode(NodeImpl.java:2279) ~[jackrabbit-core-2.18.1.jar:2.18.1]
    	at info.magnolia.personalization.variant.BaseVariantManager.getAllVariants(BaseVariantManager.java:70) ~[magnolia-personalization-integration-1.6.3.jar:?]
    	at info.magnolia.personalization.registry.variant.ConfiguredVariantsProvider.<init>(ConfiguredVariantsProvider.java:48) ~[magnolia-personalization-integration-1.6.3.jar:?]
    	at info.magnolia.personalization.registry.variant.ConfiguredVariantObservingManager.createProvider(ConfiguredVariantObservingManager.java:76) [magnolia-personalization-integration-1.6.3.jar:?]
    	at info.magnolia.personalization.registry.variant.ConfiguredVariantObservingManager.reload(ConfiguredVariantObservingManager.java:66) [magnolia-personalization-integration-1.6.3.jar:?]
    	at info.magnolia.cms.util.WorkspaceObservingManager$1$1.doExec(WorkspaceObservingManager.java:129) [magnolia-core-5.7.8.jar:?]

Workaround

  1. Do not publish with mgnl:variant rule
  2. Programatically increase delay and maxDelay on the ConfiguredVariantObservingManager

Development notes

This behavior happens because publication is removing nodes on pages and variants, and the observation mechanism kicks in and BaseVariantManager runs into InvalidItemStateException of some nodes because it's session is not aware of the changes made by publishing.


Generated at Mon Feb 12 06:38:29 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.