On 01/03/2011 12:38 PM, Andreas Hahn wrote:
  Hi XWiki users,
 fwiw I just want to share my experiences and observations with XWiki
 instance running out of memory.
 I was having a hard time to track this down but in the end I could
 successfully isolate the problem.
 For quite some time my XWiki instance was getting unresponsive to
 requests sooner or later.
 The Wiki was hosted on a VirtualBox VM and in most cases the VM guest
 was just freezing and needed to be restarted leaving no usable traces in
 the logs. In some cases I even found JVM crash reports so I first
 checked different JVMs and VirtualBox versions (PUEL and OSE licences).
 I had no success with this approach and so I moved the XWiki directly to
 a host environment (Ubuntu 10.10). I added Server instrumentation
 (VisualVM) but still the wiki got down after a while. Surprisingly the
 system was hanging although in many cases there was even enough memory
 available (I checked different VM settings up to 4GB).
 Finally a VisualVM thread dump showed what happened:
 When the robots came visiting my service they query a large number of
 pages and among them was one user-url:
 .../XWiki/someUser which ran into an infinite looping condition when
 rendering the page.
 I don't know how this could happen but as a result the whole memory was
 consumed and partly released afterwards so it seemed that there is still
 enough space available. Once this happened however the Webserver needed
 to be restarted because it wasn't responsive any more.
 Since I have deleted this user account everything is running ok for a
 couple of days now - I still have to move the service back into the
 VirtualBox guest VM.
 What puzzles me finally that its possible that one single request can
 kill the service by going into an infinte rendering loop.
 I would have thought that at some level there is a depth limit to
 prevent such conditions. 
Normally, there are recursion checks in different places, like velocity
macros can be nested to at most 20 levels (100 in 3.0). What would help
is exporting the user profile as XAR and uploading it somewhere so that
we can see what's causing this specific problem.
  Hope these observations help someone though ....
--
Sergiu Dumitriu
http://purl.org/net/sergiu/