ssl_encryption_test.rb (integration test) failures with some C* 4.0 versions

Description

Noticed on more recent CI runs:

Finished tests in 22.817172s, 0.1753 tests/s, 0.1753 assertions/s.

1) Failure: SSLEncryptionTest#test_raise_error_when_not_using_ssl /work/git/ruby-driver/integration/security/ssl_encryption_test.rb:39:Cassandra::Errors::NoHostsAvailable expected but nothing was raised.

4 tests, 4 assertions, 1 failures, 0 errors, 0 skips

Unable to reproduce locally with 4.0-alpha3, however this started appearing around the time Jenkins switched over to... 4.0-beta1.

Can reproduce locally with 4.0-beta2.

Environment

None

Pull Requests

None

Activity

Show:
Bret McGuire
September 29, 2020, 9:03 PM

Addressed by direct commits on master: 40995729d33ffe25d842242476fe33dad08aa9d7 and 6f93e6549397677826567f6ef8f17b7474cbc927

Bret McGuire
September 23, 2020, 6:55 PM
Edited

This looks to be connected to the upgrade to Netty 4.1.x

 

For C* 3.11.6 the test passes (meaning a NoHostsAvailable error is thrown) presumably due to the following error in the server logs:

 

 

For 4.0-alpha3 the test still passes but the exception is now different. 4.0-alpha3 uses Netty 4.1.37 which includes the netty-tcnative code (https://netty.io/wiki/forked-tomcat-native.html). The stack trace also differs due to the jump into OpenSSL code:

 

 

For 4.0-beta2 there is no error of any kind: a NoHostsAvailable error is not raised and there’s no stack trace in the C* log. 4.0-beta2 upgrades to Netty 4.1.50.

 

Given that this is something of an edge case we’re testing for it seems reasonable to add a version bound to the test and only validate this functionality for C* < 4.0.

Fixed

Assignee

Bret McGuire

Reporter

Bret McGuire