Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Corrupted v22.0.0 Windows ARM64 7z file #3695

Closed
targos opened this issue Apr 25, 2024 · 8 comments · Fixed by #3712
Closed

Corrupted v22.0.0 Windows ARM64 7z file #3695

targos opened this issue Apr 25, 2024 · 8 comments · Fixed by #3712
Assignees

Comments

@targos
Copy link
Member

targos commented Apr 25, 2024

https://nodejs.org/download/release/v22.0.0/node-v22.0.0-win-arm64.7z

I tried to extract it from Windows and macOS. Both fail.

@richardlau
Copy link
Member

Probably nodejs/node#52231?

@targos
Copy link
Member Author

targos commented Apr 25, 2024

If that's the case, I think the issue should be reconsidered. IMO files should be extractible using the default OS feature (assuming OS is up to date) and not require extra software

@richardlau
Copy link
Member

On Windows 11 I can extract https://nodejs.org/download/release/v22.0.0/node-v22.0.0-win-arm64.7z with 7zip 23.01 without errors but attempting to do so via Windows Explorer errors
image

cc @StefanStojanovic

@StefanStojanovic
Copy link
Contributor

@richardlau the default extractor application Windows 11 uses from Windows Explorer probably doesn't fully support 7z files by default - we are using the latest 7zip (v23.01) to make those files so the chance is probably even smaller.

Depends on how you look at it, but the way I see it, we have both zip and 7z files, and zip works fine from Windows Explorer. 7z is smaller in size, but you may not be able to extract it out of the box without some other extractor app than the default one. It looks like a reasonable trade-off. The main issue I see here is that Windows offers you to extract it via Explorer, but cannot do it.

@targos
Copy link
Member Author

targos commented May 1, 2024

I'm ready to accept the trade-off if we don't have a choice. If we can tweak the call to 7zip so that it creates a backwards-compatible file, it would be better.

@StefanStojanovic
Copy link
Contributor

I'll see what I can do. Two options I see now, before starting are:

  1. Change the 7zip call - This is a part of vcbuild.bat so we'd have to apply it in all LTS branches.
  2. Downgrade 7zip on compilation machines and lock its version. This would be done via Ansible.

I'm more in favor of the second option as it fixes the infrastructure that caused the issue because part of vcbuild.bat responsible for creating .7z files hasn't been changed in the last 6 years.

@StefanStojanovic StefanStojanovic self-assigned this May 8, 2024
@StefanStojanovic
Copy link
Contributor

I've investigated this further and only the ARM64 .7z file has issues, In addition, the file causing problems is the node.exe. I don't know exactly why, but I assume it has something to do with it being an ARM64 binary. All of this was observed with v23.01 (latest)

Afterward, I started downgrading 7-zip until I could locally produce a file that could be exported on Windows 11 with its default file extractor app. Luckily, it was the previous version (v22.01), so not a huge downgrade after all.

With all these findings, I still suggest using the second approach:

Downgrade 7zip on compilation machines and lock its version. This would be done via Ansible.

This would fix the issue with all future releases, but the ones already affected would still not work. Should we upload the new ARM64 .7z files, or we can leave it like that?

@richardlau
Copy link
Member

This would fix the issue with all future releases, but the ones already affected would still not work. Should we upload the new ARM64 .7z files, or we can leave it like that?

I think we'd have to leave it -- new files would mean new shasums and our shasums are signed (by the releaser who did the releases).

StefanStojanovic added a commit to JaneaSystems/build that referenced this issue May 9, 2024
Windows ARM64 cross-compiled node.exe cannot be extracted on Windows 11

Fixes: nodejs#3695
mhdawson pushed a commit that referenced this issue May 10, 2024
Windows ARM64 cross-compiled node.exe cannot be extracted on Windows 11

Fixes: #3695
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants