Three defects found by running the respawn against a live xcatd on an MN rather than only against its unit tests. A monitor whose child dies between xfork() returning and the assignment to $pid_MON is lost for good. ssl_reaper matches $CHILDPID against $pid_MON, so a child reaped in that window is compared against a stale value and missed, and $pid_MON is then left naming a pid that no longer exists. The service loop reads !$pid_MON to decide whether to respawn, so it never respawns again -- the same permanently dead xcatiport this whole change exists to prevent, reached by a different route. Block SIGCHLD across the fork and the assignment at both fork sites; the child unblocks on the same line, since it needs to reap its own children. Reproduced with a widened window before the fix and confirmed closed after. Recovery took 30 seconds on an idle daemon. The respawn only gets a turn when the service loop comes round, and the loop parks in $bothwatcher->can_read(30) when there is nothing to serve, so the full select timeout was being added to the respawn delay. Wait in 5s hops while the monitor is down and at the usual 30s otherwise, so an idle daemon pays a few extra wakeups only while xcatiport is actually dead. Measured on the MN afterwards: a killed monitor returns in 5s, then 10s, then 21s across three kills in a row -- the backoff, visible in wall-clock time -- reclaiming the port each time, with the SSL listener holding the same pid throughout. The tunables are read from %ENV and were compared before being validated, so an empty or misspelt XCATD_MON_RESPAWN_* put "Argument isn't numeric" in the daemon log at every start. Anything that is not a plain non-negative integer is now treated as unset. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
xCAT
xCAT is a toolkit for deployment and administration of clusters of all sizes.
The xCAT sunset was only a quick eclipse
Dear xCAT Community,
The xCAT sunset has changed course. VersatusHPC has been invited to join the xCAT Consortium, and future development will move toward direct upstream contributions coordinated with the Consortium and its existing member companies.
That matters most for Enterprise Linux 10 (EL10). EL10 support is coming to xCAT, restoring a future operating-system path for sites that still rely on xCAT. This is an important change from the previous sunset guidance, where the lack of an EL10 path was one of the strongest reasons to move away from xCAT.
The xCAT Consortium continues to recommend Confluent as the long-term successor to xCAT, and that remains the Consortium position. Users planning new cluster-management deployments should evaluate Confluent and its xCAT comparison documentation.
At the same time, xCAT is no longer sunsetted. The Consortium and participating companies will continue updating xCAT while there is community and user demand for it.
In summary:
- xCAT development is continuing upstream through the Consortium and participating companies.
- Enterprise Linux 10 support is coming.
- Confluent remains the Consortium-recommended successor and migration path.
- xCAT updates will continue while there is community and user demand.
We want to thank the xCAT Consortium and community for keeping this project moving. The sun went behind the moon for a moment, but xCAT is still here.
For more information on Confluent and how to get started, please visit the Confluent: Project Page, Documentation or Confluent vs xCAT comparison.
With thanks,
The xCAT Consortium
Documentation
xCAT Documentation is hosted on Read The Docs: https://xcat-docs.readthedocs.io
Status
| xCAT Version | Build Status |
|---|---|
| Latest (master branch) | |
| Stable (latest release) |
Looking for older versions?
Open Source License
xCAT is made available under the EPL license: https://opensource.org/licenses/eclipse-1.0.php
Developers
Want to help? Check out the developers guide!