We're updating the issue view to help you get more done. 

High memory consumption in GSM due to rare condition

Description

Customer experienced OOM of GSM on rare occasion.
looking at the heap dump and code it seems that the task manager thread was waiting on synchronization and therefore tasks were not removed:
Object / Stack Frame |Name| Shallow Heap | Retained Heap |Context Class Loader|Is Daemon
----------------------------------------------------------------------------------------------------------------------------------------------------------------
at com.sun.jini.thread.TaskManager$TaskThread.run()V (TaskManager.java:392) | | | | |

  • <local> com.sun.jini.thread.TaskManager$TaskThread @ 0x6e249d918 GS-SDM Cache Task Thread

136

4,984

  • <local> com.sun.jini.thread.TaskManager @ 0x6c1bec410 Busy Monitor

72

803,413,392

 

  • <class> class com.sun.jini.thread.TaskManager @ 0x6c0b14040

8

8

 

  • contextClassLoader org.jini.rio.boot.ServiceClassLoader @ 0x6c08bfc10

112

88,888

 

  • threadName java.lang.String @ 0x6c303c7f8 GS-SDM Cache Task

24

80

 

  • threads java.util.ArrayList @ 0x6c39eb238

24

80

 

  • roTasks java.util.Collections$UnmodifiableRandomAccessList @ 0x6c39eb288

24

24

 

  • tasks java.util.ArrayList @ 0x6c39eb2a0

24

803,413,216

'- Total: 6 entries

'- Total: 2 entries | | | | |
Line 392 at that version (12.1.1) is synchronized (TaskManager.this) :
@Override
public void run() {
while (true) {
synchronized (TaskManager.this) {

Thread dump and heap dump are avialable

Workaround

None

Acceptance Test

None

Status

Assignee

Unassigned

Reporter

Ester Atzmon

Labels

None

Priority

Medium

SalesForce Case ID

00011856

Fix versions

None

Commitment Version/s

None

Due date

None

Product

None

Edition

Open Source

Platform

All