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

The platform manifest should be sorted: order stability is useful for testing #3756

Closed
YunWeiaa opened this issue Sep 6, 2019 · 9 comments
Closed

Comments

@YunWeiaa
Copy link

YunWeiaa commented Sep 6, 2019

Steps to reproduce

  1. Installing the .NET Core SDK 3.0.100-rc2-014188 (x86) (Use release/3.0.1XX branch from https://github.com/dotnet/core-sdk)
  2. Downloading and extracting the x86 zip archive of the .NET Core SDK
  3. Running a folder diff on the extracted SDK and the install folder
    Tool WinDiff : \bvtsrv2\Team\v-yunwei\Docshare\windiff

Expected behavior

Make sure that everything matches

Actual behavior

The x86 installers have different contents as the x86 zip archives.
.\packs\microsoft.netcore.app.ref\3.0.0-rc1-19455-02\data\platformmanifest.txt different (C:\Users\e2euser\Downloads\dotnet-sdk-latest-win-x86 is more recent)
image

Note: The x64 installers include identical contents as the x64 zip archives.
image

Environment data

.NET Core SDK (reflecting any global.json):
Version: 3.0.100-rc2-014188
Commit: a553bba776

Runtime Environment:
OS Name: Windows
OS Version: 10.0.17763
OS Platform: Windows
RID: win10-x86
Base Path: C:\Program Files (x86)\dotnet\sdk\3.0.100-rc2-014188\

Host (useful for support):
Version: 3.0.0-rc1-19455-02
Commit: caa8d3b1ed

.NET Core SDKs installed:
3.0.100-rc2-014188 [C:\Program Files (x86)\dotnet\sdk]

.NET Core runtimes installed:
Microsoft.AspNetCore.App 3.0.0-preview9.19424.4 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.0.0-rc1.19453.1 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.0.0-preview9-19423-09 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.0.0-rc1-19455-02 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.0.0-preview9-19423-09 [C:\Program Files (x86)\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.0.0-rc1-19455-02 [C:\Program Files (x86)\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download

@YunWeiaa YunWeiaa changed the title The x86 installers has different contents as the x86 zip archives. The x86 installers have different contents as the x86 zip archives. Sep 6, 2019
@dagood
Copy link
Member

dagood commented Sep 6, 2019

Do you have access to the two platform manifests, or a diff of them?

They may be different just because the file contents are not sorted. The platform manifest is reproduced on each platform so they could end up different for that reason. We should sort the lines, but I want to make sure there aren't any other issues lurking underneath that are higher priority.

@YunWeiaa
Copy link
Author

YunWeiaa commented Sep 9, 2019

Use the branch: https://github.com/dotnet/core-sdk/tree/release/3.0.100-preview9
Here is the two platform manifests, you can check them.
PlatformManifest for x86 installers .txt

PlatformManifest for x86 zip archives.txt

The difference between them:
image

@dagood
Copy link
Member

dagood commented Sep 9, 2019

That diff isn't complete: here's what I get (with e.g. git diff --no-index a b > file.diff):

--- "a/.\\PlatformManifest.for.x86.installers.txt"
+++ "b/.\\PlatformManifest.for.x86.zip.archives.txt"
@@ -195,9 +195,10 @@ libcoreclr.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
 libdbgshim.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
 libmscordaccore.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
 libmscordbi.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
-Microsoft.DiaSymReader.Native.amd64.dll|Microsoft.NETCore.App.Ref||14.12.25830.2
+Microsoft.DiaSymReader.Native.x86.dll|Microsoft.NETCore.App.Ref||14.12.25830.2
 clrcompression.dll|Microsoft.NETCore.App.Ref||4.700.19.45604
 clrjit.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
+API-MS-Win-core-xstate-l2-1-0.dll|Microsoft.NETCore.App.Ref||10.0.17134.12
 api-ms-win-core-console-l1-1-0.dll|Microsoft.NETCore.App.Ref||10.0.17134.12
 api-ms-win-core-datetime-l1-1-0.dll|Microsoft.NETCore.App.Ref||10.0.17134.12
 api-ms-win-core-debug-l1-1-0.dll|Microsoft.NETCore.App.Ref||10.0.17134.12
@@ -242,14 +243,13 @@ clretwrc.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
 coreclr.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
 dbgshim.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
 mscordaccore.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
-mscordaccore_amd64_amd64_4.700.19.45506.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
+mscordaccore_x86_x86_4.700.19.45506.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
 mscordbi.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
 mscorrc.debug.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
 mscorrc.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
 ucrtbase.dll|Microsoft.NETCore.App.Ref||10.0.17134.12
+Microsoft.DiaSymReader.Native.amd64.dll|Microsoft.NETCore.App.Ref||14.12.25830.2
 Microsoft.DiaSymReader.Native.arm.dll|Microsoft.NETCore.App.Ref||14.12.25830.2
-Microsoft.DiaSymReader.Native.x86.dll|Microsoft.NETCore.App.Ref||14.12.25830.2
 mscordaccore_arm_arm_4.700.19.45506.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
 mscordaccore_arm64_arm64_4.700.19.45506.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
-API-MS-Win-core-xstate-l2-1-0.dll|Microsoft.NETCore.App.Ref||10.0.17134.12
-mscordaccore_x86_x86_4.700.19.45506.dll|Microsoft.NETCore.App.Ref||4.700.19.45506
+mscordaccore_amd64_amd64_4.700.19.45506.dll|Microsoft.NETCore.App.Ref||4.700.19.45506

After sorting both files, I get zero diff between them. Order doesn't affect the use case of this file, so this won't cause a product bug.

Thanks for filing the issue, I'm going to leave it open and rename it to track sorting so that this test can be done with results that are easier to interpret.

@dagood dagood changed the title The x86 installers have different contents as the x86 zip archives. The platform manifest should be sorted: order stability is useful for testing Sep 9, 2019
@msftgits msftgits transferred this issue from dotnet/core-setup Jan 30, 2020
@msftgits msftgits added this to the 5.0 milestone Jan 30, 2020
@dagood dagood removed the Triaged label Jan 30, 2020
@NikolaMilosavljevic
Copy link
Member

@jkoritzinsky is this tracked by your work in shared FX?

@NikolaMilosavljevic NikolaMilosavljevic modified the milestones: 5.0.0, 6.0.0 Jul 28, 2020
@jkoritzinsky
Copy link
Member

This is implemented in the templated platform manifest.

@NicoleWang001
Copy link
Member

With SDK 3.1.107 and 3.1.401, ref files (files on .\packs\Microsoft.AspNetCore.App.Ref\3.1.3\ref\netcoreapp3.1) on .exe installer is more recent than .zip installer.
image

@jkoritzinsky
Copy link
Member

Fixed by #38457

@vdanche
Copy link
Member

vdanche commented Nov 25, 2020

@jkoritzinsky Still repro on SDK 3.1.111, ref files (files on .\packs\microsoft.aspnetcore.app.ref\3.1.10\ref\netcoreapp3.1) on .exe installer is more recent than .zip installer.
image

@dagood
Copy link
Member

dagood commented Nov 25, 2020

This issue wasn't tracking a timestamp issue, just sorting the list of files in PlatformManifest.txt. This repo (dotnet/runtime) is also not involved in those files in the SDK. I've filed a new issue for that diff at https://github.com/dotnet/installer/issues/9153.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

7 participants