Hello,

This is real-life story. It started a relatively long time ago: our
demo server from time to time had OurOfMemory condition. It was
strange because the solution itself is very well "stress volume
tested". So we were just rebooting demo server after such incidents.
But it started to happen more frequently and we performed an
investigation with interesting results which can be used as Best
Practice and/or one more issue for Wicket.

1) We have found that most memory-consuming objects where java
Threads. Specifically for InspectorPage from Wicket devutils.
2) Our applications pages don't have memory leakage condition. But
there is one trick: some of our pages are built dynamically and
depends on a data model. Sometimes data model might be recurrent, so
without special treatment - Wicket will render that forever. We have
this protection on our pages, but that was a main root-cause
component: InspectorPage during inspecting of our pages for some
reason doesn't see that actually recurrent elements are cut during
rendering.
3) But how someone gets into InspectorPage? Apparently that was Google
- it was trying to index our demo site and there is no protection from
following to InspectorPage in DevUtils panel.

So, some lessons learned items and comments:
1) If it's possible - do not deploy DevUtils - use them during actual
development.
2) It will be good to investigate InspectorPage - why it's trying to
build structure infinitely disregard of the fact that on real page
it's actually cut off.
3) It might make sense to include such utils and etc into /robots.txt
to protect from indexing
4) Also, it might make sense to add "nofollow" to a link in DevUtils
panel which leads to InspectorPage

Thanks,
Ilia

---------------------------------------------
Orienteer(http://orienteer.org) - open source Business Application Platform

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to