testcontainers / testcontainers/testcontainers-java

Testcontainers build fails - MySQL, DB2, ... impacted by removal of TLS<1.2 in `adopt@1.11.0-11`

Open
#4,058 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

modules/jdbc type/test-improvement
Dominant language
Java
Stars
8.7k
Forks
1.9k
Avg merge
2d 17h
Merged PRs (30d)
9

Description

It seems that some of our tests are now failing on CI, and I've correlated this to adopt@1.11.0-11 JDK. Note that this is not a problem when using adopt@1.11.0-10, so it seems that a deprecation might be triggering this

Caused by:
                javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
                    at java.base/sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:170)
                    at java.base/sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:98)
                    at java.base/sun.security.ssl.TransportContext.kickstart(TransportContext.java:221)
                    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:433)
                    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:411)
                    at com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java:317)
                    at com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java:188)
                    at com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java:97)
                    at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:331)
                    ... 19 more

To reproduce, change JDK versions as above and run:

./gradlew clean mysql:test --tests org.testcontainers.junit.mysql.SimpleMySQLTest --no-build-cache

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with ./gradlew clean mysql:test --tests org.testcontainers.junit.mysql.SimpleMySQLTest --no-build-cache, comparing adopt@1.11.0-10 and adopt@1.11.0-11. Start from org.testcontainers.junit.mysql.SimpleMySQLTest and the reported MySQL connector TLS stack trace; done means the test passes with the newer JDK without regressing the older-JDK result.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, mysql
Domain
databases, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.