Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WCM Inbox Felix Console Plugin throws Traversal error #1635

Closed
3 tasks done
davidjgonzalez opened this issue Dec 19, 2018 · 20 comments
Closed
3 tasks done

WCM Inbox Felix Console Plugin throws Traversal error #1635

davidjgonzalez opened this issue Dec 19, 2018 · 20 comments
Labels
Milestone

Comments

@davidjgonzalez
Copy link
Contributor

davidjgonzalez commented Dec 19, 2018

Required Information

  • AEM Version, including Service Packs, Cumulative Fix Packs, etc: 6.4 (possibly earlier)
  • ACS AEM Commons Version: 3.19.0
  • Reproducible on Latest? yes

Expected Behavior

WCM Inbox should list the inbox paths available for purging.

Actual Behavior

WCM Inbox throws a traversal error and fails to query the inbox paths to purge.

19.12.2018 18:04:04.154 *WARN* [Thread-110] org.apache.jackrabbit.oak.plugins.index.Cursors$TraversingCursor Traversed 1000 nodes with filter Filter(query=select e.[jcr:path] as [jcr:path], e.[jcr:score] as [jcr:score], e. *from [nt:base] as a inner join [nt:base] as b on ischildnode(b, a) inner join [nt:base] as c on ischildnode(c, b) inner join [nt:base] as d on ischildnode(d, c) inner join [nt:base] as e on ischildnode(e, d) where name(a) = ‘wcm’ and isdescendantnode(a, ‘/home’) and name(b) = ‘notification’ and name(c) = ‘config’ and name(d) = ‘subscriptions’ and e.[type] = ‘page’ option(traversal OK) /* xpath: /jcr:root/home//wcm/notification/config/subscriptions/* [@type=‘page’] option(traversal ok) */, path=/home//*, property=[:localname=[wcm]]); consider creating an index or changing the query

Steps to Reproduce

Invoke the ACS Commons WCM Inbox Web Console plugin (ensure you have enough nodes under /home to trigger the traversal) or Explain Query the query used [1] and see that it is a traversal.

[1] https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/master/bundle/src/main/java/com/adobe/acs/commons/wcm/impl/WCMInboxWebConsolePlugin.java#L81

Thanks to Sammit P. for identifying

@davidjgonzalez
Copy link
Contributor Author

@justinedelson this appears to be a feature to support the clearing of Inbox tasks for ClassicUI - and i believe Inbox Tassk are now stored under /var/taskmanagement (or their respective projects folders) and not the rep:User.

Should we remove this feature for 4.0.0 (since it doesnt work)? WDYT?

@badvision
Copy link
Contributor

Classic UI is a dinosaur. Kill it.

@justinedelson
Copy link
Contributor

I'm fine removing this, but my preference would be to leave the plugin in place for 4.0.0 and just output something like "This web console plugin has been removed for performance reasons" when you navigate to it. That way there aren't questions about where it went (in case anyone is using it).

See #1643

@SRK2019
Copy link

SRK2019 commented Feb 3, 2019

Hi Team,

We are looking for this fix in our code also as we are seeing lot of errors related to this query warning. Can you please let us know when ACS commons new version (3.19.1 ?) will be released with this fix ?

@justinedelson justinedelson added this to the 4.0.0 milestone Mar 14, 2019
@trakeshkumar34
Copy link

trakeshkumar34 commented Jul 11, 2019

Hi Justin,

I just want to be more appropriate on the topic.

Yes, I have same warning message in my server which says as below:-

18.06.2019 23:53:05.942 WARN [Thread-414] org.apache.jackrabbit.oak.plugins.index.Cursors$TraversingCursor Traversed 2000 nodes with filter Filter(query=select e.[jcr:path] as [jcr:path], e.[jcr:score] as [jcr:score], e.* from [nt:base] as a inner join [nt:base] as b on ischildnode(b, a) inner join [nt:base] as c on ischildnode(c, b) inner join [nt:base] as d on ischildnode(d, c) inner join [nt:base] as e on ischildnode(e, d) where name(a) = 'wcm' and isdescendantnode(a, '/home') and name(b) = 'notification' and name(c) = 'config' and name(d) = 'subscriptions' and e.[type] = 'page' option(traversal OK) /* xpath: /jcr:root/home//wcm/notification/config/subscriptions/* [@type='page'] option(traversal ok) /, path=/home//, property=[:localname=[wcm]]); consider creating an index or changing the query

The version of ACS Common package I'm using in my instance is 3.8.4. So, it will resolve the issue if I use higher of it?

Rakesh

@davidjgonzalez
Copy link
Contributor Author

Rakesh - this is fixed (Ie the plugin is effectively removed) in v4.0.0 of acs commons. You should upgrade to 4.x if possible.

@trakeshkumar34
Copy link

Hi @davidjgonzalez,

Thanks a lot for the response.

So, now I'm planning to push the 4.x.x package in instance but the only worry is to understand the dependency of this package.

It would be great if you can share some info regarding this.

Rakesh

@davidjgonzalez
Copy link
Contributor Author

@trakeshkumar34
Copy link

Hi @davidjgonzalez,

Thanks for the link much needful.

Rakesh

@palbiez
Copy link

palbiez commented Dec 11, 2019

We have had the same error in AEM 6.5.1, ACS AEM 4.1
03.12.2019 01:02:34.835 *WARN* [Thread-903] org.apache.jackrabbit.oak.plugins.index.Cursors$TraversingCursor Traversed 1000 nodes with filter Filter(query=select e.[jcr:path] as [jcr:path], e.[jcr:score] as [jcr:score], e.* from [nt:base] as a inner join [nt:base] as b on ischildnode(b, a) inner join [nt:base] as c on ischildnode(c, b) inner join [nt:base] as d on ischildnode(d, c) inner join [nt:base] as e on ischildnode(e, d) where name(a) = 'wcm' and isdescendantnode(a, '/home') and name(b) = 'notification' and name(c) = 'config' and name(d) = 'subscriptions' and e.[type] = 'page' option(traversal OK) /* xpath: /jcr:root/home//wcm/notification/config/subscriptions/* [@type='page'] option(traversal ok) */, path=/home//*, property=[:localname=[wcm]]); consider creating an index or changing the query

But WCM Inbox is deactivated.
https://loalhost/system/console/wcm-inbox

This web console plugin has been removed as it is specific to the Classic UI.

Is there any other option where we can find this Traversal Error?

@dpoplawski
Copy link

We upgraded to ACS version to 4.2.0 and are on AEM 6.4.4 and are still getting the WARN and after a certain amount of nodes an ERROR. WCM Inbox is deactivated also.

WARN [Thread-115] org.apache.jackrabbit.oak.plugins.index.Cursors$TraversingCursor Traversed 1000 nodes with filter Filter(query=select e.[jcr:path] as [jcr:path], e.[jcr:score] as [jcr:score], e.* from [nt:base] as a inner join [nt:base] as b on ischildnode(b, a) inner join [nt:base] as c on ischildnode(c, b) inner join [nt:base] as d on ischildnode(d, c) inner join [nt:base] as e on ischildnode(e, d) where name(a) = 'wcm' and isdescendantnode(a, '/home') and name(b) = 'notification' and name(c) = 'config' and name(d) = 'subscriptions' and e.[type] = 'page' option(traversal OK) /* xpath: /jcr:root/home//wcm/notification/config/subscriptions/* [@type='page'] option(traversal ok) /, path=/home//, property=[:localname=[wcm]]); consider creating an index or changing the query

@akashramchandani
Copy link

Hi All,

Based on earlier updates, we spent effort in upgrading to latest ACS versions, but still no luck with resolving issue.

@justinedelson Can this be fixed? Can we get some updates at least?

@ALL, Any other suggestions that can be done to get rid of this error.

13.01.2020 12:21:29.559 WARN [Thread-1618] org.apache.jackrabbit.oak.plugins.index.Cursors$TraversingCursor Traversed 7000 nodes with filter Filter(query=select e.[jcr:path] as [jcr:path], e.[jcr:score] as [jcr:score], e.* from [nt:base] as a inner join [nt:base] as b on ischildnode(b, a) inner join [nt:base] as c on ischildnode(c, b) inner join [nt:base] as d on ischildnode(d, c) inner join [nt:base] as e on ischildnode(e, d) where name(a) = 'wcm' and isdescendantnode(a, '/home') and name(b) = 'notification' and name(c) = 'config' and name(d) = 'subscriptions' and e.[type] = 'page' option(traversal OK) /* xpath: /jcr:root/home//wcm/notification/config/subscriptions/* [@type='page'] option(traversal ok) /, path=/home//, property=[:localname=[wcm]]); consider creating an index or changing the query

@trakeshkumar34
Copy link

trakeshkumar34 commented Jan 14, 2020 via email

@akashramchandani
Copy link

We don't use classic UI. Rarely for something important, we use classic UI.
Just trying to understand more, when does this occur. Is it when we access classic UI? Or when purging activity takes place.

Suggestion, can't we create index here that can improve performance and avoid this issue?

@palbiez
Copy link

palbiez commented Jan 14, 2020

We spoke with Adobe directly. Workaround is
Stop the component in /system/console/components ->notification: com.day.cq.wcm.notification.impl.NotificationManagerImpl and to keep it stopped by using ACS-commons component disabler
https://adobe-consulting-services.github.io/acs-aem-commons/features/osgi-disablers/component-disabler/index.html

@ruchimishra
Copy link

Hello @palbiez,

We also have ACS Commons 4.0.0 but still, see this error in our logs.
You have mentioned that the workaround was provided by Adobe. Just wanted to understand if this has been logged in somewhere so that we can also check with our AMS team to make sure we implement the same. Not sure what function this component serves.

Thanks
Ruchi

@trakeshkumar34
Copy link

trakeshkumar34 commented May 18, 2020 via email

@palbiez
Copy link

palbiez commented May 18, 2020

@ruchimishra
This component is deprecated and used by old UI. Normally in the WCM inbox you can see messages from AEM. But this inbox is not longer in use.
As mentioned the wordaround is to deactivate inbox service in AEM Admin.

Stop the component in /system/console/components ->notification: com.day.cq.wcm.notification.impl.NotificationManagerImpl and to keep it stopped by using ACS-commons component disabler
https://adobe-consulting-services.github.io/acs-aem-commons/features/osgi-disablers/component-disabler/index.html

@ruchimishra
Copy link

@trakeshkumar34, @palbiez,
Our content authors don't use the classic UI. There could be some random usage but we certainly don't need the inbox. Will disable it.

Thanks a lot for the help and input.

@justinedelson
Copy link
Contributor

justinedelson commented May 22, 2020

Just to be clear, it appears that most of the comments in this thread do not relate to ACS AEM Commons. The query used by the WCM Inbox web console plugin (which was removed in 4.0.0) were

/jcr:root//element(, rep:User)/wcm/notification/config/subscriptions/element()[@channel='inbox']

And

/jcr:root//element(*, rep:User)/wcm/notification/inbox

The queries in the last handful of comments here are:

/jcr:root/home//wcm/notification/config/subscriptions/*[@type='page']

It is not fruitful to continue to use this issue for queries which are not related to the component in question (nor queries which, AFAIK, are generated by this project at all).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

9 participants