nim-lang / nightlies

Separate repository to trigger installer builds.
MIT License
44 stars 14 forks source link

Latest 1.4 linux_x64.tar.xz archive was broken #50

Open ee7 opened 3 years ago

ee7 commented 3 years ago

The latest 1.4 linux_x64.tar.xz archive is corrupt.

The release page is here: https://github.com/nim-lang/nightlies/releases/tag/latest-version-1-4

Example

curl -sSfLO https://github.com/nim-lang/nightlies/releases/download/latest-version-1-4/linux_x64.tar.xz
tar xf linux_x64.tar.xz

Current behaviour

xz: (stdin): Compressed data is corrupt
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

Expected behaviour

No error.

Additional information

It looks like this doesn't affect the other latest-version-1-4 archives.

This issue means that people using version-1-4 with the alaviss/setup-nim action will see CI failures:

Run alaviss/setup-nim@f81f2a6d1505ab32f440ec9d8adbb81e949d3bf0
-- Downloading prebuilt archive 'linux_x64.tar.xz' for branch 'version-1-4'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   642  100   642    0     0   5219      0 --:--:-- --:--:-- --:--:--  5219

100  9.8M  100  9.8M    0     0  23.4M      0 --:--:-- --:--:-- --:--:-- 23.4M
-- Extracing 'linux_x64.tar.xz'
xz: (stdin): Compressed data is corrupt
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
Error: Process completed with exit code 2.

The release page contains

This release is an alias for the latest successful nightly build for branch version-1-4: https://github.com/nim-lang/nightlies/releases/tag/2021-01-03-version-1-4-1d8b7aa07ca9989b80dd758d66c7f4ba7dc533f7

This seems to be false - they're built from different commits, and the x64 linux archive on the linked 2021-01-03 page is not corrupt:

curl -sSfLO https://github.com/nim-lang/nightlies/releases/download/2021-01-03-version-1-4-1d8b7aa07ca9989b80dd758d66c7f4ba7dc533f7/nim-1.4.3-linux_x64.tar.xz
tar xf nim-1.4.3-linux_x64.tar.xz
ee7 commented 3 years ago

The archive has been replaced with a working one (see https://api.github.com/repos/nim-lang/nightlies/releases/36527859 and Ctrl+f for updated_at).

@alaviss Do we know why the archive was broken? Can we add a check to the release process so that this can't happen again?

alaviss commented 3 years ago

I'm not sure, the said build passed with no noticeable errors: https://github.com/nim-lang/nightlies/runs/1718858154?check_suite_focus=true

My guess is that there were some issues with Github's server during the upload to latest-version-1-4, since only the linux 64bit tarball was broken.

ee7 commented 3 years ago

Is it possible/sensible to add a step/job that downloads the archives and checks that they extract without error? Or that they match an expected hash?

alaviss commented 3 years ago

Sure, but overuse of the Github APIs will get us throttled, which I want to avoid. We can already trip this by having two nightlies run consecutively in one day (due to a Nim minor release for example).

Frankly I would want to get #49 fixed so we don't have to do double uploads.