Failed to listen: bind: Cannot assign requested address: 99 (Cannot assign requested address)

I see this error, when the second is trying to join the cluster.

2024-04-01T01:29:43.834102Z 2 [System] [MY-000000] [WSREP] P: ####### IST uuid:00000000-0000-0000-0000-000000000000 f: 0, l: 5, STRv: 3
2024-04-01T01:29:43.834192Z 2 [System] [MY-000000] [WSREP] P: IST receiver addr using tcp://172.17.10.92:4568
2024-04-01T01:29:43.834387Z 2 [Warning] [MY-000000] [WSREP] P: Failed to prepare for incremental state transfer: Failed to open IST listener at tcp://172.17.10.92:4568', asio error 'Failed to listen: bind: Cannot assign requested address: 99 (Cannot assign requested address)
	 at /tmp/workspace/aws-galera-4-deb-packages/label/build-ubuntu-focal-amd64/deb-build-galera/galerautils/src/gu_asio_stream_react.cpp:listen():850': 99 (Cannot assign requested address)
	 at /tmp/workspace/aws-galera-4-deb-packages/label/build-ubuntu-focal-amd64/deb-build-galera/galera/src/ist.cpp:prepare():319. IST will be unavailable.
2024-04-01T01:29:43.834972Z 0 [System] [MY-000000] [WSREP] P: Member 0.0 (dea5509fb4d1) requested state transfer from '*any*'. Selected 1.0 (002640089b0c)(SYNCED) as donor.

In the Dockerfile

RUN apt-get update && apt-get install -y --no-install-recommends \
        galera-4 \
        galera-arbitrator-4 \
        mysql-wsrep-8.0 \
        iproute2

Any help would be appreciated, thanks.

You don’t need these unless you are running the actual arbitrator daemon.

Looks like MySQL is trying to bind to a non-existent IP address inside the docker container. Change your config to use 0.0.0.0 to bind to all IPs inside the container.

Thanks @matthewb for your response, but I already have 0.0.0.0 in my.cnf file.
I see some other people also have the similar issue.

Its working fine, if the docker container is mapped to “host” network.
So, is the docker “host” network mandatory for SST/IST to work with Galera4-MySQL8?

I’ve not read that is a hard requirement. Maybe try adding --privileged or other CAP_ADD network permissions if you need it to work in bridged mode.

I would also recommend switching to Percona XtraDB Cluster 8, which uses an enhanced Galera4 + Percona MySQL 8.0. And if you’re looking at Kubernetes, our Operator is 2nd to none in terms of functionality and stability.

https://hub.docker.com/r/percona/percona-xtradb-cluster