Temporal autosetup is failing to come up with TEMPORAL_BROADCAST_ADDRESS

Hey

I found the issue I was facing. When I set the TEMPORAL_BROADCAST_ADDRESS to the IP of the MAC machine that I am using, the service fails with the following error

temporal             | {"level":"warn","ts":"2024-04-09T12:58:23.788Z","msg":"unable to bootstrap ringpop. retrying","error":"join duration of 35.904880224s exceeded max 30s","logging-call-at":"ringpop.go:110"}
temporal             | {"level":"warn","ts":"2024-04-09T12:58:29.209Z","msg":"unable to bootstrap ringpop. retrying","error":"join duration of 41.325690686s exceeded max 30s","logging-call-at":"ringpop.go:110"}
temporal             | {"level":"warn","ts":"2024-04-09T12:58:30.446Z","msg":"unable to bootstrap ringpop. retrying","error":"join duration of 42.563078269s exceeded max 30s","logging-call-at":"ringpop.go:110"}
temporal             | {"level":"info","ts":"2024-04-09T12:58:32.709Z","msg":"bootstrap hosts fetched","bootstrap-hostports":"192.168.1.102:6934,192.168.1.102:6935,192.168.1.102:6933,192.168.1.102:6939","logging-call-at":"monitor.go:298"}
temporal             | {"level":"warn","ts":"2024-04-09T12:58:32.728Z","msg":"unable to bootstrap ringpop. retrying","error":"join duration of 44.84677677s exceeded max 30s","logging-call-at":"ringpop.go:110"}
temporal             | {"level":"info","ts":"2024-04-09T12:58:37.877Z","msg":"bootstrap hosts fetched","bootstrap-hostports":"192.168.1.102:6933,192.168.1.102:6939,192.168.1.102:6934,192.168.1.102:6935","logging-call-at":"monitor.go:298"}
temporal             | {"level":"info","ts":"2024-04-09T12:58:38.958Z","msg":"bootstrap hosts fetched","bootstrap-hostports":"192.168.1.102:6934,192.168.1.102:6935,192.168.1.102:6933,192.168.1.102:6939","logging-call-at":"monitor.go:298"}
temporal             | {"level":"info","ts":"2024-04-09T12:58:42.173Z","msg":"bootstrap hosts fetched","bootstrap-hostports":"192.168.1.102:6934,192.168.1.102:6935,192.168.1.102:6933,192.168.1.102:6939","logging-call-at":"monitor.go:298"}
temporal             | {"level":"error","ts":"2024-04-09T12:58:47.877Z","msg":"start failed","component":"fx","error":"context deadline exceeded","logging-call-at":"fx.go:1152","stacktrace":"go.temporal.io/server/common/log.(*zapLogger).Error\n\t/home/builder/temporal/common/log/zap_logger.go:156\ngo.temporal.io/server/temporal.(*fxLogAdapter).LogEvent\n\t/home/builder/temporal/temporal/fx.go:1152\ngo.uber.org/fx.(*App).Start.func1\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:639\ngo.uber.org/fx.(*App).Start\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:647\ngo.temporal.io/server/temporal.(*ServerImpl).startServices.func1\n\t/home/builder/temporal/temporal/server_impl.go:142"}
temporal             | {"level":"error","ts":"2024-04-09T12:58:47.877Z","msg":"OnStart hook failed","component":"fx","callee":"go.temporal.io/server/temporal.(*ServerImpl).Start-fm()","caller":"go.temporal.io/server/temporal.ServerLifetimeHooks","error":"failed to start service worker: context deadline exceeded","logging-call-at":"fx.go:1044","stacktrace":"go.temporal.io/server/common/log.(*zapLogger).Error\n\t/home/builder/temporal/common/log/zap_logger.go:156\ngo.temporal.io/server/temporal.(*fxLogAdapter).LogEvent\n\t/home/builder/temporal/temporal/fx.go:1044\ngo.uber.org/fx.appLogger.LogEvent\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:810\ngo.uber.org/fx/internal/lifecycle.(*Lifecycle).runStartHook.func1\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/internal/lifecycle/lifecycle.go:247\ngo.uber.org/fx/internal/lifecycle.(*Lifecycle).runStartHook\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/internal/lifecycle/lifecycle.go:257\ngo.uber.org/fx/internal/lifecycle.(*Lifecycle).Start\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/internal/lifecycle/lifecycle.go:216\ngo.uber.org/fx.(*App).start.func1\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:679\ngo.uber.org/fx.(*App).withRollback\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:661\ngo.uber.org/fx.(*App).start\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:678\ngo.uber.org/fx.withTimeout.func1\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:782"}
temporal             | {"level":"error","ts":"2024-04-09T12:58:47.877Z","msg":"start failed, rolling back","component":"fx","error":"failed to start service worker: context deadline exceeded","logging-call-at":"fx.go:1145","stacktrace":"go.temporal.io/server/common/log.(*zapLogger).Error\n\t/home/builder/temporal/common/log/zap_logger.go:156\ngo.temporal.io/server/temporal.(*fxLogAdapter).LogEvent\n\t/home/builder/temporal/temporal/fx.go:1145\ngo.uber.org/fx.(*App).withRollback\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:662\ngo.uber.org/fx.(*App).start\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:678\ngo.uber.org/fx.withTimeout.func1\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:782"}
temporal             | {"level":"error","ts":"2024-04-09T12:58:47.877Z","msg":"start failed","component":"fx","error":"failed to start service worker: context deadline exceeded","logging-call-at":"fx.go:1152","stacktrace":"go.temporal.io/server/common/log.(*zapLogger).Error\n\t/home/builder/temporal/common/log/zap_logger.go:156\ngo.temporal.io/server/temporal.(*fxLogAdapter).LogEvent\n\t/home/builder/temporal/temporal/fx.go:1152\ngo.uber.org/fx.(*App).Start.func1\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:639\ngo.uber.org/fx.(*App).Start\n\t/go/pkg/mod/go.uber.org/fx@v1.20.0/app.go:647\ngo.temporal.io/server/temporal.(*ServerFx).Start\n\t/home/builder/temporal/temporal/fx.go:299\nmain.buildCLI.func2\n\t/home/builder/temporal/cmd/server/main.go:204\ngithub.com/urfave/cli/v2.(*Command).Run\n\t/go/pkg/mod/github.com/urfave/cli/v2@v2.4.0/command.go:163\ngithub.com/urfave/cli/v2.(*App).RunContext\n\t/go/pkg/mod/github.com/urfave/cli/v2@v2.4.0/app.go:313\ngithub.com/urfave/cli/v2.(*App).Run\n\t/go/pkg/mod/github.com/urfave/cli/v2@v2.4.0/app.go:224\nmain.main\n\t/home/builder/temporal/cmd/server/main.go:55\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:250"}
temporal             | Unable to start server. Error: failed to start service worker: context deadline exceeded
temporal-postgresql  | 2024-04-09 12:58:47.881 UTC [53] LOG:  could not receive data from client: Connection reset by peer
temporal-postgresql  | 2024-04-09 12:58:47.881 UTC [52] LOG:  could not receive data from client: Connection reset by peer
temporal-postgresql  | 2024-04-09 12:58:47.881 UTC [46] LOG:  could not receive data from client: Connection reset by peer
temporal exited with code 1

I checked by logging into the container to see if the port are reachable, they all are reachable

/etc/temporal $ nc -zv 192.168.1.102 6933
192.168.1.102 (192.168.1.102:6933) open
/etc/temporal $ nc -zv 192.168.1.102 6934
192.168.1.102 (192.168.1.102:6934) open
/etc/temporal $ nc -zv 192.168.1.102 6935
192.168.1.102 (192.168.1.102:6935) open
/etc/temporal $ nc -zv 192.168.1.102 6936
/etc/temporal $ nc -zv 192.168.1.102 7233
192.168.1.102 (192.168.1.102:7233) open
/etc/temporal $ nc -zv 192.168.1.102 7234
192.168.1.102 (192.168.1.102:7234) open
/etc/temporal $ nc -zv 192.168.1.102 7235
192.168.1.102 (192.168.1.102:7235) open
/etc/temporal $ nc -zv 192.168.1.102 6935
192.168.1.102 (192.168.1.102:6935) open

My docker-compose.yml looks like this

version: '3'

services:
  postgresql:
    container_name: temporal-postgresql
    environment:
      POSTGRES_PASSWORD: temporal
      POSTGRES_USER: temporal
    image: postgres:13
    networks:
      - temporal-network-1
    ports:
      - 5432:5432
    volumes:
      - /var/lib/postgresql/data
  temporal:
    image: docker.atl-paas.net/cc/brahmos-temporal:dev
    container_name: temporal
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:7233"
      - "7233:7233"
      - "7234:7234"
      - "7235:7235"
      - "7239:7239"

      - "6933:6933"
      - "6934:6934"
      - "6935:6935"
      - "6939:6939"
    environment:
      - DB=postgresql
      - DB_PORT=5432
      - POSTGRES_USER=temporal
      - POSTGRES_PWD=temporal
      - POSTGRES_SEEDS=postgresql

      - "LOG_LEVEL=info"
    networks:
      - temporal-network-1


networks:
  temporal-network-1:
    driver: bridge
    name: temporal-network-1

docker.atl-paas.net/cc/brahmos-temporal:dev is a custom container with a custom entry point


FROM temporalio/auto-setup:1.22.0
COPY bin/entrypoint.sh /entrypoint.sh
EXPOSE  8080 7233 7234 7235 7239 6933 6934 6935 6939
CMD ["autosetup"]
ENTRYPOINT [ "/entrypoint.sh" ]

entrypoint.sh is modified only to set TEMPORAL_BROADCAST_ADDRESS like below

export TEMPORAL_BROADCAST_ADDRESS=192.168.1.102

192.168.1.102 is the IP address of the Macbook

Can someone please help me if I am making any mistake here?