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

Internode legacy SSL storage port certificate is not hot reloaded on update

    XMLWordPrintableJSON

Details

    Description

      In CASSANDRA-16666 the SSLContext cache was changed to clear individual EncryptionOptions from the SslContext cache if they needed reloading to reduce resource consumption. Before the change if ANY cert needed hot reloading, the SSLContext cache would be cleared for ALL certs.

      If the legacy SSL storage port is configured, a new EncryptionOptions object is created in org.apache.cassandra.net.InboundSockets#addBindings just for binding the socket, but never gets cleared as the change in port means it no longer matches the configuration retrieved from DatabaseDescriptor in org.apache.cassandra.net.MessagingServiceMBeanImpl#reloadSslCertificates.

      This is unlikely to be an issue in practice as the legacy SSL internode socket is only used in mixed version clusters with pre-4.0 nodes, so the cert only needs to stay valid until all nodes upgrade to 4.x or above.

      One way to avoid this class of failures is to just check the entries present in the SSLContext cache.

      Attachments

        Activity

          People

            jonmeredith Jon Meredith
            jonmeredith Jon Meredith
            Jon Meredith
            Dinesh Joshi, Francisco Guerrero
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: