[MGNLUI-6001] Corrupted messages stored in JCR cause endless loop in UI backend Created: 29/Jun/20  Updated: 28/Sep/20  Resolved: 11/Aug/20

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

Type: Bug Priority: Neutral
Reporter: Aleksandr Pchelintcev Assignee: Andrei Ichimescu
Resolution: Fixed Votes: 0
Labels: maintenance
Remaining Estimate: Not Specified
Time Spent: 5h 1m
Original Estimate: Not Specified

Issue Links:
Problem/Incident
Relates
relation
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
Release notes required:
Yes
Date of First Response:
Epic Link: UI framework implementation
Sprint: UI FW 6, Maintenance 19
Story Points: 5

 Description   

Some analysis:

  • a corrupted (un-populated/empty) message ends up in a message store
  • the message marshaller fails to parse it and throws an exception
  • exception bubbles in admincentral and eventually causes another error message to be sent, which in turn causes the app to refresh own views
  • -> rinse repeat...


 Comments   
Comment by Roman Kovařík [ 07/Aug/20 ]

The loop stacktrace:

at com.vaadin.ui.UI.push(UI.java:1700)
		at info.magnolia.ui.observation.LocalManualDatasourceObservation.lambda$null$0(LocalManualDatasourceObservation.java:73)
		at info.magnolia.admincentral.ResurfaceUI.lambda$accessSynchronously$0(ResurfaceUI.java:119)
		at com.vaadin.ui.UI.accessSynchronously(UI.java:1511)
		at info.magnolia.admincentral.ResurfaceUI.accessSynchronously(ResurfaceUI.java:109)
		at com.vaadin.ui.UI$3.run(UI.java:1575)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at com.vaadin.server.VaadinService.runPendingAccessTasks(VaadinService.java:2047)
		at com.vaadin.ui.UI.push(UI.java:1700)
		at info.magnolia.ui.observation.LocalManualDatasourceObservation.lambda$null$0(LocalManualDatasourceObservation.java:73)
		at info.magnolia.admincentral.ResurfaceUI.lambda$accessSynchronously$0(ResurfaceUI.java:119)
		at com.vaadin.ui.UI.accessSynchronously(UI.java:1511)
		at info.magnolia.admincentral.ResurfaceUI.accessSynchronously(ResurfaceUI.java:109)
		at com.vaadin.ui.UI$3.run(UI.java:1575)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at com.vaadin.server.VaadinService.runPendingAccessTasks(VaadinService.java:2047)
		at com.vaadin.ui.UI.push(UI.java:1700)
		at info.magnolia.ui.observation.LocalManualDatasourceObservation.lambda$null$0(LocalManualDatasourceObservation.java:73)
		at info.magnolia.admincentral.ResurfaceUI.lambda$accessSynchronously$0(ResurfaceUI.java:119)
		at com.vaadin.ui.UI.accessSynchronously(UI.java:1511)
		at info.magnolia.admincentral.ResurfaceUI.accessSynchronously(ResurfaceUI.java:109)
		at com.vaadin.ui.UI$3.run(UI.java:1575)
Comment by Scot Rhodes [ 17/Aug/20 ]

Hello all,

I've added a fix for 6.1.6 with the same modifications. It's available in Nexus, just add the following to your dependencies/dependencyManagement:
<dependency>
<groupId>info.magnolia.ui</groupId>
<artifactId>magnolia-ui-framework</artifactId>
<version>6.1.6-MGNLUI-6001</version>
</dependency>
<dependency>
<groupId>info.magnolia.admincentral</groupId>
<artifactId>magnolia-admincentral</artifactId>
<version>6.1.6-MGNLUI-6001</version>
</dependency>
<dependency>
<groupId>info.magnolia.ui</groupId>
<artifactId>magnolia-ui-admincentral</artifactId>
<version>6.1.6-MGNLUI-6001</version>
</dependency>

Generated at Mon Feb 12 09:32:09 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.