Skip to content

Instantly share code, notes, and snippets.

View jaredpar's full-sized avatar

Jared Parsons jaredpar

View GitHub Profile
@jaredpar
jaredpar / roslyn-ci-low-test-runs.md
Created June 5, 2026 20:16
Roslyn-CI builds with suspicious low test count runs (last 48h)

Roslyn-CI Builds with Suspicious Low Test Count Runs (Last 48h)

Scanned 77 roslyn-CI builds from 2026-06-03 to 2026-06-05. Found 17 test runs with < 10 total tests (excluding macOS empty runs).

Failed Retry Runs (0.0s duration, all failed)

These appear to be AzDO retry summary runs that aggregate failures without real test execution.

Build Run ID Run Name Total Failed Duration
@jaredpar
jaredpar / oom-analysis.md
Last active June 1, 2026 04:58
x86 Test Host OOM Analysis for dotnet/roslyn TemporaryStorageService

x86 Test Host OOM Analysis

Problem Statement

The x86 test host for Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (net472) crashes with an OutOfMemoryException during CI runs. The x86 process has a 4 GB virtual address (VA) space limit, and the test host exceeds this limit during the ~16,591 test run.

Root Cause

x86 Test Host OOM Analysis

Summary

Two testhost.net472.x86.exe processes crashed with OOM on a Helix CI agent. Root cause: Roslyn's TemporaryStorageService accumulated 525+ unique 8 MB memory-mapped file (MMF) sections, consuming ~4,200 MB of virtual address space — exceeding the x86 process limit of 4 GB.

Environment

Property Value
using System.Diagnostics;
using System.Net.Http.Headers;
using System.Text.Json;
using System.Text.RegularExpressions;
/// <summary>
/// Proves that AzDO's reported duration for grouped parameterized tests is NOT
/// the sum of individual variant execution times.
///
/// Approach:
@jaredpar
jaredpar / helix-timeout-report.md
Created May 20, 2026 20:10
Roslyn CI: Helix job timed out report (last 2 days)

Roslyn CI: "Helix job timed out" Report (Last 2 Days)

Date range: May 18–20, 2026 Pipeline: roslyn-CI (dotnet/roslyn)

Summary

Over the last 2 days, 9 out of 140 roslyn-CI builds (6.4%) experienced at least one Helix job timeout. These 9 builds produced a total of 23 individual job timeout occurrences. The issue is systemic and not isolated to any single PR — it affects both PR validation builds and main branch builds alike. The most frequently affected leg is Test_Windows_CoreClr_Release, which timed out in 8 of the 9 affected builds.

Affected Builds and Jobs

Health Report — dotnet/roslyn / roslyn-CI

Overall Health: 🔴 RED (Critical — Infrastructure Failure + Masked Regression)

Current Status: Helix Infrastructure Instability + Masked Razor Regression

The pipeline remains critically impaired. 7 consecutive main branch failures since the last success (1425328, May 18 2:57 PM PDT). Only 3 out of 25 main builds succeeded in the last 3 days (12% success rate).

Active Problems

Health Report — dotnet/roslyn / roslyn-integration-lsp-CI

Overall Health: 🔴 RED — PIPELINE NON-OPERATIONAL (60+ HOURS)

Current Status:

  • PIPELINE DOWN — 0% success rate, 9/9 builds failed, 0 builds attempted in 60+ hours
  • Last build: 2026-05-16 07:04 AM PDT
  • No new builds since — pipeline disabled or trigger broken
  • Builds fail pre-test — no test execution occurs, no timeline data retrievable
  • Affected: 9 PRs from 6 different authors were blocked

net472-only UnitTests Projects — .NET Core/Linux Migration Candidates

Analyzed all 16 net472-only .UnitTests projects in dotnet/roslyn. Excluded 9 with Visual Studio/WPF hard dependencies. 7 candidates remain.

Low Effort (easiest wins)

Project Notes
CodeStyle/CSharp/Tests Pure analyzer testing, no VS/WPF deps. Straightforward.
Features/ExternalAccess/OmniSharpTest Minimal deps — OmniSharp.CSharp targets netstandard2.0. Very clean.
@jaredpar
jaredpar / plan.md
Created April 21, 2026 04:32
BlobBuilder Allocation Strategy Plan — System.Reflection.Metadata pooling for Roslyn VBCSCompiler

BlobBuilder Allocation Strategy Plan

Problem Statement

Roslyn's VBCSCompiler process suffers from significant byte[] allocations driven by System.Reflection.Metadata APIs, primarily through BlobBuilder. The goal is to enable a pooling strategy where Roslyn pre-allocates ~4MB of byte[] and PE file writing completes with zero (or near-zero) additional allocations.

BlobBuilder Architecture Deep Dive

What BlobBuilder Is

@jaredpar
jaredpar / intentional-no-action-comments.md
Created April 3, 2026 23:29
Intentional no-action comments in Roslyn codebase

Intentional No-Action Comments in Roslyn

Comments across C# and VB files where developers explicitly indicated no action is taken.


C# Files

Compilers