microsoft / component-detection

Scans your project to determine what components you use
MIT License
412 stars 87 forks source link

Smoke Test Failure - Stack Overflow in Rust CLI Detector #961

Closed github-actions[bot] closed 7 months ago

github-actions[bot] commented 7 months ago

:x: Smoke Test Failure

The following smoke tests failed:

View Run

cc: @microsoft/ose-component-detection-maintainers

AB#2138990

melotic commented 7 months ago

Looks like the smoke tests finally caught a real bug in the RustCliDetector 🥳

2024-01-11T00:20:50.8010324Z [00:20:50 INF] Discovered Cargo.toml: /usr/local/vss-agent/2.311.0/_work/component-detection/component-detection/smoke-test-repo/alacritty_config_derive/Cargo.toml
2024-01-11T00:20:51.3307528Z Stack overflow.
2024-01-11T00:20:51.3426581Z    at System.String.Ctor(System.ReadOnlySpan`1<Char>)
2024-01-11T00:20:51.3428362Z    at System.Span`1[[System.Char, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ToString()
2024-01-11T00:20:51.3432812Z    at System.Text.ValueStringBuilder.ToString()
2024-01-11T00:20:51.3434176Z    at System.String.FormatHelper(System.IFormatProvider, System.String, System.ParamsArray)
2024-01-11T00:20:51.3436053Z    at System.String.Format(System.String, System.Object, System.Object, System.Object)
2024-01-11T00:20:51.3439043Z    at Microsoft.ComponentDetection.Contracts.TypedComponent.CargoComponent.get_Id()
2024-01-11T00:20:51.3443419Z    at Microsoft.ComponentDetection.Common.DependencyGraph.ComponentRecorder+SingleFileComponentRecorder.RegisterUsage(Microsoft.ComponentDetection.Contracts.DetectedComponent, Boolean, System.String, System.Nullable`1<Boolean>, System.Nullable`1<Microsoft.ComponentDetection.Contracts.BcdeModels.DependencyScope>)
2024-01-11T00:20:51.3452078Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3464095Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3474829Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3485616Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3496262Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3506545Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3517301Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3527652Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3538313Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3549016Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3559425Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3570073Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3580794Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3591174Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3601562Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3612167Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
2024-01-11T00:20:51.3623520Z    at Microsoft.ComponentDetection.Detectors.Rust.RustCliDetector.TraverseAndRecordComponents(Microsoft.ComponentDetection.Contracts.ISingleFileComponentRecorder, System.String, System.Collections.Generic.IReadOnlyDictionary`2<System.String,Microsoft.ComponentDetection.Detectors.Rust.Contracts.Node>, System.String, Microsoft.ComponentDetection.Contracts.DetectedComponent, Microsoft.ComponentDetection.Detectors.Rust.Contracts.Dep, System.Collections.Generic.IReadOnlyDictionary`2<System.String,System.ValueTuple`2<System.String,System.String>>, Boolean)
cobya commented 7 months ago

@FernandoRojo should have a fix out for this today / tomorrow.

FernandoRojo commented 7 months ago

Sorry for the delay,

Caused by circular dependency

duplicate of https://github.com/microsoft/component-detection/issues/948 Fix in https://github.com/microsoft/component-detection/pull/975