PGO not working due to Y2K22 bug #16512

Closed
opened 2026-01-31 05:14:22 +00:00 by claunia · 0 comments
Owner

Originally created by @miniksa on GitHub (Jan 26, 2022).

When the new year rolled over, the PGO Nuget no longer worked.

This is because NuGet.exe uses a SIGNED 32bit integer to represent version information.

However, this system was building the version number out of today's date and time.

When we hit 2022... we ended up with something that was over 21billion and therefore outside the limits of a 32 bit signed integer.

The solution is to move the version information with the date into the freeform text portion of the version (the prerelease field of Nuget packages) and set the previous one to a fixed number (and update our detection scripts to compensate for which package is the newest)

Originally created by @miniksa on GitHub (Jan 26, 2022). When the new year rolled over, the PGO Nuget no longer worked. This is because NuGet.exe uses a SIGNED 32bit integer to represent version information. However, this system was building the version number out of today's date and time. When we hit 2022... we ended up with something that was over 21billion and therefore outside the limits of a 32 bit signed integer. The solution is to move the version information with the date into the freeform text portion of the version (the prerelease field of Nuget packages) and set the previous one to a fixed number (and update our detection scripts to compensate for which package is the newest)
claunia added the Resolution-Fix-CommittedIssue-BugProduct-MetaArea-Build labels 2026-01-31 05:14:22 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#16512