What happened
DORMICE_PORT is a supported daemon setting, but deploy/install.sh fixes its own PORT variable at 3676. On a rerun, the installer preserves /etc/dormice/env, restarts the daemon on the configured custom port, and then polls port 3676 for two minutes before declaring the upgrade failed. The environment file is not sourced until after this health check.
Reproduction on a disposable installed host:
- Add
DORMICE_PORT=4567 to /etc/dormice/env and restart dormice.
- Confirm
curl http://127.0.0.1:4567/healthz succeeds.
- Rerun
deploy/install.sh.
- Observe that the service remains healthy on 4567 while the installer polls 3676 and exits with
the daemon did not answer /healthz on 127.0.0.1:3676.
Expected: Verification should use the effective DORMICE_PORT from the preserved service environment, defaulting to 3676 only when it is absent.
Actual: Verification and the printed CLI endpoint always use the installer's hard-coded port 3676.
Impact: Routine and one-click upgrades on documented custom-port installations are falsely marked failed and never reach dor doctor, leaving operators troubleshooting a daemon that is actually healthy.
Relevant code and contract:
packages/server/src/config.ts:16-18 accepts ports 1 through 65535.
deploy/install.sh:46-51 hard-codes PORT=3676.
deploy/install.sh:648-667 checks that port before sourcing /etc/dormice/env.
website/content/docs/configuration.mdx:28-32 documents DORMICE_PORT.
dor doctor output
Not available: the installer exits at its health check before invoking dor doctor.
Environment
- Dormice commit:
4417ae14938273f5d937c476cf7cdc57e22e53a5
- Install mode: systemd installation with an existing
/etc/dormice/env
- Custom setting:
DORMICE_PORT=4567
- Verification: source-path trace plus the disposable-host reproduction above
What happened
DORMICE_PORTis a supported daemon setting, butdeploy/install.shfixes its ownPORTvariable at3676. On a rerun, the installer preserves/etc/dormice/env, restarts the daemon on the configured custom port, and then polls port 3676 for two minutes before declaring the upgrade failed. The environment file is not sourced until after this health check.Reproduction on a disposable installed host:
DORMICE_PORT=4567to/etc/dormice/envand restartdormice.curl http://127.0.0.1:4567/healthzsucceeds.deploy/install.sh.the daemon did not answer /healthz on 127.0.0.1:3676.Expected: Verification should use the effective
DORMICE_PORTfrom the preserved service environment, defaulting to 3676 only when it is absent.Actual: Verification and the printed CLI endpoint always use the installer's hard-coded port 3676.
Impact: Routine and one-click upgrades on documented custom-port installations are falsely marked failed and never reach
dor doctor, leaving operators troubleshooting a daemon that is actually healthy.Relevant code and contract:
packages/server/src/config.ts:16-18accepts ports 1 through 65535.deploy/install.sh:46-51hard-codesPORT=3676.deploy/install.sh:648-667checks that port before sourcing/etc/dormice/env.website/content/docs/configuration.mdx:28-32documentsDORMICE_PORT.dor doctor output
Not available: the installer exits at its health check before invoking
dor doctor.Environment
4417ae14938273f5d937c476cf7cdc57e22e53a5/etc/dormice/envDORMICE_PORT=4567