Skip to content

[Neo4j] Default wait strategy breaks on IPv6-enabled environments #4454

@fbiville

Description

@fbiville

The JDBC driver project I am working on recently got build errors with TestContainers (with Neo4jContainer) tests in our TeamCity instance, that looked like this:

org.testcontainers.containers.ContainerLaunchException: Container startup failed
    org.testcontainers.containers.ContainerLaunchException: Container startup failed
    Caused by: org.rnorth.ducttape.RetryCountExceededException: Retry limit hit with exception
    Caused by: org.testcontainers.containers.ContainerLaunchException: Could not create/start container
    Caused by: org.testcontainers.containers.ContainerLaunchException: 
    Timed out waiting for log output matching '.*Bolt enabled on 0\.0\.0\.0:7687\.

After dumping the logs via withLogConsumer(outputFrame -> System.err.print(outputFrame.getUtf8String())), something interesting appeared:

2021-09-08 15:38:05.635+0000 INFO  Starting...
17:38:09      2021-09-08 15:38:09.752+0000 INFO  ======== Neo4j 4.3.3 ========
17:38:13      2021-09-08 15:38:13.989+0000 INFO  Initializing system graph model for component 'security-users' with version -1 and status UNINITIALIZED
[...]
17:38:14      2021-09-08 15:38:14.314+0000 INFO  Bolt enabled on [0:0:0:0:0:0:0:0%0]:7687.

The log includes an IPv6-formatted address and the default, regex-based, wait strategy will not match.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions