User Sync Diagnostics - Infinite Recursion (StackOverflowError)

Avatar

Avatar

Gdubz-57m2mu

Avatar

Gdubz-57m2mu

Gdubz-57m2mu

16-12-2016

So I was looking at the documentation for User Synchronization[1], specifically the bit about Troubleshooting - User Sync Diagnostics[2] and when I went to pull up that diagnostics tool, I received the following error:

Infinite recursion (StackOverflowError) (through reference chain: jdk.nashorn.internal.objects.NativeObject$Prototype["map"]) Cannot serve request to /libs/granite/operations/content/diagnosis/tool.html/syncdiagnostics in /libs/social/diagnostics/base/components/diagnostics/GET.hbs Exception: java.lang.IllegalArgumentException: Infinite recursion (StackOverflowError) (through reference chain: jdk.nashorn.internal.objects.NativeObject$Prototype["map"])

Scratched my head on that for a little while and it wasn't until I pulled up the error.log that I found this little beauty waiting for me:

16.12.2016 11:28:16.890 *ERROR* [0:0:0:0:0:0:0:1 [1481909296863] GET /libs/granite/operations/content/diagnosis/tool.html/syncdiagnostics HTTP/1.1] com.adobe.cq.social.sync.diagnostics.impl.AbstractDiagnosticsCheck The following condition was not satisfied: "No Sling Sync Agents are configured -- please follow the link (below) to the documentation" 16.12.2016 11:28:16.890 *WARN* [0:0:0:0:0:0:0:1 [1481909296863] GET /libs/granite/operations/content/diagnosis/tool.html/syncdiagnostics HTTP/1.1] com.adobe.cq.social.sync.diagnostics.impl.AbstractDiagnosticsCheck Step: Verify Apache Sling Sync Agents Configuration Check on Author failed.

Just wanted to say that:

  1. There was no link to the documentation (that's okay for me though, as I was already on that page, but for others...)
  2. Maybe you should make this a more graceful error, like a popup in the Touch UI saying why the diagnostic tool didn't load, instead of just a white stacktrace page.
  3. Better yet, you could hide the diagnostic tool from even being available if User Sync isn't setup yet. If you go to the Diagnosis Tools page[3], it's right there in plain sight, waiting to throw errors in peoples faces.

[1] https://docs.adobe.com/docs/en/aem/6-2/administer/security/security/sync.html
[2] https://docs.adobe.com/docs/en/aem/6-2/administer/security/security/sync.html#User Sync Diagnostics
[3] http://localhost:4502/libs/granite/operations/content/diagnosis.html

Replies

Avatar

Avatar

jayb43402168

Avatar

jayb43402168

jayb43402168

16-12-2016

Hi Sir,

I'm sorry to hear that you are having issues running the diagnostics.  I've seen this in a specific revision of the JDK 1.8.  What JDK version are you running?  Would it be possible to upgrade it?  I will add your feedback to our internal Jira for the diagnostics for future enhancements.

Thanks, again, and please let me know what your JDK version is.

Regards

-Jay

Avatar

Avatar

Gdubz-57m2mu

Avatar

Gdubz-57m2mu

Gdubz-57m2mu

16-12-2016

jayb43402168 wrote...

Hi Sir,

I'm sorry to hear that you are having issues running the diagnostics.  I've seen this in a specific revision of the JDK 1.8.  What JDK version are you running?  Would it be possible to upgrade it?  I will add your feedback to our internal Jira for the diagnostics for future enhancements.

Thanks, again, and please let me know what your JDK version is.

Regards

-Jay

 

jdk1.8.0_31

Thanks, just wanted to let you know!

Avatar

Avatar

Gdubz-57m2mu

Avatar

Gdubz-57m2mu

Gdubz-57m2mu

16-12-2016

Also, after going through the motions of setting up User Syncrhonization on my local author and publisher, still can't access the diagnostics tool.

No serializer found for class jdk.nashorn.internal.runtime.PropertyListeners and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) Cannot serve request to /libs/granite/operations/content/diagnosis/tool.html/syncdiagnostics in /libs/social/diagnostics/base/components/diagnostics/GET.hbs Exception: java.lang.IllegalArgumentException: No serializer found for class jdk.nashorn.internal.runtime.PropertyListeners and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2711) at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2637) at com.adobe.cq.social.scf.core.BaseSocialComponent.getAsMap(BaseSocialComponent.java:310) at com.adobe.cq.social.handlebars.HandlebarsScriptingEngine.eval(HandlebarsScriptingEngine.java:167) at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388) at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:546) at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:77) at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:96) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:151) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:362) at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:177) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilter(WCMDeveloperModeFilter.java:114) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282) at org.apache.sling.engine.impl.SlingRequestProcessorImpl.dispatchRequest(SlingRequestProcessorImpl.java:322) at org.apache.sling.engine.impl.request.SlingRequestDispatcher.dispatch(SlingRequestDispatcher.java:211) at org.apache.sling.engine.impl.request.SlingRequestDispatcher.include(SlingRequestDispatcher.java:104) at com.day.cq.wcm.core.impl.WCMComponentFilter$ForwardRequestDispatcher.include(WCMComponentFilter.java:503) at com.adobe.granite.ui.components.ComponentHelper.include(ComponentHelper.java:730) at com.adobe.granite.ui.components.ComponentHelper.include(ComponentHelper.java:703) at com.adobe.granite.ui.components.ComponentHelper.include(ComponentHelper.java:689) at com.adobe.granite.ui.components.ComponentHelper.include(ComponentHelper.java:663) ... snipped a bunch of extra lines here ... Caused by: com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class jdk.nashorn.internal.runtime.PropertyListeners and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:59) at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:26) at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:644) at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152) at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:644) at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152) at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:644) at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:467) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:388) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:27) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:467) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:388) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:27) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:467) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:388) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:27) at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:644) at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:467) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:388) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:27) at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:541) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:644) at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:152) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:114) at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2689) ... 176 more

Avatar

Avatar

Gdubz-57m2mu

Avatar

Gdubz-57m2mu

Gdubz-57m2mu

16-12-2016

To provide a little more detail, I'm receiving these errors on my local AEM (6.2 with Communities FP1/FP2) servers running on OS X El Capitan (10.11.6) with Java 1.8 Update 31 (jdk 1.8.0_31).

I tested the same functionality on some local AEM (6.2 with Communities FP1/FP2) servers running on Windows 7 Enterprise (Service Pack 1) with Java 1.8 Update 66 (jdk 1.8.0_66), and the User Sync diagnostics tool works just fine.