Read the Docs build information Build id: 4457517 Project: anyscale-ray Version: master Commit: 91b49bdf0dda2cbe81437fe31e46c770c4635fcd Date: 2026-09-18T16:00:19.124462Z State: cancelled Success: False [rtd-command-info] start-time: 2026-09-18T16:00:20.770587Z, end-time: 2026-09-18T16:00:33.150816Z, duration: 12, exit-code: 0 git clone --depth 1 https://github.com/ray-project/ray.git . Cloning into '.'... Updating files: 26% (2733/10433) Updating files: 27% (2817/10433) Updating files: 28% (2922/10433) Updating files: 29% (3026/10433) Updating files: 30% (3130/10433) Updating files: 31% (3235/10433) Updating files: 32% (3339/10433) Updating files: 33% (3443/10433) Updating files: 34% (3548/10433) Updating files: 35% (3652/10433) Updating files: 36% (3756/10433) Updating files: 37% (3861/10433) Updating files: 38% (3965/10433) Updating files: 39% (4069/10433) Updating files: 40% (4174/10433) Updating files: 41% (4278/10433) Updating files: 42% (4382/10433) Updating files: 43% (4487/10433) Updating files: 44% (4591/10433) Updating files: 45% (4695/10433) Updating files: 46% (4800/10433) Updating files: 47% (4904/10433) Updating files: 48% (5008/10433) Updating files: 49% (5113/10433) Updating files: 50% (5217/10433) Updating files: 51% (5321/10433) Updating files: 52% (5426/10433) Updating files: 53% (5530/10433) Updating files: 54% (5634/10433) Updating files: 55% (5739/10433) Updating files: 56% (5843/10433) Updating files: 57% (5947/10433) Updating files: 58% (6052/10433) Updating files: 59% (6156/10433) Updating files: 60% (6260/10433) Updating files: 61% (6365/10433) Updating files: 62% (6469/10433) Updating files: 63% (6573/10433) Updating files: 64% (6678/10433) Updating files: 65% (6782/10433) Updating files: 66% (6886/10433) Updating files: 67% (6991/10433) Updating files: 68% (7095/10433) Updating files: 69% (7199/10433) Updating files: 70% (7304/10433) Updating files: 71% (7408/10433) Updating files: 72% (7512/10433) Updating files: 73% (7617/10433) Updating files: 74% (7721/10433) Updating files: 75% (7825/10433) Updating files: 76% (7930/10433) Updating files: 77% (8034/10433) Updating files: 78% (8138/10433) Updating files: 79% (8243/10433) Updating files: 80% (8347/10433) Updating files: 81% (8451/10433) Updating files: 82% (8556/10433) Updating files: 83% (8660/10433) Updating files: 84% (8764/10433) Updating files: 85% (8869/10433) Updating files: 86% (8973/10433) Updating files: 87% (9077/10433) Updating files: 88% (9182/10433) Updating files: 89% (9286/10433) Updating files: 90% (9390/10433) Updating files: 91% (9495/10433) Updating files: 92% (9599/10433) Updating files: 93% (9703/10433) Updating files: 94% (9808/10433) Updating files: 95% (9912/10433) Updating files: 96% (10016/10433) Updating files: 97% (10121/10433) Updating files: 98% (10225/10433) Updating files: 99% (10329/10433) Updating files: 100% (10433/10433) Updating files: 100% (10433/10433), done. [rtd-command-info] start-time: 2026-09-18T16:00:33.229475Z, end-time: 2026-09-18T16:00:34.927388Z, duration: 1, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 refs/heads/master:refs/remotes/origin/master [rtd-command-info] start-time: 2026-09-18T16:00:35.753448Z, end-time: 2026-09-18T16:00:35.998196Z, duration: 0, exit-code: 0 git checkout --force origin/master Note: switching to 'origin/master'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 91b49bd [Data] Remove cross-AZ release tests (#66282) [rtd-command-info] start-time: 2026-09-18T16:00:36.188853Z, end-time: 2026-09-18T16:00:36.225259Z, duration: 0, exit-code: 0 cat .readthedocs.yaml # .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-24.04 tools: python: "3.11" jobs: # On PR builds, skip the Sphinx build when the PR doesn't touch any # files that affect documentation output. Reduces queue pressure on # the shared RTD build slots when several PRs are open at once. # Tag/branch builds (master, stable, etc.) always run. # The guard matches doc/ but excludes doc/.claude/ (Claude Code skills # and agent files), which never participate in the Sphinx build, so a # PR that changes only those paths skips the build instead of running one. # Code sources (python/ray/, rllib/) are intentionally not matched, so a # code-only PR skips this PR preview. The RTD PR check is not a required # merge gate, and the post-merge master build and the Buildkite doc_build # still render docstring-driven API-reference changes. This trades a # non-gating premerge preview for less pressure on the shared RTD slots. # See https://docs.readthedocs.com/platform/stable/guides/build/skip-build.html # # Some constructs are avoided deliberately because RTD's job runner # silently drops scripts that contain them: use echo (not printf # with a backslash-escape format string), avoid backslash escapes # in general, and keep shell comments out of this block so that # backticks/$() inside comments don't confuse the preprocessor. # The runner also strips the surrounding single quotes from arguments, # so use git's :! exclude shorthand rather than :(exclude): unquoted # parentheses reach /bin/sh (dash) and abort the script with a syntax error. post_checkout: - | if [ "${READTHEDOCS_VERSION_TYPE:-}" != "external" ]; then echo "Not a PR build (version type: '${READTHEDOCS_VERSION_TYPE:-unset}'); building docs." exit 0 fi git fetch --depth=500 origin master 2>/dev/null || true if ! git merge-base origin/master HEAD >/dev/null 2>&1; then echo "Could not determine merge-base with origin/master; building docs to be safe." exit 0 fi if git diff --quiet origin/master...HEAD -- doc/ ':!doc/.claude/' .readthedocs.yaml; then echo "No doc-affecting files changed in this PR; skipping Sphinx build." echo "Files changed in PR:" git diff --name-only origin/master...HEAD exit 183 fi echo "Doc-affecting files changed; building docs. Changed doc-relevant paths:" git diff --name-only origin/master...HEAD -- doc/ ':!doc/.claude/' .readthedocs.yaml # Override the html build step so every build runs a full clean Sphinx # build via the doc/Makefile html target, for PR (external) previews and # branch/tag builds alike. # # The incremental-from-master-cache path added in #64277 is disabled for # now. On every PR preview Sphinx discards the restored cache because a # config value differs between the environment that produced the cache and # the RTD build environment, so it rebuilds all documents anyway while # still paying the cache download and extract cost, and it risks a second # clean rebuild when the incremental leg trips a warning. A clean build is # faster and lower-variance in practice today. Re-enable the incremental # path only once cache reuse is confirmed (Sphinx logs "N changed" rather # than "NNNN added") and stale-artifact pruning lands for PRs that rename # or delete sources. The rtd and rtd-fallback Makefile targets and # doc/load_doc_cache.py stay in the tree for that re-enable. # Raise pip's retry budget for the dependency install below. # files.pythonhosted.org has been returning intermittent 502s # (https://github.com/pypi/support/issues/11895), and one failed wheel fetch # fails the whole docs build. pip defaults to 5 retries with exponential # backoff, which gives up in about 8 seconds of sleeping. # # Written as a config file rather than PIP_RETRIES because the install step # is python.install below, run by Read the Docs rather than by us, and each # job command runs in its own shell so an export here would not reach it. # pip reads this path on every invocation in the build, including that one. # # Only the retry count is raised. The observed failures are immediate 502 # responses rather than hangs, so a larger timeout would only lengthen the # worst case without making a fetch more likely to succeed. pre_install: - mkdir -p ~/.config/pip - | echo "[global]" > ~/.config/pip/pip.conf echo "retries = 10" >> ~/.config/pip/pip.conf cat ~/.config/pip/pip.conf # Build with fewer Sphinx workers than there are CPUs. # # doc/Makefile defaults SPHINX_JOBS to auto, one write worker per CPU. # This builder has 4 CPUs and a 7,130,316,800 byte cgroup memory ceiling # (about 6.64 GiB, the documented Business limit), and each worker holds # its own copy of the build environment. At -j auto the build peaked at # 6,503,370,752 bytes on a run that passed and 6,371,254,272 on one that # was OOM-killed, leaving roughly 600 MB of headroom either way. When the # kernel kills a write worker the parent Sphinx process reports only a # bare EOFError from multiprocessing/connection.py, naming no document, # and the document it dies on moves from build to build. # # At SPHINX_JOBS=2 the same build peaked at 5,566,427,136 bytes with # memory.events oom_kill 0, so headroom goes from about 600 MB to about # 1.5 GiB. The cost is wall clock: a paired run measured 349 seconds at # -j auto against 620 seconds at 2 on one builder, and the 2 arm had a # warm cache, so treat that as a lower bound on the slowdown. # # Only this job sets it. Local builds and the Buildkite doc build keep # -j auto, so nothing off this builder pays for the reduced parallelism. # Raising the RtD memory limit would let the parallelism come back; that # is a separate ask to Read the Docs, not a change in this repo. build: html: - | make -C doc html HTMLDIR="$READTHEDOCS_OUTPUT/html" SPHINX_JOBS=2 # Build documentation in the docs/ directory with Sphinx sphinx: configuration: doc/source/conf.py fail_on_warning: true # We recommend specifying your dependencies to enable reproducible builds: # https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html python: install: - requirements: doc/requirements-doc.lock.txt [rtd-command-info] start-time: 2026-09-18T16:00:36.602600Z, end-time: 2026-09-18T16:00:36.639373Z, duration: 0, exit-code: 0 if [ "${READTHEDOCS_VERSION_TYPE:-}" != "external" ]; then echo "Not a PR build (version type: '${READTHEDOCS_VERSION_TYPE:-unset}'); building docs." exit 0 fi git fetch --depth=500 origin master 2>/dev/null || true if ! git merge-base origin/master HEAD >/dev/null 2>&1; then echo "Could not determine merge-base with origin/master; building docs to be safe." exit 0 fi if git diff --quiet origin/master...HEAD -- doc/ ':!doc/.claude/' .readthedocs.yaml; then echo "No doc-affecting files changed in this PR; skipping Sphinx build." echo "Files changed in PR:" git diff --name-only origin/master...HEAD exit 183 fi echo "Doc-affecting files changed; building docs. Changed doc-relevant paths:" git diff --name-only origin/master...HEAD -- doc/ ':!doc/.claude/' .readthedocs.yaml Not a PR build (version type: branch); building docs. [rtd-command-info] start-time: 2026-09-18T16:00:42.251127Z, end-time: 2026-09-18T16:00:42.302785Z, duration: 0, exit-code: 0 asdf global python 3.11.15 [rtd-command-info] start-time: 2026-09-18T16:00:42.758479Z, end-time: 2026-09-18T16:00:43.337118Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.11.15.final.0-64 in 354ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/master, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv) added seed packages: pip==23.1, setuptools==67.6.1, wheel==0.40.0 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [rtd-command-info] start-time: 2026-09-18T16:00:43.458947Z, end-time: 2026-09-18T16:00:43.515432Z, duration: 0, exit-code: 0 mkdir -p ~/.config/pip [rtd-command-info] start-time: 2026-09-18T16:00:43.598665Z, end-time: 2026-09-18T16:00:43.658144Z, duration: 0, exit-code: 0 echo "[global]" > ~/.config/pip/pip.conf echo "retries = 10" >> ~/.config/pip/pip.conf cat ~/.config/pip/pip.conf [global] retries = 10 [rtd-command-info] start-time: 2026-09-18T16:00:43.739336Z, end-time: 2026-09-18T16:00:47.748797Z, duration: 4, exit-code: 0 python -m pip install --upgrade --no-cache-dir pip setuptools Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/master/lib/python3.11/site-packages (23.1) Collecting pip Downloading pip-26.2.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 19.2 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/master/lib/python3.11/site-packages (67.6.1) Collecting setuptools Downloading setuptools-84.0.0-py3-none-any.whl (818 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 818.2/818.2 kB 32.8 MB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 67.6.1 Uninstalling setuptools-67.6.1: Successfully uninstalled setuptools-67.6.1 Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-26.2.1 setuptools-84.0.0 [rtd-command-info] start-time: 2026-09-18T16:00:47.834592Z, end-time: 2026-09-18T16:00:52.244063Z, duration: 4, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Collecting sphinx Downloading sphinx-9.0.4-py3-none-any.whl.metadata (5.8 kB) Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB) Collecting Jinja2>=3.1 (from sphinx) Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB) Collecting Pygments>=2.17 (from sphinx) Downloading pygments-2.21.0-py3-none-any.whl.metadata (2.5 kB) Collecting docutils<0.23,>=0.20 (from sphinx) Downloading docutils-0.22.4-py3-none-any.whl.metadata (15 kB) Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-3.1.1-py3-none-any.whl.metadata (7.9 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.18.0-py3-none-any.whl.metadata (2.2 kB) Collecting alabaster>=0.7.14 (from sphinx) Downloading alabaster-1.0.0-py3-none-any.whl.metadata (2.8 kB) Collecting imagesize>=1.3 (from sphinx) Downloading imagesize-2.0.1-py3-none-any.whl.metadata (7.0 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading roman_numerals-4.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-26.3-py3-none-any.whl.metadata (3.5 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading charset_normalizer-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (45 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.20-py3-none-any.whl.metadata (7.2 kB) Collecting urllib3<3,>=1.26 (from requests>=2.30.0->sphinx) Downloading urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB) Collecting certifi>=2023.5.7 (from requests>=2.30.0->sphinx) Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB) Downloading sphinx-9.0.4-py3-none-any.whl (3.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 137.7 MB/s 0:00:00 Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 818.5 MB/s 0:00:00 Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Downloading babel-2.18.0-py3-none-any.whl (10.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 475.2 MB/s 0:00:00 Downloading imagesize-2.0.1-py3-none-any.whl (14 kB) Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) Downloading packaging-26.3-py3-none-any.whl (129 kB) Downloading pygments-2.21.0-py3-none-any.whl (1.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 930.1 MB/s 0:00:00 Downloading requests-2.34.2-py3-none-any.whl (73 kB) Downloading charset_normalizer-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (262 kB) Downloading idna-3.20-py3-none-any.whl (69 kB) Downloading urllib3-2.8.0-py3-none-any.whl (135 kB) Downloading certifi-2026.7.22-py3-none-any.whl (136 kB) Downloading roman_numerals-4.1.0-py3-none-any.whl (7.7 kB) Downloading snowballstemmer-3.1.1-py3-none-any.whl (104 kB) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Installing collected packages: urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.21.0 alabaster-1.0.0 babel-2.18.0 certifi-2026.7.22 charset_normalizer-3.5.1 docutils-0.22.4 idna-3.20 imagesize-2.0.1 packaging-26.3 requests-2.34.2 roman-numerals-4.1.0 snowballstemmer-3.1.1 sphinx-9.0.4 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 urllib3-2.8.0 [rtd-command-info] start-time: None, end-time: None, duration: None, exit-code: None python -m pip install --exists-action=w --no-cache-dir -r doc/requirements-doc.lock.txt