Branch build clones: mirror stalls, clone timeout and controller memory
I maintainer di solito rispondono entro 2 giorni
@bryancall ci sta già lavorando.
Dal 14/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Branch builds keep failing in the Clone stage, and the controller keeps running out of memory. I dug into it on Oct 13 and 14, and there are three separate problems:
- ATS reused connections to the mirror after the mirror had closed them. Each reuse sat for 180 s before ATS retried. On Oct 13 there were 30 of these stalls on the mirror, 23 on the docs site and 8 on Jenkins.
- Branch builds fetch every branch at depth 1000. One fetch takes about 15 s and about 125 MB of private memory on the controller. A branch build starts about 30 children at once on a 4 CPU, 8 GB box with no swap, so the fetches overlap and it runs out of memory. At the first Jenkins kill on Oct 14 (12:43 PDT), the kernel's out-of-memory report had 21 fetches in flight using 3,317 MB of git memory (153 MB average per pack-objects, up to 267 MB), next to 2,334 MB for Jenkins and 761 MB for ATS, 7,270 MB in all. Free memory went from 3,485 MB to 72 MB in 42 s once the children started. The full breakdown is in apache/trafficserver-ci#474. There were 32 kernel out-of-memory kills from Sep 2 to Oct 13, and 4 more on Oct 14. Fetching only the branch being built is a 37 MB pack, about 75 MB and about 5 s.
- The 1-minute clone timeout wrapped all three retries. A single fetch takes about 15 s when the box is quiet, so the cap only failed under the load above. Because the retries were inside it, they never got a real chance.
Recent master branch builds:
| Build | Children passed |
|---|---|
| #1423 | 8 of 29 |
| #1424 | 6 of 29 |
Done
- Raise the branch clone timeout from 1 minute to 10 (apache/trafficserver-ci#473)
- Fetch only the branch being built in the branch pipelines (apache/trafficserver-ci#474)
- Stop ATS reusing connections to the mirror (
server_session_sharing.match=noneon the/mirror/remap, controller config) - Cap the mirror at 16 httpd workers and 2 GB of memory (controller config)
To do
- Give each branch checkout retry its own timeout, with a random backoff between tries:
retry(3) { sleep; timeout(5) { checkout } }(apache/trafficserver-ci#476) - Add the same retry, timeout and backoff to the GitHub PR pipelines, which have none today (apache/trafficserver-ci#475)
- Add a timeout and retry to the trafficserver-ci checkout in the branch pipelines
- Apply the connection fix to the docs and Jenkins remaps as well, and save it in the config so it survives a restart
- Turn off ATS debug logging on the controller (about 3.3 GB an hour of
traffic.out) - Shrink the ATS RAM cache on the controller (1 GB today)
- Check the next branch build's fan-out against the new 2 GB mirror limit. 16 workers fetching all branches at the 153 MB average seen under load is about 16 x 153 = 2,450 MB, over the limit, so git will likely be killed inside the container until fetches are branch-only.
- Find out why freebsd, osx and osx-m1 fail in Clone at about 180 s ("3775 bytes of body are still expected")
- Fix the mirror webhook leaving thousands of finished
gitprocesses behind - Point the 10.1.x and 10.2.x branch pollers at their own branches (both watch 10.0.x)
- Free disk on the controller (90% full)
- File an ATS issue for reusing a backend connection the backend already closed
Lower priority
- Repack the mirror into one pack (about 20% faster fetches)
- Remove the duplicate
connect_attempts_timeoutand rename the deprecatedconnect_attempts_max_retries_down_serverin the controller's records.yaml
The pipeline PRs are in apache/trafficserver-ci, which has issues turned off, so this lives here. PRs for these items should mention this issue so they link back.
- Lingua principale
- C++
- Stelle
- 2k
- Fork
- 878
- Merge medio
- 3g 15h
- PR unite (30g)
- 96
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/trafficserver
-
Bug HTTP Support
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
apache/trafficserver#13118 ·
I maintainer di solito rispondono entro 2 giorni
-
traffic_ctl: apply --error-level to config reload resultsForse già presa @brbzull0 l’ha presa 2 giorni fa. Aperta
apache/trafficserver#13832 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
header_rewrite: rm-destination after set-destination URL crashes traffic_serverForse già presa @moonchen l’ha presa 9 giorni fa. ApertaBug Crash header_rewrite Plugins
apache/trafficserver#13800 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
apache/trafficserver#13798 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
apache/trafficserver#13784 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di apache/trafficserver
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
bitcoin-core/gui-qml#1030 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
tesseract-robotics/tesseract#1384 ·
-
Fix the silent drop of oversized clusters in the plain EuclideanClusterObjectDetectorForse già presa @xmfcx l’ha presa oggi. Apertacomponent:perception type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
autowarefoundation/autoware_core#1497 ·
I maintainer di solito rispondono entro 2 giorni
-
agent:WSL bug linux LOW
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Build failure: limoAperta0.kind: build failure
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno