You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (JIRA)" <ji...@apache.org> on 2015/11/18 23:51:11 UTC

[jira] [Resolved] (WICKET-6035) java.lang.StackOverflowError if Wicket requests misdirected by load balancer

     [ https://issues.apache.org/jira/browse/WICKET-6035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov resolved WICKET-6035.
-------------------------------------
    Resolution: Duplicate

This will be hard to reproduce.
Looking at the stacktrace it looks to be related to WICKET-6027

> java.lang.StackOverflowError if Wicket requests misdirected by load balancer
> ----------------------------------------------------------------------------
>
>                 Key: WICKET-6035
>                 URL: https://issues.apache.org/jira/browse/WICKET-6035
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 7.1.0
>         Environment: Jetty 9.3.5, F5 load balancer
>            Reporter: Ryan Martin
>            Priority: Minor
>
> We've encountered what appears to be an infinite loop leading to a java.lang.StackOverflowError in Wicket 7.1 when a Wicket request is guided to the wrong server by our load balancer. We inadvertently set the load balancer affinity timeout to 3 minutes, while the page expiration was set to 10 minutes. Most of the errors caused by this were fairly routine "ComponentNotFound" exceptions, as one would expect when a Wicket request goes to the wrong server. However, the StackOverflowError was more alarming.
> java.lang.StackOverflowError: null
>         at org.apache.wicket.markup.DefaultMarkupCacheKeyProvider.getCacheKey(DefaultMarkupCacheKeyProvider.java:57) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.MarkupCache.getMarkup(MarkupCache.java:276) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.MarkupFactory.getMarkup(MarkupFactory.java:236) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.MarkupFactory.getMarkup(MarkupFactory.java:194) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.MarkupContainer.getAssociatedMarkup(MarkupContainer.java:423) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.getMarkup(AssociatedMarkupSourcingStrategy.java:95) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:469) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.Component.getMarkup(Component.java:755) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.internal.Enclosure.getChild(Enclosure.java:138) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.internal.Enclosure.isVisible(Enclosure.java:173) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:75) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.getMarkup(AssociatedMarkupSourcingStrategy.java:123) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:469) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.Component.getMarkup(Component.java:755) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.internal.Enclosure.getChild(Enclosure.java:138) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.internal.Enclosure.isVisible(Enclosure.java:173) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:75) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.getMarkup(AssociatedMarkupSourcingStrategy.java:123) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:469) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.Component.getMarkup(Component.java:755) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.internal.Enclosure.getChild(Enclosure.java:138) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.internal.Enclosure.isVisible(Enclosure.java:173) ~[wicket-core-7.1.0.jar:7.1.0]
>         at org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:75) ~[wicket-core-7.1.0.jar:7.1.0]
> The last six lines repeat up to the limit of the Java stacktrace output size.
> We haven't been able to reproduce in a quickstart yet, but we verified that the issue arises when the load balancer affinity fails, and goes away when we increase the timeout or drop back to a single server.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)