Skip to content
This repository has been archived by the owner on Jul 30, 2024. It is now read-only.
/ NuGet.Jobs Public archive

FailValidationWithMixedSymbols #656

Merged
merged 3 commits into from
Nov 7, 2018
Merged

FailValidationWithMixedSymbols #656

merged 3 commits into from
Nov 7, 2018

Conversation

cristinamanum
Copy link
Contributor

Fix the case when a symbol package has both symbols that pass validation and symbols that fail validation.
The validation should fail in this case.

@@ -38,6 +38,7 @@ public interface ITelemetryService : ISubscriptionProcessorTelemetryService
/// <param name="packageNormalizedVersion">The package normalized version.</param>
/// <param name="validationStatus">The validation result.</param>
/// <param name="issue">Information about the issue id failed or empty if passed..</param>
void TrackSymbolsValidationResultEvent(string packageId, string packageNormalizedVersion, ValidationStatus validationStatus, string issue);
/// <param name="assemblyName">The assembly name.</param>
void TrackSymbolsValidationResultEvent(string packageId, string packageNormalizedVersion, ValidationStatus validationStatus, string issue, string assemblyName);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: assemblyName is really assemblyPath?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is the assembly name. The log looks like:
{"PackageNormalizedVersion":"1.0.0","PackageId":"SymServBadPortableCM1","ValidationResult":"Succeeded","AssemblyName":"PortableTestAppCM11.dll"}

@@ -64,7 +64,7 @@ public async Task<IValidationResult> ValidateSymbolsAsync(SymbolsValidatorMessag
{
if (!SymbolsHaveMatchingPEFiles(pdbs, pes))
{
_telemetryService.TrackSymbolsValidationResultEvent(message.PackageId, message.PackageNormalizedVersion, ValidationStatus.Failed, nameof(ValidationIssue.SymbolErrorCode_MatchingPortablePDBNotFound));
_telemetryService.TrackSymbolsValidationResultEvent(message.PackageId, message.PackageNormalizedVersion, ValidationStatus.Failed, nameof(ValidationIssue.SymbolErrorCode_MatchingPortablePDBNotFound), assemblyName:"");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: why not use PDB path instead of assemblyName... in this scenario, you could point the user at the PDB, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to identify the missing assembly.

@cristinamanum cristinamanum merged commit 66d68d1 into dev Nov 7, 2018
@cristinamanum cristinamanum deleted the cmanu-mixedsymbols branch February 11, 2019 22:51
joelverhagen pushed a commit that referenced this pull request Sep 27, 2019
* Extracting icon URL from catalog pages.
* Moved the ServicePointManager.DefaultConnectionLimit to the job class.
* Error handling and timeouts.
* Retries and icon URL validation.
* Initial cache implementation.
* Common retrying code.
Actually copying blob when found in cache.
* Processeing HTTP 308 resopnse manually.
* Better TLS failure check
* CallGuid and minor exception update.
* Organized usings.
Const for blob storage copy attempts.
* Using CatalogClient to get catalog leaves.
* Not using HttpClient directly to retrieve the icon data.
* logging deletes
* Removed unused arguments
* Ignoring and logging unexpected responses instead of throwing.
* Extracted catalog data processing into its own class.
* Extracted external content provider.
* Cache in a separate class.
* Logging update.
* Handling copy from cache/storage failures.
* Custom JsonConverter to be able to read certain funny catalog leaves.
* Trying to warn instead of erroring for missing cache item.
* Changed the implementation to pick the first element of the array instead of concatenating (to align the behavior with similar code). Renamed classes accordingly.
* Retry should actually throw on last attempt.
* LogWarning -> LogError, to get errors to AI
* Proper package filename for the embedded icon case.
* Putting back LogWarning for non-important exceptions
* Logging reported content type for analysis.
* Logging storageUrl when copy from cache fails.
* More tests.
* whitespace
* Minor feedback addressed.
* Storage -> IStorage where possible.
More tests.
* Minor feedback.
* Separate HttpMessageHandler for collector to avoid disposing of the shared instance.
* Documentation.
* catalog2icon package
* build script update
* Logging leaf retreival exceptions.
* logging offending leaf URL
* IHttpClient & HttpClientWrapper.
* Refactored `ProcessExternalIconUrlAsync`
* ToLower -> ToLowerInvariant
* UTs for cache.
* content type fix
joelverhagen pushed a commit that referenced this pull request Oct 26, 2020
* Fix mixed(failing and passing) symbols validation.

* Feedback - add better telemetry.
joelverhagen pushed a commit that referenced this pull request Oct 26, 2020
* Extracting icon URL from catalog pages.
* Moved the ServicePointManager.DefaultConnectionLimit to the job class.
* Error handling and timeouts.
* Retries and icon URL validation.
* Initial cache implementation.
* Common retrying code.
Actually copying blob when found in cache.
* Processeing HTTP 308 resopnse manually.
* Better TLS failure check
* CallGuid and minor exception update.
* Organized usings.
Const for blob storage copy attempts.
* Using CatalogClient to get catalog leaves.
* Not using HttpClient directly to retrieve the icon data.
* logging deletes
* Removed unused arguments
* Ignoring and logging unexpected responses instead of throwing.
* Extracted catalog data processing into its own class.
* Extracted external content provider.
* Cache in a separate class.
* Logging update.
* Handling copy from cache/storage failures.
* Custom JsonConverter to be able to read certain funny catalog leaves.
* Trying to warn instead of erroring for missing cache item.
* Changed the implementation to pick the first element of the array instead of concatenating (to align the behavior with similar code). Renamed classes accordingly.
* Retry should actually throw on last attempt.
* LogWarning -> LogError, to get errors to AI
* Proper package filename for the embedded icon case.
* Putting back LogWarning for non-important exceptions
* Logging reported content type for analysis.
* Logging storageUrl when copy from cache fails.
* More tests.
* whitespace
* Minor feedback addressed.
* Storage -> IStorage where possible.
More tests.
* Minor feedback.
* Separate HttpMessageHandler for collector to avoid disposing of the shared instance.
* Documentation.
* catalog2icon package
* build script update
* Logging leaf retreival exceptions.
* logging offending leaf URL
* IHttpClient & HttpClientWrapper.
* Refactored `ProcessExternalIconUrlAsync`
* ToLower -> ToLowerInvariant
* UTs for cache.
* content type fix
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants