Opened 5 months ago

Last modified 7 days ago

#69894 assigned defect

nodejs22: Requires too much disk space to build

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: ci42
Priority: Normal Milestone:
Component: ports Version: 2.9.3
Keywords: Cc: Dave-Allured (Dave Allured), blair (Blair Zajac), mohd-akram (Mohamed Akram)
Port: nodejs22

Description

nodejs22 requires over 17 GB of disk space to build. When a build machine does not have this much disk space available and runs out of disk space during the build, it wedges the build machine such that manual cleanup is required to fix things (#57865, https://build.macports.org/builders/ports-12_x86_64-builder/builds/107087). All subsequent builds that are attempted in this wedged state fail due to lack of disk space and the builds must be manually rescheduled.

I would like to avoid having to perform all this manual labor. 17GB strikes me as too much disk space for any reasonable software to require to build. Is there any way to reduce how much disk space nodejs22 needs to build?

Similarly for other node versions, although previous versions probably took less disk space so the problem happened less often.

Change History (6)

comment:1 Changed 3 months ago by Dave-Allured (Dave Allured)

Cc: Dave-Allured added

comment:2 Changed 3 months ago by blair (Blair Zajac)

Cc: blair added

comment:3 Changed 3 months ago by blair (Blair Zajac)

One could probably have it link against more MacPorts packages, e.g. openssl3 comes to mind, but this may be a small amount of space to save as compared to 17 GB.

comment:4 Changed 4 weeks ago by mohd-akram (Mohamed Akram)

Cc: mohd-akram added

The bulk of the disk space use is due to V8 artifacts. The Node.js team is having the same issue on their CI; they provide a cleanup script that they use - perhaps some of it what it does can also be done on the builders prior to a build? The issue also happens on the GitHub CI - maybe this can be done there too.

comment:5 Changed 2 weeks ago by ryandesign (Ryan Carsten Schmidt)

Looks like much of what that cleanup script does is inapplicable to us. For example, our buildbot machines do not have Homebrew nor Adobe software nor mail files nor iOS backups to clean up.

Cleaning up unneeded files is certainly a good idea in any case. I did again delete accumulated .fseventsd contents and outdated ports in the bootstrap MacPorts installation on several builders to make enough space to build nodejs22 today. This does not negate the need for us or the nodejs developers to drastically reduce their unreasonably high disk usage.

comment:6 Changed 7 days ago by mohd-akram (Mohamed Akram)

Does the no_log thing mentioned in #60185 not work at all? So this wouldn't have to be done manually. The Node.js team has disabled Spotlight indexing and that seems to have resolved their problem. I see Christopher had already mentioned how to do that if we haven't done so already.

Note: See TracTickets for help on using tickets.