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?