Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4929301

Massive memory leak with jdk b16, not in jdk b15

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1
    • Resolution: Not an Issue
    • Affects Version/s: 5.0
    • Fix Version/s: None
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc
    • CPU:
      generic
    • OS:
      generic

      Description


      VolanTest shows a massive memory leak with JDK b16, a leak that is not present in b15.
      Switching the JVMs (b15's jvm and b16's jvm) made no difference. That is, the leak is not reproducible if b16's jvm is dropped into build 15, on the other
      hand, vtest runs out of heap space within 20 minutes if b15's jvm is put
      into build 16.
      I am not able to narrow it down to a specific component of libraries because
      simply putting b15's jdk into build 16 won't work and vice versa.

      The leaks shows up only on on machines with large numbers of CPU's, leading to
      some suspicion that concurrency may be essentially involved in the code that harbours this bug
      I have tested vtest on E450 ( against b16/17/18/19/20) and this problem never happened.
      The problem was first found on a E6800 ( 12 cpu * 1050MHZ )


      Below is comments from Ramki.

      > This is what the heap looks like with b16 (leaky) when the
      > app is about to die with an OOM:
      >
      > num #instances #bytes class name
      > --------------------------------------
      > 1: 358824 12544528 [C
      > 2: 121821 10481592 [Ljava.lang.Object;
      > 3: 61875 8497584 [B
      > 4: 328272 7878528 java.lang.String
      > 5: 101166 6474624 COM.volano.mbm
      > 6: 131909 3165816 java.util.Hashtable$Entry
      > 7: 111414 2673936 java.util.Vector
      > 8: 20408 1632640 java.lang.Thread
      > 9: 20404 1632320 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;
      > 10: 101170 1618720 java.lang.Integer
      > 11: 10235 1360072 [Ljava.util.Hashtable$Entry;
      > 12: 10202 1224240 java.net.SocksSocketImpl
      > 13: 6156 906480 <methodKlass>
      > 14: 10200 897600 COM.volano.mby
      > 15: 10200 734400 COM.volano.Access
      > 16: 10824 671904 [Ljava.lang.String;
      > 17: 20420 653440 java.lang.ref.Finalizer
      > 18: 20404 652928 java.lang.ThreadLocal$ThreadLocalMap$Entry
      > 19: 20404 489696 java.lang.ThreadLocal$ThreadLocalMap
      > 20: 10228 409120 java.util.Hashtable
      > 21: 10200 408000 java.net.SocketOutputStream
      > 22: 10862 395384 <symbolKlass>
      > 23: 10201 326432 java.io.BufferedInputStream
      > 24: 10200 326400 java.io.DataInputStream
      > 25: 10200 326400 java.net.SocketInputStream
      >
      > A little bit before that this is what the heap looked like:
      >
      > num #instances #bytes class name
      > --------------------------------------
      > 1: 356892 12496920 [C
      > 2: 120780 10422360 [Ljava.lang.Object;
      > 3: 61876 8499120 [B
      > 4: 326340 7832160 java.lang.String
      > 5: 100292 6418688 COM.volano.mbm
      > 6: 131035 3144840 java.util.Hashtable$Entry
      > 7: 110540 2652960 java.util.Vector
      > 8: 20408 1632640 java.lang.Thread
      > 9: 20404 1632320 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;
      > 10: 100296 1604736 java.lang.Integer
      > 11: 10235 1360072 [Ljava.util.Hashtable$Entry;
      > 12: 10202 1224240 java.net.SocksSocketImpl
      > 13: 6156 906480 <methodKlass>
      > 14: 10200 897600 COM.volano.mby
      > 15: 10200 734400 COM.volano.Access
      > 16: 10779 671296 [Ljava.lang.String;
      > 17: 20420 653440 java.lang.ref.Finalizer
      > 18: 20404 652928 java.lang.ThreadLocal$ThreadLocalMap$Entry
      > 19: 20404 489696 java.lang.ThreadLocal$ThreadLocalMap
      > 20: 10228 409120 java.util.Hashtable
      > 21: 10200 408000 java.net.SocketOutputStream
      > 22: 10862 395384 <symbolKlass>
      > 23: 10201 326432 java.io.BufferedInputStream
      > 24: 10200 326400 java.io.DataInputStream
      > 25: 10200 326400 java.net.SocketInputStream
      >
      > A normal run with b15 (not leaky) shows the following state of
      > the heap, although populations do fluctuate somewhat:
      >
      > num #instances #bytes class name
      > --------------------------------------
      > 1: 117022 3674720 [C
      > 2: 2040 3036144 [I
      > 3: 39847 2996616 [Ljava.lang.Object;
      > 4: 110265 2646360 java.lang.String
      > 5: 14122 2242408 [B
      > 6: 32958 2109312 COM.volano.mbm
      > 7: 43301 1039224 java.util.Hashtable$Entry
      > 8: 3435 979272 [Ljava.util.Hashtable$Entry;
      > 9: 36405 873720 java.util.Vector
      > 10: 5667 828168 <methodKlass>
      > 11: 6808 544640 java.lang.Thread
      > 12: 6804 544320 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;
      > 13: 32962 527392 java.lang.Integer
      > 14: 10201 370352 <symbolKlass>
      > 15: 3402 299376 java.net.PlainSocketImpl
      > 16: 3400 299200 COM.volano.mby
      > 17: 441 248816 <constantPoolKlass>
      > 18: 3400 244800 COM.volano.Access
      > 19: 3994 237000 [Ljava.lang.String;
      > 20: 6818 218176 java.lang.ref.Finalizer
      > 21: 6804 217728 java.lang.ThreadLocal$ThreadLocalMap$Entry
      > 22: 425 170096 <constantPoolCacheKlass>
      > 23: 6804 163296 java.lang.ThreadLocal$ThreadLocalMap
      > 24: 441 149968 <instanceKlassKlass>
      > 25: 3428 137120 java.util.Hashtable



      ###@###.### 2003-09-27

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              pbk Peter Kessler
              Reporter:
              jzhongsunw June Zhong (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: