Summary
The CI step Test replication can hang indefinitely while adding a third replica to the topology: dsreplication enable stalls on "Initializing registration information on server localhost:34444 with the contents of server localhost:4444" and never completes. Since neither the job nor the step has a timeout configured, the job sits idle until GitHub Actions kills it at the default 6-hour limit (##[error]The operation was canceled.).
Occurrence
- Run: https://github.com/OpenIdentityPlatform/OpenDJ/actions/runs/31506998550/job/93831146182 (
build-maven (ubuntu-latest, 25))
- The step started at 17:31:38, produced its last log line at 17:33:22, and was killed at 21:26:52 (job start + 6h).
- The same step passed in ~3.5–4 minutes in all 8 sibling matrix jobs of the same run (ubuntu 11/17/21/26, macOS, Windows), so this is a flaky race, not a Java 25 regression, and it is unrelated to the PR being built (Windows MSI changes).
Log tail
17:33:22 Updating replication configuration for baseDN cn=schema on server
17:33:22 localhost:34444 .....Done.
17:33:22 Initializing registration information on server localhost:34444 with the
21:26:52 ##[error]The operation was canceled.
21:26:52 Post job cleanup.
...
21:26:52 Terminate orphan process: pid (116117) (java)
21:26:52 Terminate orphan process: pid (116766) (java)
21:26:52 Terminate orphan process: pid (117971) (java)
21:26:52 Terminate orphan process: pid (118114) (dsreplication)
21:26:52 Terminate orphan process: pid (118116) (_server-script.sh)
21:26:52 Terminate orphan process: pid (118182) (java)
All three servers plus the dsreplication CLI were still alive as orphan processes, i.e. the CLI was genuinely blocked waiting for the ADS registration data (cn=admin data) total update from server 1 (port 4444) to server 3 (port 34444) to signal completion — which never happened.
Analysis
The hang occurs inside dsreplication enable for the third server (host1 = 24444, host2 = 34444): after updating the replication configuration for dc=example,dc=com and cn=schema on all three servers, the tool initializes the registration information on the new server with the contents of an existing topology member. This total-update session appears to have a race where the initialization-completed signal can be missed, leaving the CLI waiting forever.
Suggested actions
- Add
timeout-minutes to the Test replication step so a hang fails fast instead of consuming a runner for 6 hours (the step normally completes in under 5 minutes).
- Investigate the race in the ADS/registration-data total update during
dsreplication enable when joining an additional replica to an existing topology.
Summary
The CI step Test replication can hang indefinitely while adding a third replica to the topology:
dsreplication enablestalls on "Initializing registration information on server localhost:34444 with the contents of server localhost:4444" and never completes. Since neither the job nor the step has a timeout configured, the job sits idle until GitHub Actions kills it at the default 6-hour limit (##[error]The operation was canceled.).Occurrence
build-maven (ubuntu-latest, 25))Log tail
All three servers plus the
dsreplicationCLI were still alive as orphan processes, i.e. the CLI was genuinely blocked waiting for the ADS registration data (cn=admin data) total update from server 1 (port 4444) to server 3 (port 34444) to signal completion — which never happened.Analysis
The hang occurs inside
dsreplication enablefor the third server (host1 = 24444, host2 = 34444): after updating the replication configuration fordc=example,dc=comandcn=schemaon all three servers, the tool initializes the registration information on the new server with the contents of an existing topology member. This total-update session appears to have a race where the initialization-completed signal can be missed, leaving the CLI waiting forever.Suggested actions
timeout-minutesto the Test replication step so a hang fails fast instead of consuming a runner for 6 hours (the step normally completes in under 5 minutes).dsreplication enablewhen joining an additional replica to an existing topology.