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 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.

Bret McGuire
September 29, 2020, 9:03 PM

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

Assignee

Bret McGuire

Reporter

Bret McGuire

Labels

None

PM Priority

None

Reproduced in

None

External issue ID

None

Doc Impact

None

Reviewer

None

Pull Request

None

Size

None

Fix versions

Priority

Major
Configure