Skip to content

Cleanup Issue-URLs in Code #63902

@deeprobin

Description

@deeprobin

Every now and then issue URLs are written into the code, for example to describe a workaround around a certain bug.

This creates remnants in the code. I have written a small tool, which uses the GitHub API to find all URLs and checks whether this is a closed issue and then exports the whole thing to me as Markdown 1.

But I am not sure if a certain comment can be removed because the corresponding issue was closed.

I think we should just look at the following code parts and check that.

Find Closed Issues Tool Results (18.01.2022)

File src/tests/JIT/Methodical/structs/systemvbringup/structpinvoketests.cs (File Position 3633-3678)

public long w;
}
/* These tests are not working on non Windows CoreCLR. Enable this when https://github.com/dotnet/runtime/issues/4680 is resolved.
[StructLayout(LayoutKind.Sequential)]
public struct S28

File src/coreclr/pal/src/include/pal/mutex.hpp (File Position 5384-5430)

// - Temporarily disabling usage of pthread process-shared mutexes on ARM/ARM64 due to functional issues that cannot easily be
// detected with code due to hangs. See https://github.com/dotnet/runtime/issues/6014.
// - On FreeBSD, pthread process-shared robust mutexes cannot be placed in shared memory mapped independently by the processes
// involved. See https://github.com/dotnet/runtime/issues/10519.

File src/libraries/Microsoft.VisualBasic.Core/src/Microsoft/VisualBasic/CompilerServices/Operators.vb (File Position 225458-225503)

End Function
<MethodImpl(MethodImplOptions.NoInlining)> ' To work around https://github.com/dotnet/runtime/issues/7141
Private Shared Function ModSByte(ByVal left As SByte, ByVal right As SByte) As Object
Return left Mod right

File src/libraries/System.Private.CoreLib/src/System/ReadOnlySpan.cs (File Position 6802-6848)

{
[NonVersionable]
get => 0 >= (uint)_length; // Workaround for https://github.com/dotnet/runtime/issues/10950
}

File src/libraries/System.Private.CoreLib/src/System/Span.cs (File Position 7264-7310)

{
[NonVersionable]
get => 0 >= (uint)_length; // Workaround for https://github.com/dotnet/runtime/issues/10950
}

File src/coreclr/System.Private.CoreLib/src/System/Reflection/RuntimeCustomAttributeData.cs (File Position 59996-60042)

{
// Resolve method ctor token found in decorated decoratedModule scope
// See https://github.com/dotnet/runtime/issues/11637 for why we fast-path non-generics here (fewer allocations)
if (attributeType.IsGenericType)
{

File src/libraries/System.ComponentModel.Annotations/tests/System/ComponentModel/DataAnnotations/DataTypeAttributeTests.cs (File Position 3236-3283)

// .NET Core fixed a bug where whitespace strings were allowed as CustomDataType.
// See https://github.com/dotnet/runtime/issues/15690.
yield return new object[] { " ", PlatformDetection.IsNetFramework };
}

File src/mono/mono/utils/mono-threads-windows.c (File Position 4766-4813)

// same resource that was part of the cancelation. Current implementation of
// .NET Framework and .NET Core currently don't support the ability to abort a thread
// blocked on sync IO calls, see https://github.com/dotnet/runtime/issues/16236.
// Since there is no solution covering all scenarios aborting blocking syscall this
// will be on best effort and there might still be a slight risk that the blocking call

File src/libraries/System.IO.IsolatedStorage/src/System/IO/IsolatedStorage/IsolatedStorageFile.cs (File Position 1526-1572)

internal IsolatedStorageFile(IsolatedStorageScope scope)
{
// Evidence isn't currently available: https://github.com/dotnet/runtime/issues/18208
// public static IsolatedStorageFile GetStore(IsolatedStorageScope scope, Evidence domainEvidence, Type domainEvidenceType, Evidence assemblyEvidence, Type assemblyEvidenceType) { return default(IsolatedStorageFile); }

File src/libraries/Common/src/Extensions/ParameterDefaultValue/ParameterDefaultValue.netstandard.cs (File Position 782-828)

catch (FormatException) when (parameter.ParameterType == typeof(DateTime))
{
// Workaround for https://github.com/dotnet/runtime/issues/18844
// If HasDefaultValue throws FormatException for DateTime
// we expect it to have default value

File src/libraries/System.Runtime/tests/System/TupleTests.cs (File Position 11829-11875)

{
// This was not fixed in order to be compatible with the .NET Framework and Xamarin.
// See https://github.com/dotnet/runtime/issues/19265
IStructuralEquatable equatable = (IStructuralEquatable)Tuple;
Assert.Throws<NullReferenceException>(() => equatable.Equals(Tuple, null));

File src/libraries/System.ValueTuple/tests/ValueTupleTests.cs (File Position 12672-12718)

{
// This was not fixed in order to be compatible with the .NET Framework and Xamarin.
// https://github.com/dotnet/runtime/issues/19275
IStructuralEquatable equatable = (IStructuralEquatable)valueTuple;
if (valueTuple is ValueTuple)

File src/libraries/System.Diagnostics.Process/tests/ProcessStreamReadTests.cs (File Position 18733-18780)

public void TestEOFReceivedWhenStdInClosed()
{
// This is the test for the fix of https://github.com/dotnet/runtime/issues/19277.
//
// Summary of the issue:

File src/tests/JIT/SIMD/Vector3GetHash.cs (File Position 379-425)

// It exposed a bug in morph, in which a SIMD field was being morphed in
// a MACK_Ind context, even though it was under a GT_IND(G_ADDR()).
// This was https://github.com/dotnet/runtime/issues/20080, and was "fixed" with
// https://github.com/dotnet/coreclr/pull/9496 and a new issue,
// https://github.com/dotnet/runtime/issues/7405, has been filed to track the underlying unexpected

File src/libraries/System.Drawing.Common/tests/Imaging/ImageFormatTests.cs (File Position 5736-5782)

}
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "Bug fix not in NETFX, https://github.com/dotnet/runtime/issues/20332")]
[ConditionalTheory(Helpers.IsDrawingSupported)]
[MemberData(nameof(ImageFromFileToStringTestData))]

File src/libraries/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.TestService/TestServiceInstaller.cs (File Position 6751-6797)

{
// The Service exists at this point, but OpenService is failing, possibly because its being invoked concurrently for another service.
// https://github.com/dotnet/runtime/issues/23247
if (svc.Status != ServiceControllerStatus.Stopped)
{

File src/libraries/System.IO.FileSystem/tests/Directory/EnumerableTests.cs (File Position 586-633)

// we don't guarantee thread safety of enumerators in general, but on Windows we
// currently are thread safe, and this test will help ensure that if we change that
// it's a conscious decision. Discussed in https://github.com/dotnet/runtime/issues/24295.
[PlatformSpecific(TestPlatforms.Windows)]
public void FileEnumeratorIsThreadSafe()

File src/libraries/System.Text.RegularExpressions/tests/Regex.Groups.Tests.cs (File Position 42960-43006)

yield return new object[] { engine, null, @"(cat)(\cz*)(dog)", "asdlkcat\u001adogiwod", RegexOptions.None, new string[] { "cat\u001adog", "cat", "\u001a", "dog" } };
if (!PlatformDetection.IsNetFramework) // missing fix for https://github.com/dotnet/runtime/issues/24759
{
yield return new object[] { engine, null, @"(cat)(\c[*)(dog)", "asdlkcat\u001bdogiwod", RegexOptions.None, new string[] { "cat\u001bdog", "cat", "\u001b", "dog" } };

File src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/SettingElementTests.cs (File Position 1871-1917)

}
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ".NET Framework does not have the fix for https://github.com/dotnet/runtime/issues/25369")]
[Fact]
public void DefaultConstructorEqualHashCodes()

File src/libraries/System.Net.Sockets/tests/FunctionalTests/ArgumentValidationTests.cs (File Position 34725-34771)

{
// Unlike other tests that reuse a static Socket instance, this test avoids doing so
// to work around a behavior of .NET 4.7.2. See https://github.com/dotnet/runtime/issues/26062
// for more details.

File src/libraries/System.Private.Xml/tests/XmlReader/Tests/ReaderEncodingTests.cs (File Position 342-388)

{
/// <summary>
/// This class is not completely testing XmlReader Encoding, it has a regression tests for the fix of the issue: https://github.com/dotnet/runtime/issues/28615
/// which reported due to fuzzy testing. Defect happening while encoding byte array, which includes a surrogate char and an invalid char.
/// </summary>

File src/libraries/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryFormatterWriter.cs (File Position 5028-5074)

int objectId = (int)nameInfo._objectId;
Debug.Assert(typeNameInfo != null); // Explicitly called with null, asserting for now https://github.com/dotnet/runtime/issues/31402
string? objectName = objectId < 0 ?
typeNameInfo.NIname : // Nested Object

File eng/codeOptimization.targets (File Position 723-769)

across many of our assemblies on Mac, so disable
IBCMerge optimizations on Mac for now to unblock the offical build.
See issue https://github.com/dotnet/runtime/issues/33303
-->
<IsEligibleForNgenOptimization Condition="'$(TargetOS)' == 'OSX' or '$(TargetsMobile)' == 'true'">false</IsEligibleForNgenOptimization>

File src/coreclr/jit/CMakeLists.txt (File Position 388-434)

# Since there is no better / specific suppression available for these core warnings, we disable
# warn-as-error (-Werror) for JIT in this case. This issue has been fixed in gcc 11.
# See https://github.com/dotnet/runtime/issues/33541
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.0)
add_compile_options(-Wno-error)

File src/libraries/shims/generated/Directory.Build.props (File Position 1110-1156)

<ItemGroup>
<!-- reference everything but self -->
<!-- Type duplicated in Microsoft.Extensions.DependencyModel. Exclude it for now: https://github.com/dotnet/runtime/issues/34420 -->
<ReferencePath
Include="$(NetCoreAppCurrentRefPath)*.dll"

File src/tests/JIT/opt/OSR/tailrecursetry.csproj (File Position 260-306)

<Optimize>True</Optimize>
<!-- This test currently fails for TailcallStress. Disable for JIT stress modes until this is fixed.
Issue: https://github.com/dotnet/runtime/issues/35687
-->
<JitOptimizationSensitive>true</JitOptimizationSensitive>

File src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/HalfHelpers.cs (File Position 374-420)

{
// Temporarily implements missing APIs for System.Half
// Remove class once https://github.com/dotnet/runtime/issues/38288 has been addressed
internal static class HalfHelpers
{

File src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf16Utility.Validation.cs (File Position 3321-3367)

char* pEndOfInputBuffer = pInputBuffer + (uint)inputLength;
// Per https://github.com/dotnet/runtime/issues/41699, temporarily disabling
// ARM64-intrinsicified code paths. ARM64 platforms may still use the vectorized
// non-intrinsicified 'else' block below.

File src/libraries/System.Diagnostics.Process/tests/ProcessStandardConsoleTests.cs (File Position 1362-1408)

// Don't test this on Windows containers, as the test is currently failing
// cf. https://github.com/dotnet/runtime/issues/42000
if (!OperatingSystem.IsWindows() || PlatformDetection.IsInContainer)
{

File src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/NativeRuntimeEventSource.cs (File Position 2889-2935)

{
// A simple fix to avoid dependencies brought by this method if event source is disabled via a feature switch.
// Should be reconsidered when https://github.com/dotnet/runtime/issues/43657 is done.
if (!IsSupported)
{

File src/libraries/System.Net.WebSockets/tests/WebSocketDeflateTests.cs (File Position 22006-22053)

{
// When running Autobahn Test Suite some tests failed with zlib error "invalid distance too far back".
// Further investigation lead to a bug fix in zlib intel's implementation - https://github.com/dotnet/runtime/issues/50235.
// This test replicates one of the Autobahn tests to make sure this issue doesn't appear again.
byte[][] messages = new[]

Footnotes

  1. Tool source code

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-Metaneeds-further-triageIssue has been initially triaged, but needs deeper consideration or reconsiderationquestionAnswer questions and provide assistance, not an issue with source code or documentation.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions