Opened 3 years ago

Last modified 10 months ago

#56182 new defect

current_versions.tcl, delete_old_archives.py should understand that ports don't always offer the same version to all systems

Reported by: ryandesign (Ryan Schmidt) Owned by: admin@…
Priority: Normal Milestone:
Component: server/hosting Version:
Keywords: Cc: jmroot (Joshua Root)
Port:

Description

If I'm not mistaken, current_versions.tcl assumes that all versions of macOS have the same version of each port. This is not always the case; this is why we have separate portindexes for each version of macOS. A port might offer a different version depending on os.major, or os.arch, or even configure.cxx_stdlib. For example, libomp offers version 5.0.1 to libc++ systems but version 3.8.1 to libstdc++ systems. Even though 5.0.1 is the "current version" according to current_versions.tcl, we should not delete the 3.8.1 archive for libstdc++ systems.

In practice, I don't know how big a problem this is. delete_old_archives.py doesn't delete all old archives; it leaves up to 200GB of old archives, preferring to first delete the archives that are oldest and largest. Even if, say, the libomp 3.8.1 libstdc++ archives got inadvertently deleted, the buildbot would eventually recreate them, and then those new archives would not be "old" so they wouldn't be as likely to be deleted again for awhile.

Change History (1)

comment:1 Changed 10 months ago by ryandesign (Ryan Schmidt)

Could current_versions.tcl use a strategy like mprsyncup uses to fake different os.major and os.arch values to get a fuller picture of what is "current" on different systems?

Note: See TracTickets for help on using tickets.