dev@glassfish.java.net

Re: Flashlight loop

From: Mahesh Kannan <Mahesh.Kannan_at_Sun.COM>
Date: Wed, 13 Aug 2008 21:15:54 -0700

This has been fixed. The problem was when a session expired, the probe
event handler did a toString() (on WebSession which again generated the
same probe event) and this caused an infinite loop.

Sending
flashlight/framework/src/main/java/org/glassfish/flashlight/impl/client/ReflectiveClientInvoker.java
Sending
flashlight/framework/src/main/java/org/glassfish/flashlight/impl/core/ProviderImplGenerator.java
Sending
flashlight/framework/src/main/java/org/glassfish/flashlight/impl/provider/FlashlightProbeProviderFactory.java
Sending
flashlight/framework/src/main/java/org/glassfish/flashlight/provider/ProbeProviderEventManager.java
Sending
flashlight/framework/src/main/java/org/glassfish/flashlight/provider/ProbeRegistry.java
Transmitting file data .....
Committed revision 21883.

Thanks,
--Mahesh


Ken Paulsen wrote:
>
> I left my server running and apparently the session expired... I got
> the following StackOverFlowError in my server.log:
>
> Aug 14, 2008 3:10:04 AM INFO: [FL] fireProbe?? ==> true 1[FL]
> fireProbe?? ==> true 1
> Aug 14, 2008 3:10:04 AM INFO: [FL] method: requestStartEvent **Arg:
> org.apache.catalina.connector.RequestFacade_at_14b52aa
> Aug 14, 2008 3:10:04 AM INFO: [FL] method: requestStartEvent **Arg:
> org.apache.catalina.connector.ResponseFacade_at_2026f3
> Aug 14, 2008 3:10:04 AM INFO: [FL] fireProbe?? ==> true 1
> Aug 14, 2008 3:10:04 AM INFO: [FL] fireProbe?? ==> true 1
> Aug 14, 2008 3:10:04 AM INFO: [FL] fireProbe?? ==> true 1
> Aug 14, 2008 3:10:04 AM
> ... (for a long time!) Then:
>
>
> INFO: [FL] fireProbe?? ==> true 1
> Aug 14, 2008 3:10:05 AM INFO: [FL] fireProbe?? ==> true 1[FL]
> fireProbe?? ==> true 1
> Aug 14, 2008 3:10:05 AM INFO: [FL] fireProbe?? ==> true 1
> Aug 14, 2008 3:10:05 AM org.apache.catalina.connector.CoyoteAdapter
> service
> SEVERE: PWC3989: An exception or error occurred in the container
> during the request processing
> java.lang.StackOverflowError
> at sun.nio.cs.UTF_8$Decoder.decodeArrayLoop(UTF_8.java:212)
> at sun.nio.cs.UTF_8$Decoder.decodeLoop(UTF_8.java:358)
> at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:544)
> at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:140)
> at java.lang.StringCoding.decode(StringCoding.java:173)
> at java.lang.StringCoding.decode(StringCoding.java:185)
> at java.lang.String.<init>(String.java:571)
> at
> java.io.ByteArrayOutputStream.toString(ByteArrayOutputStream.java:163)
> at
> com.sun.common.util.logging.LoggingOutputStream.flush(LoggingOutputStream.java:82)
>
> at java.io.PrintStream.write(PrintStream.java:432)
> at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
> at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
> at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85)
> at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168)
> at java.io.PrintStream.write(PrintStream.java:477)
> at java.io.PrintStream.print(PrintStream.java:619)
> at java.io.PrintStream.println(PrintStream.java:756)
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:97)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> at org.glassfish.flashlight.provider.Probe.fireProbe(Probe.java:99)
> at
> org.glassfish.web.admin.monitor.SessionProbeProvider_web_Flashlight_session_App_.sessionExpiredEvent(Unknown
> Source)
> at
> com.sun.enterprise.web.WebModule.sessionExpiredEvent(WebModule.java:1622)
> at
> org.apache.catalina.session.StandardSession.isValid(StandardSession.java:670)
>
> at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1225)
>
> at
> org.apache.catalina.session.StandardSession.toString(StandardSession.java:1080)
>
> at java.lang.String.valueOf(String.java:2827)
> at java.lang.StringBuilder.append(StringBuilder.java:115)
> at
> org.glassfish.flashlight.impl.client.ReflectiveClientInvoker.invoke(ReflectiveClientInvoker.java:103)
>
> ... (for a long time)
>
> Earlier in my log I got a similar with this part being different:
>
> INFO: [FL] fireProbe?? ==> true 1
> Aug 14, 2008 3:09:13 AM INFO: [FL] fireProbe?? ==> true 1
> Aug 14, 2008 3:09:13 AM INFO: [FL] fireProbe?? ==> true 1
> Aug 14, 2008 3:09:13 AM
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor
> processChildren
> SEVERE: Exception invoking periodic operation:
> java.lang.StackOverflowError
> at sun.nio.cs.UTF_8$Decoder.decodeArrayLoop(UTF_8.java:212)
> at sun.nio.cs.UTF_8$Decoder.decodeLoop(UTF_8.java:358)
>
> ... (the rest was the same) This error came up multiple times.
>
> Ken
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>