testcontainers / testcontainers-java

Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
https://testcontainers.org
MIT License
7.97k stars 1.64k forks source link

[Bug]: Cannot use mysql::5.5.62 with org.testcontainers:mysql:1.20.1 #9171

Open MychauU opened 2 weeks ago

MychauU commented 2 weeks ago

Module

MySQL

Testcontainers version

1.18.3

Using the latest Testcontainers version?

Yes

Host OS

Linux

Host Arch

x86_64

Docker version

Client: Docker Engine - Community
 Cloud integration: v1.0.35+desktop.13
 Version:           27.1.1
 API version:       1.45 (downgraded from 1.46)
 Go version:        go1.21.12
 Git commit:        6312585
 Built:             Tue Jul 23 19:57:01 2024
 OS/Arch:           linux/amd64
 Context:           desktop-linux

Server: Docker Desktop 4.29.0 (145265)
 Engine:
  Version:          26.0.0
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.8
  Git commit:       8b79278
  Built:            Wed Mar 20 15:18:01 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

What happened?

When I try to update testcontainers dependency to newest version (1.20.1) mysql container cannot start. On version 1.18.3 it works.

Logs from docker container started by ryuk (mysql container)

ERROR: mysqld failed while attempting to check config
command was: "mysqld --verbose --help --log-bin-index=/tmp/tmp.ws18TiqgSZ"

240829  9:25:57 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
240829  9:25:57 [Note] mysqld (mysqld 5.5.62) starting as process 10 ...
240829  9:25:57 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Table 'mysql.plugin' doesn't exist
240829  9:25:57 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
240829  9:25:57 [ERROR] mysqld: unknown variable 'host_cache_size=0'
240829  9:25:57 [ERROR] Aborting

Project is using gradle for building. Relevant dependency:

testImplementation "org.testcontainers:mysql:1.20.1"

I start container by properties configuration:

spring:
  datasource:
    driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver
    type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:tc:mysql:5.5.62:////test?TC_DAEMON=true&TC_INITSCRIPT=sql/create.sql&user=root
    username: root
    password: test

Relevant log output

:: Spring Boot ::                (v3.3.2)

2024-08-29T11:25:54.896+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] ntegratorFacadeCreateLoanForIndividualIT : Starting IntegratorFacadeCreateLoanForIndividualIT using Java 21.0.1 with PID 80794 (started by mdobrenko in /home/mdobrenko/yameo/lmms-vfi/T24-integration-daemon)
2024-08-29T11:25:54.897+02:00 DEBUG 80794 --- [t24-integration-daemon] [    Test worker] ntegratorFacadeCreateLoanForIndividualIT : Running with Spring Boot v3.3.2, Spring v6.1.11
2024-08-29T11:25:54.897+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] ntegratorFacadeCreateLoanForIndividualIT : The following 1 profile is active: "test"
2024-08-29T11:25:55.510+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] o.s.cloud.context.scope.GenericScope     : BeanFactory id=ff93982b-9445-31ed-a718-3ab3de5434d4
2024-08-29T11:25:56.646+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] ntegratorFacadeCreateLoanForIndividualIT : Started IntegratorFacadeCreateLoanForIndividualIT in 2.048 seconds (process running for 4.254)
2024-08-29T11:25:56.746+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2024-08-29T11:25:56.787+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] org.testcontainers.images.PullPolicy     : Image pull policy will be performed by: DefaultPullPolicy()
2024-08-29T11:25:56.789+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] o.t.utility.ImageNameSubstitutor         : Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
2024-08-29T11:25:57.013+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] o.t.d.DockerClientProviderStrategy       : Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
2024-08-29T11:25:57.208+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] o.t.d.DockerClientProviderStrategy       : Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
2024-08-29T11:25:57.209+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] org.testcontainers.DockerClientFactory   : Docker host IP address is localhost
2024-08-29T11:25:57.221+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] org.testcontainers.DockerClientFactory   : Connected to docker: 
  Server Version: 27.1.1
  API Version: 1.46
  Operating System: Ubuntu 22.04.4 LTS
  Total Memory: 64030 MB
