NuGet / Home

Repo for NuGet Client issues
Other
1.49k stars 251 forks source link

Nuget: Central Directory corrupt #13711

Open jeffschwMSFT opened 1 month ago

jeffschwMSFT commented 1 month ago

NuGet Product Used

dotnet.exe

Product Version

.NET 9 Preview

Worked before?

yes

Impact

It's more difficult to complete my work

Repro Steps & Context

Full details can be found here https://github.com/dotnet/dnceng/issues/3099

  Restored D:\a\_work\1\s\src\libraries\externals.csproj (in 1.01 sec).
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error : Central Directory corrupt. [D:\a\_work\1\s\Build.proj]
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error :    at System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory() [D:\a\_work\1\s\Build.proj]
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error :    at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding) [D:\a\_work\1\s\Build.proj]
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error :    at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding) [D:\a\_work\1\s\Build.proj]
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error :    at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen) [D:\a\_work\1\s\Build.proj]
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error :    at NuGet.Packaging.PackageArchiveReader..ctor(Stream stream, Boolean leaveStreamOpen, IFrameworkNameProvider frameworkProvider, IFrameworkCompatibilityProvider compatibilityProvider) [D:\a\_work\1\s\Build.proj]
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error :    at NuGet.Packaging.PackageArchiveReader..ctor(Stream stream) [D:\a\_work\1\s\Build.proj]
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error :    at NuGet.Protocol.RemotePackageArchiveDownloader.GetPackageReader() [D:\a\_work\1\s\Build.proj]
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error :    at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode) [D:\a\_work\1\s\Build.proj]
D:\a\_work\1\s\.dotnet\sdk\9.0.100-preview.5.24307.3\NuGet.RestoreEx.targets(19,5): error :    at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode) [D:\a\_work\1\s\Build.proj]

Verbose Logs

No response

Nigusu-Allehu commented 1 month ago

Thank for reaching out! You have a link to a build in the referenced dceng issue. However, I am not able to access it (it doesn't exist anymore).

Just by looking at the error, my guess is, maybe there is a corrupt nupkg being used by your project.

Is it possible to provide some sort of repro step or a build we could look into?

jeffschwMSFT commented 1 month ago

this is part of the netcoreapp build (for .NET Core). We see this issue ~daily in our build. there are constant changes, but less likely that it is a corrupt package. I do not have a standalone repro

nkolev92 commented 4 weeks ago

Continuing some of this discussion via e-mail.

Regardless of the root problem, I think there's an opportunity for improving the logging here, since the log message doesn't even tell us what package is corrupt.