headwirecom / themeclean-flex

Super fast, Super clean, Peregrine Theme
https://www.peregrine-cms.com
Apache License 2.0
3 stars 21 forks source link

Reference component may cause OutOfMemoryError #163

Open reggie7 opened 3 years ago

reggie7 commented 3 years ago

One can easily break the page with the Reference component.

Steps to Reproduce

  1. Add new page,
  2. Add Reference component,
  3. Point it to the same page.

Expected Result: no big deal, system handles it somehow. Actual Result: java.lang.OutOfMemoryError:

Java heap space (500)
The requested URL /content/test/pages/index.html resulted in an error in /apps/pagerendervue/structure/page/page.html.

Exception:
java.lang.OutOfMemoryError: Java heap space
    at java.base/java.util.Arrays.copyOfRange(Arrays.java:4030)
    at java.base/java.lang.StringLatin1.newString(StringLatin1.java:715)
    at java.base/java.lang.StringBuilder.toString(StringBuilder.java:448)
    at ch.qos.logback.classic.pattern.ThrowableProxyConverter.throwableProxyToString(ThrowableProxyConverter.java:153)
    at ch.qos.logback.classic.pattern.ThrowableProxyConverter.convert(ThrowableProxyConverter.java:145)
    at ch.qos.logback.classic.pattern.ThrowableProxyConverter.convert(ThrowableProxyConverter.java:35)
    at ch.qos.logback.core.pattern.FormattingConverter.write(FormattingConverter.java:36)
    at ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(PatternLayoutBase.java:115)
    at ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:141)
    at ch.qos.logback.classic.PatternLayout.doLayout(PatternLayout.java:39)
    at org.apache.sling.commons.log.logback.internal.util.LoggerSpecificEncoder.encode(LoggerSpecificEncoder.java:43)
    at org.apache.sling.commons.log.logback.internal.util.LoggerSpecificEncoder.encode(LoggerSpecificEncoder.java:33)
    at ch.qos.logback.core.OutputStreamAppender.subAppend(OutputStreamAppender.java:230)
    at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:235)
    at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:102)
    at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(UnsynchronizedAppenderBase.java:84)
    at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
    at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
    at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
    at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
    at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
    at ch.qos.logback.classic.Logger.error(Logger.java:538)
    at org.apache.sling.scripting.sightly.render.ObjectModel.invokeBeanMethod(ObjectModel.java:420)
    at org.apache.sling.scripting.sightly.render.ObjectModel.resolveProperty(ObjectModel.java:128)
    at org.apache.sling.scripting.sightly.render.AbstractRuntimeObjectModel.getProperty(AbstractRuntimeObjectModel.java:138)
    at org.apache.sling.scripting.sightly.impl.engine.runtime.SlingRuntimeObjectModel.getProperty(SlingRuntimeObjectModel.java:32)
    at org.apache.sling.scripting.sightly.render.AbstractRuntimeObjectModel.resolveProperty(AbstractRuntimeObjectModel.java:74)
    at org.apache.sling.scripting.sightly.apps.pagerendervue.structure.page.page__002e__html.render(page__002e__html.java:760)
    at org.apache.sling.scripting.sightly.render.RenderUnit.render(RenderUnit.java:53)
    at org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript.eval(SightlyCompiledScript.java:60)
    at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386)
    at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184)
Request Progress:
      0 TIMER_START{Request Processing}
      2 COMMENT timer_end format is {<elapsed microseconds>,<timer name>} <optional message>
      9 LOG Method=GET, PathInfo=null
     10 TIMER_START{handleSecurity}
   1812 TIMER_END{1800,handleSecurity} authenticator org.apache.sling.auth.core.impl.SlingAuthenticator@386a8414 returns true
   6237 TIMER_START{ResourceResolution}
   6462 TIMER_END{223,ResourceResolution} URI=/content/test/pages/index.html resolves to Resource=JcrNodeResource, type=per:Page, superType=null, path=/content/test/pages/index
   6469 LOG Resource Path Info: SlingRequestPathInfo: path='/content/test/pages/index', selectorString='null', extension='html', suffix='null'
   6469 TIMER_START{ServletResolution}
   6473 TIMER_START{resolveServlet(/content/test/pages/index)}
   6491 TIMER_END{17,resolveServlet(/content/test/pages/index)} Using servlet /apps/per/Page/Page.html
   6493 TIMER_END{23,ServletResolution} URI=/content/test/pages/index.html handled by Servlet=/apps/per/Page/Page.html
   6496 LOG Applying Requestfilters
   6503 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
   6507 LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter
   6521 LOG Applying Componentfilters
   6528 TIMER_START{/apps/per/Page/Page.html#0}
   7205 LOG Including resource JcrNodeResource, type=themecleanflex/components/page, superType=null, path=/content/test/pages/index/jcr:content (SlingRequestPathInfo: path='/content/test/pages/index/jcr:content', selectorString='null', extension='html', suffix='null')
   7212 TIMER_START{resolveServlet(/content/test/pages/index/jcr:content)}
   7234 TIMER_END{20,resolveServlet(/content/test/pages/index/jcr:content)} Using servlet /apps/pagerendervue/structure/page/page.html
   7238 LOG Applying Includefilters
   7247 TIMER_START{/apps/pagerendervue/structure/page/page.html#1}
5559711 TIMER_END{5552459,/apps/pagerendervue/structure/page/page.html#1}
5560230 TIMER_END{5553699,/apps/per/Page/Page.html#0}
5561356 LOG Filter timing: filter=org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter, inner=5,554, total=5,554, outer=0
5561369 LOG Filter timing: filter=org.apache.sling.i18n.impl.I18NFilter, inner=5,554, total=5,554, outer=0
5563728 LOG Applying Error filters
5563742 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
5563829 TIMER_START{handleError:throwable=java.lang.OutOfMemoryError}
5565001 TIMER_END{1171,handleError:throwable=java.lang.OutOfMemoryError} Using handler org.apache.sling.servlets.resolver.internal.defaults.DefaultErrorHandlerServlet
5567801 TIMER_END{5567799,Request Processing} Dumping SlingRequestProgressTracker Entries
ApacheSling/2.7 (jetty/9.4.28.v20200408, OpenJDK 64-Bit Server VM 11.0.8, Linux 4.19.76-linuxkit amd64)

outofmemoryerror

GastonGonzalez commented 3 years ago

Another good catch, @reggie7. Thanks. We'll prioritize these latest tickets, shortly.

reusr1 commented 3 years ago

@reggie7 can you create the correpsonding ticket in https://github.com/headwirecom/themeclean-flex?

reggie7 commented 3 years ago

@reusr1 - reproducible in develop + develop to some degree, the difference is that the page is loading and we get a js error: js-error