-
Notifications
You must be signed in to change notification settings - Fork 1.1k
[NETSDKE2E][VMR].NET 10 Preview 4 Binaries could not work normally on Alpine Linux. #48513
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
Comments
I can't repro this with 10.0.100-preview.4.25214.102 or 10.0.100-preview.4.25214.103 with the Alpine Linux x64 artifacts from Unified Build on an Alpine Linux 3.21 or 3.20 docker image. |
The tar appears to be somewhat corrupted. The files that would make up the SDK appear in two separate directories. E.g. Most of the SDK appears under 0000000/./. Some of the rest appears under ./. This causes obvious failures. It's unclear why the asset comparison does not see this issue. Maybe different archive handling on different platforms? Either way, need to get to the bottom of it. |
I've handed this off to @carlossanlop for investigation. It is an issue with the tar rewriting. The following code below will generate a bad output archive iun some cases.:
|
I have a workaround. Instead of saving the entry directly as a GNU formatted entry: foreach (TarEntry entry in ReadTarGZipEntries(inputFile))
{
writer.WriteEntry(entry);
} Force the entry to write to be converted to the PAX format by using the constructor for entry conversion: foreach (TarEntry entry in ReadTarGZipEntries(inputFile))
{
writer.WriteEntry(new PaxTarEntry(entry));
} Now both the input and the output, using your shared repro, look exactly the same (everything inside the compressed file shows up under the The PAX format has no field length restrictions of any kind. It is the most flexible of the formats, unlike the GNU format. I do think there's a bug in the way we're handling GNU, and I'll investigate it, but meanwhile this workaround should unblock you. |
THanks!!! |
I think the issue is you want to construct the TarWriter with the same Format as the entries you use. So reading the first entry then constructing the writer from the header format there. |
Is there a specific reason why you need a GNU entry specifically? They're all part of the spec. Any tar tool should be able to read all formats. |
I think the issue is mixing types in a single file, Nikola was getting error from (debian) tar on real files using this workaround.
|
Just confirming that this affects more than just linux-musl .tar.gz archives - alpine docker images fail to build, but the non-alpine platforms are failing SDK content comparison tests: |
Understood. I'll prioritize a fix. |
Describe the bug
.NET 10 Preview 4 Binaries could not work normally on Alpine Linux.
To Reproduce
On Alpine Linux, try to manually install runtime, aspnetcore-runtime and SDK by Binaries from VMR build
Exceptions (if any)
The un-tared files are normally

Runtime binary
Aspnetcore-runtime binary

SDK binary

Note:
The text was updated successfully, but these errors were encountered: