process-hang-diagnosis

Correlate kernel wait channels with user-space thread states to diagnose hung Linux processes.

3|2|Updated Apr 24, 2026
One-click install
npx skills add https://github.com/openeuler-mirror/witty-diagnosis-agent --skill process-hang-diagnosis
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: process-hang-diagnosis
Source: https://github.com/openeuler-mirror/witty-diagnosis-agent/tree/main/skills/process-hang-diagnosis
Command: npx skills add https://github.com/openeuler-mirror/witty-diagnosis-agent --skill process-hang-diagnosis

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

This skill resolves complex process hang issues by identifying the root cause of unresponsive applications, whether they are stuck in kernel-level D-states, deadlocked in user-space, or blocked by resource contention.

Core Features & Use Cases

  • Dual-Track Analysis: Simultaneously correlates OS-level kernel states with process-level internal execution paths for high-confidence root cause identification.
  • Automated Branching: Automatically selects the correct diagnostic path (e.g., futex wait, ABBA deadlock, file lock contention, or pipe/socket blocking) based on initial baseline data.
  • Use Case: When a critical production service stops responding to requests, use this skill to determine if it is stuck in a deadlock, waiting on a file lock, or blocked by an unresponsive network socket, and receive actionable remediation steps.

Quick Start

Use the process-hang-diagnosis skill to analyze the unresponsive process with PID 1234 and save the diagnostic report to the current directory.

Frequently Asked Questions about process-hang-diagnosis

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I diagnose a Linux process stuck in an uninterruptible sleep D-state?

To diagnose a Linux process stuck in an uninterruptible D-state, this skill correlates kernel-level wait channels with user-space thread execution states via non-intrusive introspection. It pinpoints whether the hang stems from resource contention or deep kernel blocking.

What is the best way to troubleshoot a production deadlock on Linux?

Troubleshooting a production deadlock requires correlating kernel states with internal execution paths to identify ABBA deadlocks or futex waits. Automated branching selects the correct diagnostic path based on initial baseline data to pinpoint the exact blocking mechanism.

How do I find the root cause of a process blocked by file lock contention?

To find the root cause of a process blocked by file lock contention, apply automated diagnostic branching to correlate OS-level kernel states with process-level execution paths. This confirms the specific lock contention blocking the thread.

Do I need ptrace capabilities to analyze unresponsive Linux process stack traces?

Yes, you need ptrace capabilities and procfs access to analyze unresponsive Linux process stack traces. These permissions enable non-intrusive process introspection, allowing the dual-track analysis to correlate kernel wait channels with user-space thread states.

Why does my production service stop responding to requests without high CPU usage?

A production service stops responding to requests without high CPU usage due to deadlocks, network socket blocking, or waiting on futexes. Diagnosing this requires correlating kernel wait channels with user-space thread execution states to identify the exact resource bottleneck.