Skip to content

Conversation

@maflcko
Copy link
Member

@maflcko maflcko commented Apr 11, 2021

Cirrus CI will be capping the free compute soon. For now, switch more tasks to persistent worker, as recommended by Cirrus CI.

(See slightly related discussion in #28098)

@DrahtBot
Copy link
Contributor

DrahtBot commented Apr 11, 2021

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK dergoegge, pinheadmz, hebasto

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #28210 (build: Bump minimum supported Clang to clang-13 by MarcoFalke)
  • #28173 (ci: Run Windows native task on GitHub Actions by hebasto)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@maflcko maflcko force-pushed the 2104-ciMoreSelf branch 2 times, most recently from 9dd511a to a497f98 Compare April 17, 2021 08:53
@maflcko maflcko force-pushed the 2104-ciMoreSelf branch from a497f98 to 1c04196 Compare June 4, 2021 14:11
@maflcko maflcko closed this Dec 27, 2021
@maflcko maflcko deleted the 2104-ciMoreSelf branch December 27, 2021 19:31
@bitcoin bitcoin locked and limited conversation to collaborators Dec 27, 2022
@bitcoin bitcoin unlocked this conversation Jul 24, 2023
@maflcko maflcko restored the 2104-ciMoreSelf branch July 24, 2023 08:49
@maflcko maflcko changed the title [WIP NOMERGE DRAFT] ci: Switch more tasks to self-hosted ci: Switch more tasks to self-hosted Jul 24, 2023
@maflcko maflcko reopened this Jul 24, 2023
@maflcko maflcko force-pushed the 2104-ciMoreSelf branch 2 times, most recently from fa339d8 to fa28b13 Compare July 24, 2023 09:49
@maflcko maflcko force-pushed the 2104-ciMoreSelf branch 2 times, most recently from 411b023 to 848fbc9 Compare July 29, 2023 14:56
@maflcko maflcko force-pushed the 2104-ciMoreSelf branch 2 times, most recently from beb0b0e to b83e83c Compare July 30, 2023 08:21
@maflcko maflcko added this to the 26.0 milestone Aug 18, 2023
@maflcko maflcko requested review from hebasto and pinheadmz August 21, 2023 10:08
@maflcko maflcko changed the title ci: Switch more tasks to self-hosted ci: Switch remaining tasks to self-hosted Aug 22, 2023
Copy link
Member

@dergoegge dergoegge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK fa8e89d

@pinheadmz
Copy link
Member

concept ACK fa8e89d

Questions:

Is Win64 native still running on cirrus? The code changes look like it shouldnt be but it has a warning:

Monthly free compute limit exceeded and will be limited next month!

The MSan task took 2.5 hours! yow. Is the bottleneck there just hardware?

@DrahtBot DrahtBot removed the request for review from pinheadmz August 22, 2023 17:09
@maflcko maflcko changed the title ci: Switch remaining tasks to self-hosted ci: Switch remaining Linux tasks to self-hosted Aug 23, 2023
@maflcko
Copy link
Member Author

maflcko commented Aug 23, 2023

Is Win64 native still running on cirrus? The code changes look like it shouldnt be but it has a warning:

Yes, sorry for the confusion. This is only about Linux. I've adjusted the title. There is another pull about the msvc on Windows.

@maflcko
Copy link
Member Author

maflcko commented Aug 23, 2023

The MSan task took 2.5 hours! yow. Is the bottleneck there just hardware?

On the first run it will build llvm/clang/msan + depends + Bitcoin Core on a fresh cache. See also the comment in the cirrus yaml.

@maflcko maflcko requested a review from fanquake August 23, 2023 07:49
Copy link
Member

@hebasto hebasto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK fa8e89d.

Observing very low Ccache hit rate. For example, in https://cirrus-ci.com/task/6728143201894400:

ccache version 3.7.7
cache directory                     /tmp/ccache_dir
primary config                      /tmp/ccache_dir/ccache.conf
secondary config      (readonly)    /etc/ccache.conf
stats updated                       Fri Aug 18 17:06:37 2023
cache hit (direct)                   110
cache hit (preprocessed)              15
cache miss                           737
cache hit rate                     14.50 %
called for link                       12
cleanups performed                     0
files in cache                      1489
cache size                          33.6 MB
max cache size                     200.0 MB

@maflcko
Copy link
Member Author

maflcko commented Aug 23, 2023

I wonder why the hit rate is non-zero. On the first run, the cache is empty, obviously. Maybe a leftover ccache from a previous push to this pull request?

@hebasto
Copy link
Member

hebasto commented Aug 23, 2023

@MarcoFalke

I wonder why the hit rate is non-zero. On the first run, the cache is empty, obviously. Maybe a leftover ccache from a previous push to this pull request?

Can you please re-run all Cirrus jobs to test caching facilities?

@maflcko
Copy link
Member Author

maflcko commented Aug 23, 2023

Can you please re-run all Cirrus jobs to test caching facilities?

There are multiple workers per label type and multiple tasks using the same label type. Thus, it will take many re-runs to populate the initial cache on all workers.

@maflcko
Copy link
Member Author

maflcko commented Aug 23, 2023

I could limit the label type to each task, but that would be micro-managment. And free resources on one label type can not be used on another label type.

@hebasto
Copy link
Member

hebasto commented Aug 23, 2023

Can you please re-run all Cirrus jobs to test caching facilities?

There are multiple workers per label type and multiple tasks using the same label type. Thus, it will take many re-runs to populate the initial cache on all workers.

Fair enough. We can observe caching quality in-progress later.

@hebasto
Copy link
Member

hebasto commented Aug 23, 2023

There are multiple workers per label type and multiple tasks using the same label type.

Sounds like we need to increase CCACHE_MAXSIZE to cope such a usage, no?

@maflcko
Copy link
Member Author

maflcko commented Aug 23, 2023

Sounds like we need to increase CCACHE_MAXSIZE to cope such a usage, no?

Why? Each task has its own name (space). The CI is now doing exactly what happens when you run the CI locally.

@hebasto
Copy link
Member

hebasto commented Aug 23, 2023

Sounds like we need to increase CCACHE_MAXSIZE to cope such a usage, no?

Why? Each task has its own name (space). The CI is now doing exactly what happens when you run the CI locally.

IIUC, multiple tasks share the same CCACHE_DIR. If they use different compilers or different compiler flags, they need more space to do not purge cached items from another task, no?

@maflcko
Copy link
Member Author

maflcko commented Aug 23, 2023

Sounds like we need to increase CCACHE_MAXSIZE to cope such a usage, no?

Why? Each task has its own name (space). The CI is now doing exactly what happens when you run the CI locally.

IIUC, multiple tasks share the same CCACHE_DIR. If they use different compilers or different compiler flags, they need more space to do not purge cached items from another task, no?

No, and as I said this is unrelated to the changes here. If there is a bug in the CI system when running locally, it should be fixed separately, not as part of this pull.

See also:

$ git grep _ccache ci
ci/test/04_install.sh:  docker volume create "${CONTAINER_NAME}_ccache" || true
ci/test/04_install.sh:                  --mount "type=volume,src=${CONTAINER_NAME}_ccache,dst=$CCACHE_DIR" \

@fanquake fanquake merged commit 33da5d0 into bitcoin:master Aug 23, 2023
@maflcko maflcko deleted the 2104-ciMoreSelf branch August 23, 2023 13:28
@hebasto
Copy link
Member

hebasto commented Aug 23, 2023

@maflcko
Copy link
Member Author

maflcko commented Aug 23, 2023

yeah, the blob is missing.

Fetching xcb-proto-1.15.2.tar.xz from https://bitcoincore.org/depends-sources
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0  222k    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404

It would be good to switch the mirror URL to something that supports ipv6 and is maintained. Hint: #17704

@maflcko
Copy link
Member Author

maflcko commented Aug 25, 2023

Apart from the blob missing, this seems to be an odd issue, because it works outside of podman and inside podman, any other site works as well:

# podman run --rm -it ubuntu:mantic  bash -c  'apt update && apt install curl -y && curl --location --fail  --connect-timeout 3 --retry 0  -o /tmp/ab http://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.15.2.tar.xz ' 

curl: (28) Failed to connect to xorg.freedesktop.org port 80 after 3001 ms: Timeout was reached
# podman run --rm -it ubuntu:mantic  bash -c  'apt update && apt install curl -y && curl --location --fail  --connect-timeout 3 --retry 0  -o /tmp/ab https://drahtbot.space/depends_download_fallback/xcb-proto-1.15.2.tar.xz '

100  144k  100  144k    0     0   614k      0 --:--:-- --:--:-- --:--:--  612k
# curl --location --fail  --connect-timeout 3 --retry 0  -o /tmp/ab http://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.15.2.tar.xz

100  144k  100  144k    0     0   118k      0  0:00:01  0:00:01 --:--:--  208k

See https://serverfault.com/questions/1108095/docker-container-unable-to-connect-to-one-specific-external-ip-yet-host-can

@bitcoin bitcoin locked and limited conversation to collaborators Aug 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants