Opened 3 years ago

Last modified 3 years ago

#62913 assigned defect

github: CI jobs: port dependency installation incredibly slow, severely impacting job runtime

Reported by: mascguy (Christopher Nielsen) Owned by: admin@…
Priority: Normal Milestone:
Component: server/hosting Version:
Keywords: github ci Cc: ryandesign (Ryan Carsten Schmidt)
Port:

Description

Per discussion on the Dev mailing list during April 2021, port dependency installation within our GitHub CI jobs is incredibly slow. Enough so that it severely impacts the job runtime, and in the worst cases, it causes the jobs to be killed due to timeout. (The latter is presently six hours.)

This also has a further cascade effect, causing CI jobs to be queued up. And increasing the wait time for PRs to be validated.

This needs to be improved, if at all possible.

Also see issue:62621, which covers dependency installation time for our buildbots.

Attachments (1)

github-ci-py-apache-beam-20210517.txt.gz (429.8 KB) - added by mascguy (Christopher Nielsen) 3 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 Changed 3 years ago by mascguy (Christopher Nielsen)

One of the examples cited was for port nomacs:

The first dependency started installing at 3:33pm:
2021-04-24T15:33:40.0051560Z Installing dependency (1 of 265) 'bzip2' with variants '' (requesting '') ... [OK]

While the last dependency finished installing at 5:27pm, two hours later:
2021-04-24T17:22:49.4607320Z Installing dependency (265 of 265) 'qt5-qttools' with variants '' (requesting '') ... [OK]
2021-04-24T17:27:26.6862050Z ##[endgroup]
Last edited 3 years ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:2 Changed 3 years ago by mascguy (Christopher Nielsen)

comment:3 in reply to:  description Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Discussion starting at comment:ticket:62621:4 covers this.

comment:4 Changed 3 years ago by mascguy (Christopher Nielsen)

Another example from today, 2021-05-17, for port py-apache-beam; PR 11044 - py-apache-beam: Update to version 2.29.0:

2021-05-17T16:42:49.3114950Z Installing 342 dependencies of py39-apache-beam:
[...]
2021-05-17T19:17:38.8274350Z Installing dependency (342 of 342) 'py39-pymongo' with variants '' (requesting '') ... [OK]
2021-05-17T19:24:21.8912600Z ##[endgroup]

Dependency installation time was 2 hours, 42 minutes, for the first subport build.

Full log attached; filename: github-ci-py-apache-beam-20210517.txt.gz.

Last edited 3 years ago by mascguy (Christopher Nielsen) (previous) (diff)

Changed 3 years ago by mascguy (Christopher Nielsen)

comment:5 Changed 3 years ago by mascguy (Christopher Nielsen)

Large dependencies - specifically, ports consisting of many thousands of files, like the various texlive-related components - would also benefit from speedup of the file registration process (issue:56793).

comment:6 Changed 3 years ago by mascguy (Christopher Nielsen)

Update: Josh's fix for issue:56793 will improve dependency installation times in some situations. And for the most extreme cases - ports that depend on huge components like texlive-fonts-extra - that fix is a game-changer! (Both for buildbot/CI jobs, as well as the user experience in-general.)

Net-Net: For ports like auto-multiple-choice, which fit into the latter category, we'll see overall dependency installation time reduced dramatically. Great stuff!

Note: See TracTickets for help on using tickets.