GC overhead limit exceeded

0
Hi, we’re receiving critical log messages, and the following error is shown in the log. Do you have suggestions or know which component this is? Jul 12 11:01:05.315 - CRITICAL - ActionManager: Error in execution of monitored action 'RegularClientAction' (execution id: 1594544260276-30, execution type: CLIENT) Jul 12 11:01:05.316 - CRITICAL - ActionManager: (1/33) java.lang.OutOfMemoryError: GC overhead limit exceeded Jul 12 11:01:05.318 - CRITICAL - ActionManager: (2/33) #011at sun.util.calendar.Gregorian.newCalendarDate(Gregorian.java:85) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (3/33) #011at sun.util.calendar.Gregorian.newCalendarDate(Gregorian.java:37) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (4/33) #011at java.util.SimpleTimeZone.getOffsets(SimpleTimeZone.java:560) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (5/33) #011at java.util.SimpleTimeZone.getOffset(SimpleTimeZone.java:539) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (6/33) #011at sun.util.calendar.ZoneInfo.getOffsets(ZoneInfo.java:293) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (7/33) #011at sun.util.calendar.ZoneInfo.getOffsets(ZoneInfo.java:236) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (8/33) #011at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2340) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (9/33) #011at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2312) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (10/33) #011at java.util.Calendar.setTimeInMillis(Calendar.java:1804) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (11/33) #011at java.util.Calendar.setTime(Calendar.java:1770) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (12/33) #011at java.text.SimpleDateFormat.format(SimpleDateFormat.java:943) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (13/33) #011at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (14/33) #011at java.text.DateFormat.format(DateFormat.java:345) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (15/33) #011at com.mendix.languages.expressions.DateTimeFunctionCallEvaluator.formatWithCalendar(DateTimeFunctionCallEvaluator.java:104) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (16/33) #011at com.mendix.languages.expressions.DateTimeFunctionCallEvaluator.evaluateFormatDateTimeWithCalendar(DateTimeFunctionCallEvaluator.java:80) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (17/33) #011at com.mendix.languages.expressions.DateTimeFunctionCallEvaluator.evaluateFormatDateTime(DateTimeFunctionCallEvaluator.java:67) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (18/33) #011at com.mendix.languages.expressions.FunctionCallExpr.evaluateExpression(FunctionCallExpr.java:132) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (19/33) #011at com.mendix.languages.expressions.Expr.evaluate(Expr.java:30) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (20/33) #011at com.mendix.languages.expressions.FunctionCallExpr.evaluateParameters(FunctionCallExpr.java:289) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (21/33) #011at com.mendix.languages.expressions.FunctionCallExpr.evaluateExpression(FunctionCallExpr.java:56) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (22/33) #011at com.mendix.languages.expressions.Expr.evaluate(Expr.java:30) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (23/33) #011at com.mendix.languages.mxexpressions.MxExpression.evaluate(MxExpression.scala:14) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (24/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.processActionItem(ChangeItemsExecutor.scala:89) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (25/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.$anonfun$executeChanges$2(ChangeItemsExecutor.scala:45) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (26/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.$anonfun$executeChanges$2$adapted(ChangeItemsExecutor.scala:45) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (27/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor$$Lambda$1025/875963578.apply(Unknown Source) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (28/33) #011at scala.collection.immutable.List.foreach(List.scala:392) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (29/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.executeChanges(ChangeItemsExecutor.scala:45) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (30/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.executeChanges$(ChangeItemsExecutor.scala:27) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (31/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeAction.executeChanges(ChangeAction.scala:20) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (32/33) #011at com.mendix.modules.microflowengine.actions.mxobject.CreateChangeAction.execute(CreateChangeAction.scala:27) Jul 12 11:01:05.318 - CRITICAL - ActionManager: (33/33) #011at com.mendix.modules.microflowengine.actions.mxobject.CreateChangeAction.execute(CreateChangeAction.scala:10) Jul 12 11:01:05.318 - CRITICAL - M2EE: An unhandled error occurred in the MxRuntime. Jul 12 11:01:05.318 - CRITICAL - M2EE: (1/33) java.lang.OutOfMemoryError: GC overhead limit exceeded Jul 12 11:01:05.318 - CRITICAL - M2EE: (2/33) #011at sun.util.calendar.Gregorian.newCalendarDate(Gregorian.java:85) Jul 12 11:01:05.318 - CRITICAL - M2EE: (3/33) #011at sun.util.calendar.Gregorian.newCalendarDate(Gregorian.java:37) Jul 12 11:01:05.318 - CRITICAL - M2EE: (4/33) #011at java.util.SimpleTimeZone.getOffsets(SimpleTimeZone.java:560) Jul 12 11:01:05.318 - CRITICAL - M2EE: (5/33) #011at java.util.SimpleTimeZone.getOffset(SimpleTimeZone.java:539) Jul 12 11:01:05.318 - CRITICAL - M2EE: (6/33) #011at sun.util.calendar.ZoneInfo.getOffsets(ZoneInfo.java:293) Jul 12 11:01:05.318 - CRITICAL - M2EE: (7/33) #011at sun.util.calendar.ZoneInfo.getOffsets(ZoneInfo.java:236) Jul 12 11:01:05.318 - CRITICAL - M2EE: (8/33) #011at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2340) Jul 12 11:01:05.318 - CRITICAL - M2EE: (9/33) #011at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2312) Jul 12 11:01:05.318 - CRITICAL - M2EE: (10/33) #011at java.util.Calendar.setTimeInMillis(Calendar.java:1804) Jul 12 11:01:05.318 - CRITICAL - M2EE: (11/33) #011at java.util.Calendar.setTime(Calendar.java:1770) Jul 12 11:01:05.318 - CRITICAL - M2EE: (12/33) #011at java.text.SimpleDateFormat.format(SimpleDateFormat.java:943) Jul 12 11:01:05.318 - CRITICAL - M2EE: (13/33) #011at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936) Jul 12 11:01:05.318 - CRITICAL - M2EE: (14/33) #011at java.text.DateFormat.format(DateFormat.java:345) Jul 12 11:01:05.318 - CRITICAL - M2EE: (15/33) #011at com.mendix.languages.expressions.DateTimeFunctionCallEvaluator.formatWithCalendar(DateTimeFunctionCallEvaluator.java:104) Jul 12 11:01:05.318 - CRITICAL - M2EE: (16/33) #011at com.mendix.languages.expressions.DateTimeFunctionCallEvaluator.evaluateFormatDateTimeWithCalendar(DateTimeFunctionCallEvaluator.java:80) Jul 12 11:01:05.318 - CRITICAL - M2EE: (17/33) #011at com.mendix.languages.expressions.DateTimeFunctionCallEvaluator.evaluateFormatDateTime(DateTimeFunctionCallEvaluator.java:67) Jul 12 11:01:05.318 - CRITICAL - M2EE: (18/33) #011at com.mendix.languages.expressions.FunctionCallExpr.evaluateExpression(FunctionCallExpr.java:132) Jul 12 11:01:05.318 - CRITICAL - M2EE: (19/33) #011at com.mendix.languages.expressions.Expr.evaluate(Expr.java:30) Jul 12 11:01:05.318 - CRITICAL - M2EE: (20/33) #011at com.mendix.languages.expressions.FunctionCallExpr.evaluateParameters(FunctionCallExpr.java:289) Jul 12 11:01:05.318 - CRITICAL - M2EE: (21/33) #011at com.mendix.languages.expressions.FunctionCallExpr.evaluateExpression(FunctionCallExpr.java:56) Jul 12 11:01:05.318 - CRITICAL - M2EE: (22/33) #011at com.mendix.languages.expressions.Expr.evaluate(Expr.java:30) Jul 12 11:01:05.318 - CRITICAL - M2EE: (23/33) #011at com.mendix.languages.mxexpressions.MxExpression.evaluate(MxExpression.scala:14) Jul 12 11:01:05.318 - CRITICAL - M2EE: (24/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.processActionItem(ChangeItemsExecutor.scala:89) Jul 12 11:01:05.318 - CRITICAL - M2EE: (25/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.$anonfun$executeChanges$2(ChangeItemsExecutor.scala:45) Jul 12 11:01:05.318 - CRITICAL - M2EE: (26/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.$anonfun$executeChanges$2$adapted(ChangeItemsExecutor.scala:45) Jul 12 11:01:05.318 - CRITICAL - M2EE: (27/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor$$Lambda$1025/875963578.apply(Unknown Source) Jul 12 11:01:05.318 - CRITICAL - M2EE: (28/33) #011at scala.collection.immutable.List.foreach(List.scala:392) Jul 12 11:01:05.318 - CRITICAL - M2EE: (29/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.executeChanges(ChangeItemsExecutor.scala:45) Jul 12 11:01:05.318 - CRITICAL - M2EE: (30/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.executeChanges$(ChangeItemsExecutor.scala:27) Jul 12 11:01:05.318 - CRITICAL - M2EE: (31/33) #011at com.mendix.modules.microflowengine.actions.mxobject.ChangeAction.executeChanges(ChangeAction.scala:20) Jul 12 11:01:05.318 - CRITICAL - M2EE: (32/33) #011at com.mendix.modules.microflowengine.actions.mxobject.CreateChangeAction.execute(CreateChangeAction.scala:27) Jul 12 11:01:05.318 - CRITICAL - M2EE: (33/33) #011at com.mendix.modules.microflowengine.actions.mxobject.CreateChangeAction.execute(CreateChangeAction.scala:10) Jul 12 11:03:49.452 - CRITICAL - ActionManager: Error in execution of monitored action 'RegularClientAction' (execution id: 1594544236788-7, execution type: CLIENT) Jul 12 11:03:49.452 - CRITICAL - ActionManager: (1/33) java.lang.OutOfMemoryError: GC overhead limit exceeded Jul 12 11:03:49.452 - CRITICAL - ActionManager: (2/33) #011at scala.collection.mutable.ListBuffer.$plus$eq(ListBuffer.scala:176) Jul 12 11:03:49.452 - CRITICAL - ActionManager: (3/33) #011at scala.collection.mutable.ListBuffer.$plus$eq(ListBuffer.scala:47) Jul 12 11:03:49.452 - CRITICAL - ActionManager: (4/33) #011at scala.collection.generic.Growable.$anonfun$$plus$plus$eq$1(Growable.scala:62) Jul 12 11:03:49.452 - CRITICAL - ActionManager: (5/33) #011at scala.collection.generic.Growable$$Lambda$257/992743048.apply(Unknown Source) Jul 12 11:03:49.452 - CRITICAL - ActionManager: (6/33) #011at scala.collection.Iterator.foreach(Iterator.scala:941) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (7/33) #011at scala.collection.Iterator.foreach$(Iterator.scala:941) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (8/33) #011at scala.collection.AbstractIterator.foreach(Iterator.scala:1429) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (9/33) #011at scala.collection.IterableLike.foreach(IterableLike.scala:74) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (10/33) #011at scala.collection.IterableLike.foreach$(IterableLike.scala:73) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (11/33) #011at scala.collection.AbstractIterable.foreach(Iterable.scala:56) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (12/33) #011at scala.collection.generic.Growable.$plus$plus$eq(Growable.scala:62) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (13/33) #011at scala.collection.generic.Growable.$plus$plus$eq$(Growable.scala:53) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (14/33) #011at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:189) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (15/33) #011at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:47) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (16/33) #011at scala.collection.TraversableLike.to(TraversableLike.scala:593) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (17/33) #011at scala.collection.TraversableLike.to$(TraversableLike.scala:590) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (18/33) #011at scala.collection.AbstractTraversable.to(Traversable.scala:108) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (19/33) #011at scala.collection.TraversableOnce.toList(TraversableOnce.scala:297) Jul 12 11:03:49.453 - CRITICAL - ActionManager: (20/33) #011at scala.collection.TraversableOnce.toList$(TraversableOnce.scala:297) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (21/33) #011at scala.collection.AbstractTraversable.toList(Traversable.scala:108) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (22/33) #011at com.mendix.languages.expressions.Expr.getMaxPrimitiveType(Expr.java:56) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (23/33) #011at com.mendix.languages.expressions.Expr.getMaxPrimitiveType(Expr.java:49) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (24/33) #011at com.mendix.languages.expressions.BinaryExpr.evaluateEqualityExpression(BinaryExpr.java:270) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (25/33) #011at com.mendix.languages.expressions.BinaryExpr.evaluateExpression(BinaryExpr.java:92) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (26/33) #011at com.mendix.languages.expressions.Expr.evaluate(Expr.java:30) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (27/33) #011at com.mendix.languages.mxexpressions.MxExpression.evaluate(MxExpression.scala:14) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (28/33) #011at com.mendix.modules.microflowengine.actions.other.GatewayAction.execute(GatewayAction.scala:45) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (29/33) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (30/33) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:201) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (31/33) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:157) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (32/33) #011at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46) Jul 12 11:03:49.454 - CRITICAL - ActionManager: (33/33) #011at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:79) Jul 12 11:03:49.454 - CRITICAL - M2EE: An unhandled error occurred in the MxRuntime. Jul 12 11:03:49.454 - CRITICAL - M2EE: (1/33) java.lang.OutOfMemoryError: GC overhead limit exceeded Jul 12 11:03:49.454 - CRITICAL - M2EE: (2/33) #011at scala.collection.mutable.ListBuffer.$plus$eq(ListBuffer.scala:176) Jul 12 11:03:49.454 - CRITICAL - M2EE: (3/33) #011at scala.collection.mutable.ListBuffer.$plus$eq(ListBuffer.scala:47) Jul 12 11:03:49.454 - CRITICAL - M2EE: (4/33) #011at scala.collection.generic.Growable.$anonfun$$plus$plus$eq$1(Growable.scala:62) Jul 12 11:03:49.454 - CRITICAL - M2EE: (5/33) #011at scala.collection.generic.Growable$$Lambda$257/992743048.apply(Unknown Source) Jul 12 11:03:49.454 - CRITICAL - M2EE: (6/33) #011at scala.collection.Iterator.foreach(Iterator.scala:941) Jul 12 11:03:49.454 - CRITICAL - M2EE: (7/33) #011at scala.collection.Iterator.foreach$(Iterator.scala:941) Jul 12 11:03:49.454 - CRITICAL - M2EE: (8/33) #011at scala.collection.AbstractIterator.foreach(Iterator.scala:1429) Jul 12 11:03:49.454 - CRITICAL - M2EE: (9/33) #011at scala.collection.IterableLike.foreach(IterableLike.scala:74) Jul 12 11:03:49.454 - CRITICAL - M2EE: (10/33) #011at scala.collection.IterableLike.foreach$(IterableLike.scala:73) Jul 12 11:03:49.454 - CRITICAL - M2EE: (11/33) #011at scala.collection.AbstractIterable.foreach(Iterable.scala:56) Jul 12 11:03:49.454 - CRITICAL - M2EE: (12/33) #011at scala.collection.generic.Growable.$plus$plus$eq(Growable.scala:62) Jul 12 11:03:49.454 - CRITICAL - M2EE: (13/33) #011at scala.collection.generic.Growable.$plus$plus$eq$(Growable.scala:53) Jul 12 11:03:49.454 - CRITICAL - M2EE: (14/33) #011at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:189) Jul 12 11:03:49.454 - CRITICAL - M2EE: (15/33) #011at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:47) Jul 12 11:03:49.454 - CRITICAL - M2EE: (16/33) #011at scala.collection.TraversableLike.to(TraversableLike.scala:593) Jul 12 11:03:49.454 - CRITICAL - M2EE: (17/33) #011at scala.collection.TraversableLike.to$(TraversableLike.scala:590) Jul 12 11:03:49.454 - CRITICAL - M2EE: (18/33) #011at scala.collection.AbstractTraversable.to(Traversable.scala:108) Jul 12 11:03:49.454 - CRITICAL - M2EE: (19/33) #011at scala.collection.TraversableOnce.toList(TraversableOnce.scala:297) Jul 12 11:03:49.454 - CRITICAL - M2EE: (20/33) #011at scala.collection.TraversableOnce.toList$(TraversableOnce.scala:297) Jul 12 11:03:49.454 - CRITICAL - M2EE: (21/33) #011at scala.collection.AbstractTraversable.toList(Traversable.scala:108) Jul 12 11:03:49.454 - CRITICAL - M2EE: (22/33) #011at com.mendix.languages.expressions.Expr.getMaxPrimitiveType(Expr.java:56) Jul 12 11:03:49.454 - CRITICAL - M2EE: (23/33) #011at com.mendix.languages.expressions.Expr.getMaxPrimitiveType(Expr.java:49) Jul 12 11:03:49.454 - CRITICAL - M2EE: (24/33) #011at com.mendix.languages.expressions.BinaryExpr.evaluateEqualityExpression(BinaryExpr.java:270) Jul 12 11:03:49.454 - CRITICAL - M2EE: (25/33) #011at com.mendix.languages.expressions.BinaryExpr.evaluateExpression(BinaryExpr.java:92) Jul 12 11:03:49.454 - CRITICAL - M2EE: (26/33) #011at com.mendix.languages.expressions.Expr.evaluate(Expr.java:30) Jul 12 11:03:49.454 - CRITICAL - M2EE: (27/33) #011at com.mendix.languages.mxexpressions.MxExpression.evaluate(MxExpression.scala:14) Jul 12 11:03:49.454 - CRITICAL - M2EE: (28/33) #011at com.mendix.modules.microflowengine.actions.other.GatewayAction.execute(GatewayAction.scala:45) Jul 12 11:03:49.454 - CRITICAL - M2EE: (29/33) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47) Jul 12 11:03:49.454 - CRITICAL - M2EE: (30/33) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:201) Jul 12 11:03:49.454 - CRITICAL - M2EE: (31/33) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:157) Jul 12 11:03:49.454 - CRITICAL - M2EE: (32/33) #011at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46) Jul 12 11:03:49.454 - CRITICAL - M2EE: (33/33) #011at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:79)  
asked
2 answers
3

Out of memory exceptions are project specific, and it'll be very hard to point to a specific part in your application without having knowledge of it. This is one of two types of common out of memory exception (the other is a heap space error). Such error are hard to debug, mostly because there is very little information available after the crash.

The CG overhead limit exceeded is caused by the garbage collector looking for memory to free, but it doesn't find any. Usually, this indicates that there are many concurrent actions running on the server, or that one component has a memory leak (i.e. it doesn't let the garbage collector free the memory even when the component doesn't need it anymore).

The Mendix Cloud provides some tools to help you diagnose these problems when the system is running. The first thing to check would be Metrics of your environment, and the tab Running Now. The second thing to check is the Metrics, JVM object heap. You should see the read area being garbage collected once it reaches around 60% of total memory and the pink area should be garbage collected to look like triangles. I would consider the following picture okay, although the amount of free space from the red area is very little. Then again, this is a small test environment, so it's probably okay.

If either red of pink area's keep increasing (such as in the image below), there is a memory leak. In this case, I believe you can request a memory dump from Mendix (or you can try to run your app locally and make a memory dump there). Such a memory dump can be analyzed, e.g. by using the MAT plugin for Eclipse. When looking at a memory dump, you will see the objects that are present in memory, and this will usually point to the problem area in your application.

answered
1

This actually means application needs (Java) memory to create more objects, but java memory is already full of active objects in which moment, garbage collection kicks in and tries to free up memory. But given almost most of the objects in memory are active, it cleans up very little, but also spends more time in cleaning. 

Indeed its quite hard to trace why GC overhead limit exceeded. But few pointers based on my experience:

  1. Immediate temporary solution: the INFRA must be upgraded to support the amount of concurrent users using the application. 
  2. Check if your INFRA can support the number of concurrent users. 
  3. When this issue occurs, in my situation happened many times, I would download the logs and try to find the pattern of usage by our users.
  4. We might be able to find which particular functionality when overused causes this. And see, if we can limit some dataset on those areas to fix this. 
  5. Trust me, I have looked in heap dumps of Mendix many times. But it never gave me much useful information, thats because of how Mendix is built internally. End of line, you see mostly String and a lot of Strings. MAT or JvisualVM no difference. 

 

This is not JVM running out of memory, which is memory leaks that can be analysed and fixed.

IMHO, limiting data being processed and/or increasing Hardware might be fix the issue.

answered