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

Reinstate support for native libraries for in-JVM dtests

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Triage Needed
    • Normal
    • Resolution: Unresolved
    • None
    • Test/dtest/java
    • None
    • All
    • None

    Description

      While working on CASSANDRA-15170 native libraries for libc functions, epoll support and openssl were observed holding gcroots to the instance class loaders when in-JVM dtest with(NETWORK) support was enabled. The solution for CASSANDRA-15170 was to disable native libraries to get everything working, but this is not ideal because in-JVM tests will not be testing the real code on that platform.

      One proposed solution from ifesdjeen and benedict is to introduce an additional classloader per-Cassandra version that can be used for loading native libraries and share the CassandraVersionClassLoader by each instance of that version, enabling the InstanceClassLoader to be garbage collected.

      CLibrary 
       com.sun.jna.Native.registeredClasses
       com.sun.jna.Native.options
       com.sun.jna.Native.registredLibraries
      
      Netty
         io.netty.channel.ChannelException
         io.netty.channel.unix.DatagramSocketAddress
         io.netty.channel.unix.PeerCredentials
      
         io.netty.internal.tcnative.CertificateCallbackTask
         io.netty.internal.tcnative.CertificateVerifierTask
         io.netty.internal.tcnative.SSLPrivateKeyMethodDecryptTask
         io.netty.internal.tcnative.SSLPrivateKeyMethodSignTask
         io.netty.internal.tcnative.SSLPrivateKeyMethodTask
         io.netty.internal.tcnative.SSLTask
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            jmeredithco Jon Meredith
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: