This is an automated email from the ASF dual-hosted git repository. github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/dev/pr-13029-56b063c1d81cc3ab17ff76aabd849f69d3909a6d in repository https://gitbox.apache.org/repos/asf/seatunnel.git
commit 128994ca0c6b6262b14037f5f90a390d513a4720 Author: Daniel <[email protected]> AuthorDate: Wed Oct 28 13:17:42 2026 +0000 [Fix][E2E] Wait for LocalStack starter script copy before execution (#13029) --- .../e2e/connector/amazonsqs/AmazonsqsIT.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-amazonsqs-e2e/src/test/java/org/apache/seatunnel/e2e/connector/amazonsqs/AmazonsqsIT.java b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-amazonsqs-e2e/src/test/java/org/apache/seatunnel/e2e/connector/amazonsqs/AmazonsqsIT.java index 2c904df46d..f35d318e4f 100644 --- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-amazonsqs-e2e/src/test/java/org/apache/seatunnel/e2e/connector/amazonsqs/AmazonsqsIT.java +++ b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-amazonsqs-e2e/src/test/java/org/apache/seatunnel/e2e/connector/amazonsqs/AmazonsqsIT.java @@ -28,9 +28,11 @@ import org.junit.jupiter.api.TestTemplate; import org.testcontainers.containers.Container; import org.testcontainers.containers.localstack.LocalStackContainer; import org.testcontainers.containers.output.Slf4jLogConsumer; +import org.testcontainers.images.builder.Transferable; import org.testcontainers.lifecycle.Startables; import org.testcontainers.utility.DockerLoggerFactory; +import com.github.dockerjava.api.command.InspectContainerResponse; import lombok.extern.slf4j.Slf4j; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; @@ -56,6 +58,7 @@ public class AmazonsqsIT extends TestSuiteBase implements TestResource { private static final int AMAZONSQS_CONTAINER_PORT = 4566; private static final String SINK_QUEUE = "sink_queue"; private static final String SOURCE_QUEUE = "source_queue"; + private static final String LOCALSTACK_STARTER_READY = "/testcontainers_start.ready"; private static final String TEST_MESSAGE = "{\"name\":\"test_name\"}"; @@ -68,7 +71,21 @@ public class AmazonsqsIT extends TestSuiteBase implements TestResource { public void startUp() throws Exception { // start a localstack docker container localstack = - new LocalStackContainer(LOCALSTACK_DOCKER_IMAGE_VERSION) + new LocalStackContainer(LOCALSTACK_DOCKER_IMAGE_VERSION) { + @Override + protected void containerIsStarting(InspectContainerResponse containerInfo) { + super.containerIsStarting(containerInfo); + // Script existence alone does not mean Docker has finished copying it. + copyFileToContainer(Transferable.of(new byte[0]), LOCALSTACK_STARTER_READY); + } + }.withCreateContainerCmdModifier( + cmd -> + cmd.withEntrypoint( + "sh", + "-c", + "while [ ! -f " + + LOCALSTACK_STARTER_READY + + " ]; do sleep 0.1; done; exec /testcontainers_start.sh")) .withServices(LocalStackContainer.Service.SQS) .withEnv("AWS_DEFAULT_REGION", "us-east-1") .withEnv("AWS_ACCESS_KEY_ID", "1234")
