Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-13781

Cassandra 3.10 jvm.options default -XX:+UseNUMA may core OpenJDK on some aarch64 machines at os::Linux::libnuma_init()

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: Configuration
    • Labels:

      Description

      We tried Oracle JDK, Linaro JDK, Zulu JDK and default OpenJDK, all of them cored at the same place: os::Linux::libnuma_init() -> os::Linux::rebuild_cpu_to_node_map()

      Removed -XX:+UseNUMA option solved the problem. Therefore we should remove -XX:+UseNUMA as an default option on aarch64 machines because x86_64 and aarch64 may have different implementations on how NUMA is reported. And -XX:+UseNUMA is currently not supporting G1GC anyway (https://bugs.openjdk.java.net/browse/JDK-8046147), adding it as default option may not have performance gain for future Java default G1GC.

      root@1pqd-1:/usr/share/cassandra/lib# /usr/sbin/cassandra -R -f
      *** Error in `java': free(): invalid pointer: 0x0000ffff800058c0 ***
      Aborted (core dumped)
      
      (gdb) bt
      #0  0x0000ffff8719d528 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
      #1  0x0000ffff8719e9e0 in __GI_abort () at abort.c:89
      #2  0x0000ffff871d48c4 in __libc_message (do_abort=do_abort@entry=2,
          fmt=fmt@entry=0xffff87285550 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
      #3  0x0000ffff871da2ec in malloc_printerr (action=<optimized out>, str=0xffff87285720 "free(): invalid pointer",
          ptr=<optimized out>, ar_ptr=<optimized out>) at malloc.c:5006
      #4  0x0000ffff871db088 in _int_free (av=0xffff872ad9a0 <main_arena>, p=<optimized out>, have_lock=0) at malloc.c:3867
      #5  0x0000ffff86dbccc4 in os::Linux::rebuild_cpu_to_node_map() ()
         from /usr/lib/jvm/java-8-linaro/jre/lib/aarch64/server/libjvm.so
      #6  0x0000ffff86dbd048 in os::Linux::libnuma_init() () from /usr/lib/jvm/java-8-linaro/jre/lib/aarch64/server/libjvm.so
      #7  0x0000ffff86dc34ac in os::init_2() () from /usr/lib/jvm/java-8-linaro/jre/lib/aarch64/server/libjvm.so
      #8  0x0000ffff86f0f374 in Threads::create_vm(JavaVMInitArgs*, bool*) ()
         from /usr/lib/jvm/java-8-linaro/jre/lib/aarch64/server/libjvm.so
      #9  0x0000ffff86bb7b80 in JNI_CreateJavaVM () from /usr/lib/jvm/java-8-linaro/jre/lib/aarch64/server/libjvm.so
      #10 0x0000ffff872ba75c in InitializeJVM (ifn=<synthetic pointer>, penv=0xffff86533a38, pvm=0xffff86533a30)
          at /home/buildslave/workspace/jdk8-build-release/BUILD_TYPE/release/JVM_VARIANT/server/label/aarch64-06/jdk8u-server-release-1704/jdk/src/share/bin/java.c:1215
      #11 JavaMain (_args=<optimized out>)
          at /home/buildslave/workspace/jdk8-build-release/BUILD_TYPE/release/JVM_VARIANT/server/label/aarch64-06/jdk8u-server-release-1704/jdk/src/share/bin/java.c:376
      #12 0x0000ffff87133fc4 in start_thread (arg=0xffff872ba6d0 <JavaMain>) at pthread_create.c:335
      #13 0x0000ffff87232290 in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:89
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              bairyz Yangzheng Bai
            • Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: