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.
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 at 9:03 PM
Addressed by direct commits on master: 40995729d33ffe25d842242476fe33dad08aa9d7 and 6f93e6549397677826567f6ef8f17b7474cbc927
Bret McGuire September 23, 2020 at 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.
Noticed on more recent CI runs:
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.