Details
-
Improvement
-
Resolution: Fixed
-
Critical
-
10.11.9
-
None
-
Unknown
-
Description
After we've moved to Notifications and fixed the storage problems, we're still left in a situation where old filters are stored in (and read from) WatchListClass objects in the user's profile instead of migrating them to the new filters storage that Notifications improved.
We've seen in practice that this combination could still lead to StackOverflowError even if this has been specifically fixed on the Notifications side with the new storage. E.g.:
2020-04-23 13:01:56,363 [Notification event executor: count : 4true/28xwiki:XWiki.UserX///////21//////5xwiki/true : 13] ERROR .r.i.NotificationEventExecutor - Failed to retrieve notifications for cache key [4true/28xwiki:XWiki.DanielCarrascosa///////21//////5xwiki/true] java.lang.StackOverflowError: null at org.hibernate.hql.antlr.HqlBaseParser.additiveExpression(HqlBaseParser.java:2987) at org.hibernate.hql.antlr.HqlBaseParser.concatenation(HqlBaseParser.java:632) at org.hibernate.hql.antlr.HqlBaseParser.relationalExpression(HqlBaseParser.java:2757) at org.hibernate.hql.antlr.HqlBaseParser.equalityExpression(HqlBaseParser.java:2613) at org.hibernate.hql.antlr.HqlBaseParser.negatedExpression(HqlBaseParser.java:2572) at org.hibernate.hql.antlr.HqlBaseParser.logicalAndExpression(HqlBaseParser.java:2483) at org.hibernate.hql.antlr.HqlBaseParser.logicalOrExpression(HqlBaseParser.java:2443) at org.hibernate.hql.antlr.HqlBaseParser.expression(HqlBaseParser.java:2204) at org.hibernate.hql.antlr.HqlBaseParser.expressionOrVector(HqlBaseParser.java:4625) at org.hibernate.hql.antlr.HqlBaseParser.primaryExpression(HqlBaseParser.java:1032) at org.hibernate.hql.antlr.HqlBaseParser.atom(HqlBaseParser.java:3679) at org.hibernate.hql.antlr.HqlBaseParser.unaryExpression(HqlBaseParser.java:3442) ...
or
2020-04-23 11:54:54,372 [Notification event executor: count : 4true/28xwiki:XWiki.UserX///////21//////5xwiki/true : 3] ERROR .r.i.NotificationEventExecutor - Failed to retrieve notifications for cache key [4true/28xwiki:XWiki.DanielCarrascosa///////21//////5xwiki/true] java.lang.StackOverflowError: null at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBinaryOperator(ExpressionNodeToHQLConverter.java:251) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBlock(ExpressionNodeToHQLConverter.java:117) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBinaryOperator(ExpressionNodeToHQLConverter.java:251) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBlock(ExpressionNodeToHQLConverter.java:117) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBinaryOperator(ExpressionNodeToHQLConverter.java:251) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBlock(ExpressionNodeToHQLConverter.java:117) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBinaryOperator(ExpressionNodeToHQLConverter.java:251) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBlock(ExpressionNodeToHQLConverter.java:117) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBinaryOperator(ExpressionNodeToHQLConverter.java:251) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBlock(ExpressionNodeToHQLConverter.java:117) at org.xwiki.notifications.sources.internal.ExpressionNodeToHQLConverter.parseBinaryOperator(ExpressionNodeToHQLConverter.java:251)
I observed the above on an 10.11.9 XWiki and that particular user had a ton of pages watched and stored in the WatchListClass object under his profile.
What we would need are 2 things:
1. Automated migration to be executed when upgrading to a new version of XWiki
2. Manual migration script (published snippet) to be executed by users that are suffering from this problem and can't upgrade right away (once the automated option would become available in a new version)
Attachments
Issue Links
- causes
-
XWIKI-22101 WatchListClass is not properly migrated for subwiki users
- Closed
- relates to
-
XWIKI-21880 Cannot delete user defined filters
- Closed