2024-08-29T11:25:57.264+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] tc.testcontainers/ryuk:0.7.0             : Creating container for image: testcontainers/ryuk:0.7.0
2024-08-29T11:25:57.283+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] o.t.utility.RegistryAuthLocator          : Credential helper/store (docker-credential-desktop) does not have credentials for https://index.docker.io/v1/
2024-08-29T11:25:57.358+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] tc.testcontainers/ryuk:0.7.0             : Container testcontainers/ryuk:0.7.0 is starting: a4c4ad8491d22162fde2b23c0644c55e9ed4483cc0f778d6a3f1c0aeddae860a
2024-08-29T11:25:57.550+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] tc.testcontainers/ryuk:0.7.0             : Container testcontainers/ryuk:0.7.0 started in PT0.285255502S
2024-08-29T11:25:57.552+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] o.t.utility.RyukResourceReaper           : Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
2024-08-29T11:25:57.552+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] org.testcontainers.DockerClientFactory   : Checking the system...
2024-08-29T11:25:57.553+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] org.testcontainers.DockerClientFactory   : ✔︎ Docker server version should be at least 1.6.0
2024-08-29T11:25:57.555+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] tc.mysql:5.5.62                          : Creating container for image: mysql:5.5.62
2024-08-29T11:25:57.587+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] tc.mysql:5.5.62                          : Container mysql:5.5.62 is starting: c24760462fdb3273d9e1f1b37167e761afafab440dae811a5353f03b4a3a0310
2024-08-29T11:25:57.721+02:00  INFO 80794 --- [t24-integration-daemon] [    Test worker] tc.mysql:5.5.62                          : Waiting for database connection to become available at jdbc:mysql://localhost:32786/lmms using query 'SELECT 1'
2024-08-29T11:27:57.797+02:00 ERROR 80794 --- [t24-integration-daemon] [    Test worker] tc.mysql:5.5.62                          : Could not start container

java.lang.IllegalStateException: Wait strategy failed. Container exited with code 1
    at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:533) ~[testcontainers-1.19.8.jar:na]
    at org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:354) ~[testcontainers-1.19.8.jar:na]
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81) ~[duct-tape-1.0.8.jar:na]
    at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:344) ~[testcontainers-1.19.8.jar:na]
    at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:330) ~[testcontainers-1.19.8.jar:na]
    at org.testcontainers.jdbc.ContainerDatabaseDriver.connect(ContainerDatabaseDriver.java:134) ~[jdbc-1.19.8.jar:na]
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137) ~[HikariCP-5.1.0.jar:na]
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) ~[HikariCP-5.1.0.jar:na]
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) ~[HikariCP-5.1.0.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) ~[HikariCP-5.1.0.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) ~[HikariCP-5.1.0.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98) ~[HikariCP-5.1.0.jar:na]
    at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) ~[HikariCP-5.1.0.jar:na]
    at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:269) ~[spring-jdbc-6.1.11.jar:6.1.11]
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:532) ~[spring-tx-6.1.11.jar:6.1.11]
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:405) ~[spring-tx-6.1.11.jar:6.1.11]
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137) ~[spring-tx-6.1.11.jar:6.1.11]
    at org.springframework.transaction.support.TransactionOperations.executeWithoutResult(TransactionOperations.java:67) ~[spring-tx-6.1.11.jar:6.1.11]
    at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.executeSqlScripts(SqlScriptsTestExecutionListener.java:361) ~[spring-test-6.1.11.jar:6.1.11]
    at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.lambda$executeSqlScripts$4(SqlScriptsTestExecutionListener.java:274) ~[spring-test-6.1.11.jar:6.1.11]
    at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
    at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.executeSqlScripts(SqlScriptsTestExecutionListener.java:274) ~[spring-test-6.1.11.jar:6.1.11]
    at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.executeSqlScripts(SqlScriptsTestExecutionListener.java:212) ~[spring-test-6.1.11.jar:6.1.11]
    at org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener.beforeTestMethod(SqlScriptsTestExecutionListener.java:164) ~[spring-test-6.1.11.jar:6.1.11]
    at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) ~[spring-test-6.1.11.jar:6.1.11]
    at org.spockframework.spring.SpringTestContextManager.beforeTestMethod(SpringTestContextManager.java:60) ~[spock-spring-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.spring.SpringInterceptor.interceptSetupMethod(SpringInterceptor.java:53) ~[spock-spring-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.extension.AbstractMethodInterceptor.intercept(AbstractMethodInterceptor.java:30) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:122) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.invoke(PlatformSpecRunner.java:430) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.runSetup(PlatformSpecRunner.java:297) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.runSetup(PlatformSpecRunner.java:292) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.IterationNode.before(IterationNode.java:41) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.IterationNode.before(IterationNode.java:13) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:148) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.spockframework.runtime.SpockNode.sneakyInvoke(SpockNode.java:40) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.IterationNode.lambda$around$0(IterationNode.java:68) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.lambda$createMethodInfoForDoRunIteration$5(PlatformSpecRunner.java:241) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:123) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.junit4.ExceptionAdapterInterceptor.intercept(ExceptionAdapterInterceptor.java:13) ~[spock-junit4-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:122) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.invoke(PlatformSpecRunner.java:430) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.runIteration(PlatformSpecRunner.java:221) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.IterationNode.around(IterationNode.java:68) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.IterationNode.around(IterationNode.java:13) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask$DefaultDynamicTestExecutor.execute(NodeTestTask.java:226) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.spockframework.runtime.SimpleFeatureNode.execute(SimpleFeatureNode.java:58) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.SimpleFeatureNode.execute(SimpleFeatureNode.java:19) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.spockframework.runtime.SpockNode.sneakyInvoke(SpockNode.java:40) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.FeatureNode.lambda$around$0(FeatureNode.java:73) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.lambda$createMethodInfoForDoRunFeature$4(PlatformSpecRunner.java:203) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.invokeRaw(PlatformSpecRunner.java:439) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.invoke(PlatformSpecRunner.java:422) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.runFeature(PlatformSpecRunner.java:193) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.FeatureNode.around(FeatureNode.java:73) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.FeatureNode.around(FeatureNode.java:30) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.spockframework.runtime.SpockNode.sneakyInvoke(SpockNode.java:40) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.SpecNode.lambda$around$0(SpecNode.java:72) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.lambda$createMethodInfoForDoRunSpec$0(PlatformSpecRunner.java:66) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:157) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.invokeRaw(PlatformSpecRunner.java:439) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.invoke(PlatformSpecRunner.java:422) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.PlatformSpecRunner.runSpec(PlatformSpecRunner.java:59) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.SpecNode.around(SpecNode.java:72) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.spockframework.runtime.SpecNode.around(SpecNode.java:12) ~[spock-core-2.4-M4-groovy-4.0.jar:2.4-M4]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[na:na]
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.10.3.jar:1.10.3]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:124) ~[na:na]
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:99) ~[na:na]
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:94) ~[na:na]
    at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:63) ~[na:na]
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) ~[na:na]
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) ~[na:na]
    at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) ~[na:na]
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92) ~[na:na]
    at jdk.proxy2/jdk.proxy2.$Proxy6.stop(Unknown Source) ~[na:na]
    at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:200) ~[na:na]
    at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132) ~[na:na]
    at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103) ~[na:na]
    at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63) ~[na:na]
    at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) ~[na:na]
    at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:121) ~[na:na]
    at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) ~[na:na]
    at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) ~[gradle-worker.jar:na]
    at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) ~[gradle-worker.jar:na]
Caused by: java.lang.IllegalStateException: Container is started, but cannot be accessed by (JDBC URL: jdbc:mysql://localhost:32786/lmms), please check container logs
    at org.testcontainers.containers.JdbcDatabaseContainer.waitUntilContainerStarted(JdbcDatabaseContainer.java:177) ~[jdbc-1.19.8.jar:na]
    at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:500) ~[testcontainers-1.19.8.jar:na]
    ... 130 common frames omitted
Caused by: java.sql.SQLException: Could not create new connection
    at org.testcontainers.containers.JdbcDatabaseContainer.createConnection(JdbcDatabaseContainer.java:263) ~[jdbc-1.19.8.jar:na]
    at org.testcontainers.containers.JdbcDatabaseContainer.createConnection(JdbcDatabaseContainer.java:219) ~[jdbc-1.19.8.jar:na]
    at org.testcontainers.containers.JdbcDatabaseContainer.waitUntilContainerStarted(JdbcDatabaseContainer.java:159) ~[jdbc-1.19.8.jar:na]
    ... 131 common frames omitted
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:815) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:438) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:189) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at org.testcontainers.containers.JdbcDatabaseContainer.createConnection(JdbcDatabaseContainer.java:254) ~[jdbc-1.19.8.jar:na]
    ... 133 common frames omitted
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[na:na]
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:104) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:149) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:165) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:88) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.NativeSession.connect(NativeSession.java:120) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:935) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:805) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    ... 137 common frames omitted
Caused by: java.net.ConnectException: Connection refused
    at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
    at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) ~[na:na]
    at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) ~[na:na]
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592) ~[na:na]
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[na:na]
    at java.base/java.net.Socket.connect(Socket.java:751) ~[na:na]
    at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:153) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:62) ~[mysql-connector-j-8.3.0.jar:8.3.0]
    ... 140 common frames omitted

2024-08-29T11:27:57.843+02:00 ERROR 80794 --- [t24-integration-daemon] [    Test worker] tc.mysql:5.5.62                          : Log output from the failed container:

ERROR: mysqld failed while attempting to check config
command was: "mysqld --verbose --help --log-bin-index=/tmp/tmp.ws18TiqgSZ"

240829  9:25:57 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
240829  9:25:57 [Note] mysqld (mysqld 5.5.62) starting as process 10 ...
240829  9:25:57 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Table 'mysql.plugin' doesn't exist
240829  9:25:57 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
240829  9:25:57 [ERROR] mysqld: unknown variable 'host_cache_size=0'
240829  9:25:57 [ERROR] Aborting

Additional Information

No response

eddumelendez commented 2 weeks ago

Hi, can you try adding mysql-default-conf/my.cnf with the following content https://github.com/testcontainers/testcontainers-java/blob/1.19.3/modules/mysql/src/main/resources/mysql-default-conf/my.cnf in your project?

MychauU commented 3 days ago

@eddumelendez It doesn't help.

I added it to resources. As I wasnt sure if it was included it container I exported filesystem of container using docker export and file was added correctly to /etc/mysql/conf.d image

still error persists:

2024-09-12T09:27:09.350+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] org.testcontainers.DockerClientFactory   : Docker host IP address is localhost
2024-09-12T09:27:09.362+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] org.testcontainers.DockerClientFactory   : Connected to docker: 
  Server Version: 27.1.1
  API Version: 1.46
  Operating System: Ubuntu 22.04.4 LTS
  Total Memory: 64030 MB
2024-09-12T09:27:09.405+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] tc.testcontainers/ryuk:0.7.0             : Creating container for image: testcontainers/ryuk:0.7.0
2024-09-12T09:27:09.445+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] o.t.utility.RegistryAuthLocator          : Credential helper/store (docker-credential-desktop) does not have credentials for https://index.docker.io/v1/
2024-09-12T09:27:09.533+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] tc.testcontainers/ryuk:0.7.0             : Container testcontainers/ryuk:0.7.0 is starting: 90e266c3669542e077b4172a875476d3e5a35aac02edac4ba8933eaf2678b633
2024-09-12T09:27:09.776+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] tc.testcontainers/ryuk:0.7.0             : Container testcontainers/ryuk:0.7.0 started in PT0.370628063S
2024-09-12T09:27:09.778+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] o.t.utility.RyukResourceReaper           : Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
2024-09-12T09:27:09.779+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] org.testcontainers.DockerClientFactory   : Checking the system...
2024-09-12T09:27:09.779+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] org.testcontainers.DockerClientFactory   : ✔︎ Docker server version should be at least 1.6.0
2024-09-12T09:27:09.781+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] tc.mysql:5.5.62                          : Creating container for image: mysql:5.5.62
2024-09-12T09:27:09.835+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] tc.mysql:5.5.62                          : Container mysql:5.5.62 is starting: eb4fb898553cd9f068483faee0f78f8da6237ac7a8f4bedc9a619fb339b214d3
2024-09-12T09:27:09.969+02:00  INFO 70971 --- [t24-integration-daemon] [    Test worker] tc.mysql:5.5.62                          : Waiting for database connection to become available at jdbc:mysql://localhost:32769/lmms using query 'SELECT 1'
2024-09-12T09:29:09.985+02:00 ERROR 70971 --- [t24-integration-daemon] [    Test worker] tc.mysql:5.5.62                          : Could not start container

java.lang.IllegalStateException: Wait strategy failed. Container exited with code 1

docker logs of mysql container:

ERROR: mysqld failed while attempting to check config
command was: "mysqld --verbose --help --log-bin-index=/tmp/tmp.C9yqLOxldI"

240912  7:29:10 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
240912  7:29:10 [Note] mysqld (mysqld 5.5.62) starting as process 10 ...
240912  7:29:10 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Table 'mysql.plugin' doesn't exist
240912  7:29:10 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
240912  7:29:10 [ERROR] mysqld: unknown variable 'host_cache_size=0'
240912  7:29:10 [ERROR] Aborting
kiview commented 3 days ago

Adding it only to resources is not enough when using the JDBC integration, you also have to change the JDBC URL accordingly (did you do it?), see https://java.testcontainers.org/modules/databases/mysql/#overriding-mysql-mycnf-settings.

jdbc:tc:mysql:8.0.36://hostname/databasename?TC_MY_CNF=somepath/mysql_conf_override