Sad Tux - Windows bias detected
This page contains Windows bias

About This Page

This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.

Bias Analysis

Detected Bias Types
windows_tools
windows_first
missing_linux_example
Summary
The documentation shows a bias toward Windows environments. Troubleshooting steps and examples reference Windows-specific tools (e.g., Fiddler, Performance Monitor), Visual Studio UI, and .NET/ASP.NET patterns. There are no Linux-specific equivalents or instructions for common tasks like debugging, viewing network traffic, or monitoring server metrics. Linux and cross-platform scenarios are not addressed, and Windows tools are mentioned exclusively or before any alternatives.
Recommendations
  • Provide Linux equivalents for Windows tools mentioned, such as suggesting Wireshark or tcpdump for network traffic analysis, and dotnet-trace or PerfView (on Linux) for diagnostics.
  • Include instructions for enabling and viewing logs, debugging, and monitoring on Linux-based deployments (e.g., using journalctl, systemd, or container logs).
  • When referencing Visual Studio or Windows UI steps (e.g., 'Uncheck Just My Code'), add corresponding steps for VS Code, JetBrains Rider, or command-line debugging tools.
  • When mentioning Fiddler, also mention cross-platform alternatives like mitmproxy or Wireshark.
  • For performance monitoring, reference tools like top, htop, or dotnet-counters for Linux environments.
  • Add explicit notes or sections for Linux users, ensuring parity in troubleshooting guidance and code samples.
GitHub Create Pull Request

Scan History

Date Scan Status Result
2026-01-12 00:00 #99 completed Biased Biased
2026-01-11 06:20 #98 completed Biased Biased
2026-01-10 00:00 #92 completed Clean Clean
2026-01-09 00:00 #87 cancelled Clean Clean
2026-01-06 22:28 #78 completed Clean Clean
2025-12-29 18:00 #48 cancelled Biased Biased
2025-12-15 00:00 #7 completed Clean Clean
2025-12-14 05:05 #6 completed Clean Clean

Flagged Code Snippets

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
<system.diagnostics>
    <sources>
      <source name="Microsoft.Azure.SignalR" switchName="SignalRSwitch">
        <listeners>
          <add name="ASRS" />
        </listeners>
      </source>
    </sources>
    <!-- Sets the trace verbosity level -->
    <switches>
      <add name="SignalRSwitch" value="Information" />
    </switches>
    <!-- Specifies the trace writer for output -->
    <sharedListeners>
      <add name="ASRS" type="System.Diagnostics.TextWriterTraceListener" initializeData="asrs.log.txt" />
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>
public class ThreadPoolStarvationDetector : EventListener
{
    private const int EventIdForThreadPoolWorkerThreadAdjustmentAdjustment = 55;
    private const uint ReasonForStarvation = 6;

    private readonly ILogger<ThreadPoolStarvationDetector> _logger;

    public ThreadPoolStarvationDetector(ILogger<ThreadPoolStarvationDetector> logger)
    {
        _logger = logger;
    }

    protected override void OnEventSourceCreated(EventSource eventSource)
    {
        if (eventSource.Name == "Microsoft-Windows-DotNETRuntime")
        {
            EnableEvents(eventSource, EventLevel.Informational, EventKeywords.All);
        }
    }

    protected override void OnEventWritten(EventWrittenEventArgs eventData)
    {
        // See: https://learn.microsoft.com/dotnet/framework/performance/thread-pool-etw-events#threadpoolworkerthreadadjustmentadjustment
        if (eventData.EventId == EventIdForThreadPoolWorkerThreadAdjustmentAdjustment &&
            eventData.Payload[2] as uint? == ReasonForStarvation)
        {
            _logger.LogWarning("Thread pool starvation detected!");
        }
    }
}