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

compressed oops crashes on MacOS X with JPRT GCBasher test

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • None
    • hs23
    • hotspot
    • x86
    • os_x

      Vladimir posted the following (which includes an exact command line to
      use to reproduce the crash):

      I would suggest to file bug and disable Compressed oops for MacOS until the bug is fixed. It is not clear for me what is going on here since I don't know how to debug there. One assumption why assert failed is _noaccess_prefix == 0 but
      size_t(_base + _size) > OopEncodingHeapMax. Which means OS allocated heap in the different address from what is asked (we need to print all values in assert to verify it).

      Also hs_err does not work with hs_err for Mac:

      sh: /usr/ccs/bin/elfdump: No such file or directory
      sh: /usr/ccs/bin/nm: No such file or directory
      sh: /usr/ccs/bin/elfdump: No such file or directory
      sh: /usr/ccs/bin/nm: No such file or directory

      V [libjvm.dylib+0x28f83f]

      I was able to reproduce it only after few attempts which means :

      /tmp/jprt/P1/145914.jmelvin/testproduct/macosx_x64_10.7-fastdebug/bin/java -server -Xmx128M -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseParallelOldGC -XX:+PrintMiscellaneous -XX:+Verbose -XX:+PrintCompressedOopsMode -XX:+TracePageSizes -jar GCBasher.jar -time:30000
        Initial heap size 86047552
        Minimum heap size 6815736
      [SafePoint Polling address: 0x00000001051ff000]
      code heap: min=2555904 max=50331648 pg_sz=4096 base=0x0000000106414000 size=50331648
      Logical CPUs per core: 2
      UseSSE=4
      Allocation prefetching: PREFETCHNTA at distance 192, 4 lines of 64 bytes
      PrefetchCopyIntervalInBytes 576
      PrefetchScanIntervalInBytes 576
      PrefetchFieldsAhead 1
      CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, ht
      Minimum heap 6815744 Initial heap 86048768 Maximum heap 134217728
      1: Minimum gen0 2228224 Initial gen0 28639232 Maximum gen0 44695552
      Minimum gen1 4587520 Initial gen1 57409536 Maximum gen1 89522176
      ps heap raw: 21248,83968 4480,87424 2176,43648 215040
      ps heap rnd: 21248,83968 4480,87424 2176,43648 215040
      # To suppress the following error report, specify this argument
      # after -XX: or in .hotspotrc: SuppressErrorAt=/virtualspace.cpp:460
      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/private/tmp/jprt/P1/145914.jmelvin/source/src/share/vm/runtime/virtualspace.cpp:460), pid=33006, tid=4399587328
      # assert((_noaccess_prefix != 0) == (UseCompressedOops && _base != NULL && (size_t(_base + _size) > OopEncodingHeapMax) && Universe::narrow_oop_use_implicit_null_checks())) failed: noaccess_prefix should be used only with non zero based compressed oops
      #

      When it passed I got this output:

      /tmp/jprt/P1/145914.jmelvin/testproduct/macosx_x64_10.7-fastdebug/bin/java -server -Xmx128M -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseParallelOldGC -XX:+PrintMiscellaneous -XX:+Verbose -XX:+PrintCompressedOopsMode -XX:+TracePageSizes -jar GCBasher.jar -time:30000
        Initial heap size 86047552
        Minimum heap size 6815736
      [SafePoint Polling address: 0x000000010c1fa000]
      code heap: min=2555904 max=50331648 pg_sz=4096 base=0x000000010d384000 size=50331648
      Logical CPUs per core: 2
      UseSSE=4
      Allocation prefetching: PREFETCHNTA at distance 192, 4 lines of 64 bytes
      PrefetchCopyIntervalInBytes 576
      PrefetchScanIntervalInBytes 576
      PrefetchFieldsAhead 1
      CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, ht
      Minimum heap 6815744 Initial heap 86048768 Maximum heap 134217728
      1: Minimum gen0 2228224 Initial gen0 28639232 Maximum gen0 44695552
      Minimum gen1 4587520 Initial gen1 57409536 Maximum gen1 89522176
      ps heap raw: 21248,83968 4480,87424 2176,43648 215040
      ps heap rnd: 21248,83968 4480,87424 2176,43648 215040
      ps perm: min=21757952 max=85983232 pg_sz=4096 base=0x00000007f2e00000 size=85983232
      ps main: min=6815744 max=134217728 pg_sz=4096 base=0x00000007f8000000 size=134217728
      card table: min=430081 max=430081 pg_sz=4096 base=0x0000000110444000 size=434176
      par bitmap: min=6881280 max=6881280 pg_sz=4096 base=0x0000000110d1a000 size=6881280
      par compact: min=3010560 max=3010560 pg_sz=4096 base=0x00000001113aa000 size=3010560

      heap address: 0x00000007f2e00000, size: 210 MB, zero based Compressed Oops
      Jim reported the following during his recent JPRT experiments:

      Intermittent failure with JPRT testing of the non-universal binary...

      Internal Error (/private/tmp/jprt/P1/050642.jmelvin/source/src/share/vm/runtime/virtualspace.cpp:460), pid=53634, tid=4531154944
      # assert((_noaccess_prefix != 0) == (UseCompressedOops && _base != NULL && (size_t(_base + _size) > OopEncodingHeapMax) && Universe::narrow_oop_use_implicit_null_checks())) failed: noaccess_prefix should be used only with non zero based compressed oops
      #

      For more details, see my jobs on the East queue. Not sure if this is a
      known problem. No other failures. Still working on the create_jdk target
      for universal binaries. Tricky makefile magic.

            jmelvin James Melvin (Inactive)
            dcubed Daniel Daugherty
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: