[depends on #514] Document NTP as the canonical clock reference, with yum "HTTPS Error 301" as one symptom - #504
Open
gounthar wants to merge 5 commits into
Open
Conversation
olivierlambert
approved these changes
Jul 29, 2026
stormi
reviewed
Aug 3, 2026
stormi
requested changes
Aug 3, 2026
thomas-dkmt
reviewed
Aug 3, 2026
thomas-dkmt
requested changes
Aug 4, 2026
gounthar
force-pushed
the
docs/yum-301-clock-troubleshooting
branch
from
August 10, 2026 19:21
77cd6c2 to
6f9160f
Compare
thomas-dkmt
reviewed
Aug 11, 2026
thomas-dkmt
reviewed
Aug 11, 2026
thomas-dkmt
reviewed
Aug 11, 2026
thomas-dkmt
reviewed
Aug 11, 2026
thomas-dkmt
reviewed
Aug 11, 2026
thomas-dkmt
reviewed
Aug 11, 2026
thomas-dkmt
reviewed
Aug 11, 2026
thomas-dkmt
requested changes
Aug 11, 2026
gounthar
force-pushed
the
docs/yum-301-clock-troubleshooting
branch
2 times, most recently
from
August 11, 2026 15:03
f8253f4 to
b6c224a
Compare
Wrong clocks cause failures across the product that rarely name the clock: TLS validation against the mirrors when fetching updates, pool join, and certificate validity windows. NTP was documented only in passing, in the installer walkthrough, the answer file reference and the pool requirements. Gather it into one page: why the date matters, how to set the sources at install time and afterwards, how to check them, and how to correct a clock that is already wrong. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
Review suggestions from @thomas-dkmt on the intro, the TLS bullet, rtcsync, the installer step, the source states, makestep, the isolated-network prose and the pool paragraph. The source states and the recovery procedure become lists rather than running prose. @rzr: the sample configuration used the CentOS vendor zone, which is not ours to use. It now points at the generic public pool. The code blocks inside the numbered procedure are indented under their items, so it renders as one list rather than restarting at each fence. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
gounthar
force-pushed
the
docs/yum-301-clock-troubleshooting
branch
from
August 11, 2026 15:32
b6c224a to
83bea0a
Compare
Two reviewers disliked "Isolated networks" and suggested "Offline" and "offgrid". Neither works here: offline already means a host being down in these docs, and offgrid appears nowhere in them. Two people tripping on the same word is still a signal, so the section names the condition instead. @rzr: "point to" rather than "point at", and say that the local server acts as the reference time for the network rather than only being synchronized. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
…rror 301" as one of its symptoms Signed-off-by: Bruno Verachten <gounthar@gmail.com>
The NTP content this PR added to hosts-pools duplicated the dedicated page in xcp-ng#514, which is what was actually asked for in review. The branch is now stacked on that page instead of carrying a second copy. hosts-pools keeps its short NTP section and links to the page. The yum troubleshooting entry links to the correcting-a-wrong-clock section rather than to the hosts-pools anchor. The note about reverting the repo file is a warning rather than a tip: the page tells the reader to edit it as a diagnostic, so leaving it edited is a state the page created, and it silently costs mirror failover. Signed-off-by: Bruno Verachten <gounthar@gmail.com>
gounthar
force-pushed
the
docs/yum-301-clock-troubleshooting
branch
from
August 11, 2026 17:09
83bea0a to
2908055
Compare
thomas-dkmt
approved these changes
Aug 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
Stacked on #514, and should be merged after it. The first commit here is that PR's
docs/management/time-synchronization.mdpage, so the diff shows it too. It cannot beleft out:
onBrokenLinksisthrow, and this PR links to that page. Once #514 merges,a rebase drops it from this diff. Review the last two commits.
This replaces the earlier approach of expanding the NTP section in
hosts-pools.md.@stormi asked for the clock details to live in one place with the yum topic linking to
it, and that is the page in #514, so the material moved there rather than being written
twice.
hosts-pools.mdkeeps its short section and gains a link.Adds the troubleshooting entry @olivierlambert asked for in https://xcp-ng.org/forum/topic/11558 back in November 2025:
The symptom is this, and it is one of the first things a fresh install can throw at someone:
Read as an operator, that says our mirrors moved and the repo file is stale. So people edit
xcp-ng.repo, runyum clean all, wipe/var/cache/yum, and none of it helps.The mirrors are fine.
mirrors.xcp-ng.org→ HTTPS → geo-local mirror ends in a 200;curl -Lwalks it happily. What fails is the TLS leg. A host whose date precedes the mirror certificate'snotBeforecannot complete the handshake, because from where it is standing the certificate is not yet valid.The message blames the redirect because of how yum reports errors. In urlgrabber,
_hdr_retrieverewritesself.scheme/self.urlthe moment it sees aLocation:header, before anything is attempted at the new address; thepycurl.errorhandler then formats fromRESPONSE_CODE, which is still301from the hop that succeeded, and drops the real libcurl string. So the301you are shown is the last thing that went right. Generally: in yum, a transport failure after a redirect is reported as the redirect.Why it seems worth a page rather than a forum answer
https://xcp-ng.org/forum/topic/9560 is the same symptom on 8.2, from 2024, and it ends with nobody knowing. That is the thread search returns for this error string. Meanwhile 11558 was solved by the reporter themselves, so it never became a support exchange either. Two threads, no landing page.
One thing I had not seen before, included in the page
On the host I looked at,
chronydwas both running and enabled, network and DNS fine, and this was the whole of/etc/chrony.conf:No
server, nopool.chronyc sourcesreturnedNumber of sources = 0. Every check an operator would normally run comes back healthy; the only one that reveals it ischronyc sources, which nobody runs until they already suspect the clock. The host just keeps its installation date, and the first symptom shows up months later as a yum error about a redirect. Likely origin is setting the time manually at install.That is also why the page says to add the servers to
chrony.conf, not merely to runmakestep— otherwise the fix is lost at the next boot.Changes
docs/management/hosts-pools.md: the existing Time synchronization (NTP) section becomes the reference for clocks: what a wrong date actually breaks, how to configure the servers, and how to check the sources and step the clock. Two sub-headings so the troubleshooting entries can link straight at the fix.docs/troubleshooting/common-problems.md: new section for the yum error, placed next to the existing Server loses time on 14th gen Dell hardware entry so the two clock problems sit together. It carries the diagnosis and the301explanation, and hands off to the NTP section for the fix.docs/management/updates.md: a warning under Prerequisites → Access to the repository, since that is the page people are reading when they hit this.Checked
docs/contained301,Moved Permanentlyorcertificate is not yet valid.#yum-fails-with-https-error-301---moved-permanentlygenerated with the repo's owngithub-slugger, not guessed.npm run buildpasses, which matters here becauseonBrokenLinksandonBrokenAnchorsare both set tothrow, and this PR now crosses between three pages.yum check-updatereturned the full July 2026 Various changes and fixes #1 batch for 8.3 LTS, exit 0, with the repository file exactly as shipped.Updated after review
hosts-pools.md, which already existed and was thin. It now opens with why a wrong clock matters, including two symptoms that name something other than the clock: this301, and the installer'sSignature Key Import Failed.<Terminal>like the rest of these files. Error output stays in plain fences.One thing I would still like a second opinion on
I state that correcting the date does not invalidate the host's own certificate, since XAPI issues it with a ten-year validity. Checked on one host (
notBefore2026-06-10,notAfter2036-06-07). Worth someone confirming that is the rule and not that host's history.Separately, and out of scope here: should the installer or
xsconsolewarn when a host ends up with zero configured time sources? Happy to open that somewhere else if it is worth raising.