Gke AI Troubleshooting Tpu Vbar Oom
GoogleOfficialPublished by Google
- Skill
- Review and audit
- Cloud and DevOps
- Apache-2.0
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a systematic diagnostic and resolution workflow for troubleshooting vbar_control_agent segfaults and OOM errors on GKE TPU v6e nodes. These issues are often caused by race conditions during TPU device resets or high-frequency metrics polling. The skill guides users through log analysis using Cloud Logging to identify memory cgroup OOMs and metrics fetch failures, and provides steps to mitigate these issues by identifying and disabling conflicting custom metrics collection.
What it does
- Analyzes serial console logs for vbar_control_agent OOM and segfault signatures.
- Investigates tpu-device-plugin metrics fetch failures indicating vBAR memory corruption.
- Identifies potential conflicts from custom TPU metrics collection scripts or agents.
- Provides a structured workflow to isolate the root cause of TPU device initialization failures.
- Offers actionable resolution steps including disabling conflicting metrics collectors.
- Advises on long-term mitigation through GKE version upgrades.
When to use it
- When troubleshooting vbar_control_agent crashes on GKE TPU v6e nodes.
- When memory cgroup OOM errors appear in serial console logs.
- When tpu-device-plugin reports metrics checksum corruption errors.
- When investigating TPU device initialization failures or custom metrics collection conflicts.
Advantages
- Reduces mean time to resolution for complex TPU-related node failures.
- Provides specific log filter templates for targeted diagnostics.
- Helps distinguish between transient race conditions and persistent configuration issues.
- Includes clear guidance on attribution for GCP command execution.
Usage examples
- “My TPU v6e node is crashing, how do I check for vbar_control_agent OOMs?”
- The agent will guide you through calculating the time window and applying the specific Cloud Logging filter to search serial console logs for vbar_control_agent OOM signatures.
- “How do I investigate tpu-device-plugin metrics fetch failures?”
- The agent will provide a log query to search for checksum mismatch errors in the tpu-device-plugin container logs to confirm vBAR memory corruption.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/google/gke-ai-troubleshooting-tpu-vbar-oom/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip gke-ai-troubleshooting-tpu-vbar-oom.zip -d .agents/skills
Documentation by Google
TPU Connection Failure and VBAR OOM Troubleshooting
Use this skill to systematically diagnose and prevent vbar_control_agent
segfaults and Out-Of-Memory (OOM) errors on TPU v6e nodes.
Attribution
MUST READ: Before executing any gcloud, REST API, or MCP command, you
MUST read Usage Attribution. For commands executed
directly in the terminal (never in generated scripts, Terraform, or user code),
prefix gcloud with
CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gke-ai-troubleshooting-tpu-vbar-oom)"
and append agent-skills/1.0 (skill:gke-ai-troubleshooting-tpu-vbar-oom) to User-Agent headers.
⚠️ Prerequisites
Cloud Logging must be enabled for the project.
Access to the project and cluster via
gcloudor equivalent tool.
🔍 Diagnostic Workflow
Step 0: Context Acquisition & Time Window Definition
Independently gather required context using available GCP/GKE tools or use the
provided {variable} placeholders:
{project_id}: The GCP Project ID (e.g.,customer-ai-project-123).{cluster_name}: The GKE Cluster Name (e.g.,tpu-cluster-prod).{node_name}: The Node Name or Instance ID (e.g.,tpu-node-1).{workload_name}: The Workload Name / JobSet Name (e.g.,my-training-job-456).{namespace}: The Workload Namespace.{issue_time}: The timestamp of the issue (e.g.,2026-04-14T20:00:00Z).
Time Handling & Execution Rules
Window Calculation: If an issue timestamp
{issue_time}is provided, calculate the query time window as[{issue_time} - 30m]to[{issue_time} + 30m].Let
{start_time}={issue_time} - 30mLet
{end_time}={issue_time} + 30m
Informational vs. Live Execution: If the user request is informational or query-formulation (e.g. "How can I check...", "How do I determine..."), or if live GCP project resources are not actively targetable, directly output the calculated time window, log names, and Cloud Logging filter templates without attempting live log execution commands.
Step 1: Check for vbar_control_agent OOMs
Look for specific out of memory messages from vbar_control_agent in serial
console logs (serialconsole.googleapis.com%2fserial_port_1_output).
Tool to use:
query_logs(for live diagnostics)Filter Templates:
Serial Console Logs (OOMs):
logName="projects/{project_id}/logs/serialconsole.googleapis.com%2fserial_port_1_output"
AND labels."compute.googleapis.com/resource_name"="{node_name}"
AND SEARCH(text_payload, "Memory cgroup out of memory: Killed process .* (vbar_control_ag)")
AND timestamp >= "{start_time}"
AND timestamp <= "{end_time}"Logic: Presence of
Memory cgroup out of memorymessages related tovbar_control_agent. Stack traces pointing tolibtpu::tpunetd::VBARControlHelper::MetricsReadFromVBARare a strong indicator.Automation: Proceed to next step automatically after reporting findings.
Reference: See
references/failure_signatures.mdfor example log patterns.
Step 2: Investigate tpu-device-plugin Metrics Fetch Failures [Low Risk]
Check if tpu-device-plugin is reporting metric fetch failures.
Tool to use:
query_logsFilter Template:
resource.type="k8s_container"
AND resource.labels.project_id="{project_id}"
AND resource.labels.cluster_name="{cluster_name}"
AND resource.labels.container_name="tpu-device-plugin"
AND severity=ERROR
AND textPayload:"metrics fetch failed for .* deviceID and .* device path with error: checksum didn't match with the metrics data. Corrupt data found"
AND timestamp >= "{start_time}"
AND timestamp <= "{end_time}"Logic: Errors indicating "metrics fetch failed" with "checksum didn't match" suggest vBAR memory corruption.
Automation: Proceed to next step automatically after reporting findings.
Step 3: Check for Custom Metrics Collection Usage [Low Risk]
Inspect cluster configurations, workloads, or container specs to determine if custom TPU metrics collection mechanisms are deployed.
Action: Check if custom scripts or agents (e.g., using
libtpu.sdk.tpumonitoring) are deployed that frequently queryGetHostMetricsfromvBAR Control Agent.Verification Commands:
Kubectl Search (Inspect workload env/specs):
kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"/"}{.metadata.name}{"\t"}{.spec.containers[*].image}{"\n"}{end}'Log Search Filter (
query_logs):
resource.type="k8s_container" AND resource.labels.project_id="{project_id}" AND resource.labels.cluster_name="{cluster_name}" AND textPayload:"libtpu.sdk.tpumonitoring" AND timestamp >= "{start_time}" AND timestamp <= "{end_time}"Logic: Confirmation of custom metrics collection helps confirm the race condition hypothesis.
🛠️ Resolution Workflow
Resolution 1: Temporarily Disable Custom Metrics Collection [High Risk]
If a custom metrics collection agent is identified, recommend disabling it.
Action: Recommend disabling the custom metrics collector.
Justification: Prevents reads from vBAR during device resets, stopping crashes and OOMs.
Resolution 2: Await vbar_control_agent Resiliency Update [Low Risk]
Advise that a permanent fix will be available in a future GKE version.
Action: Recommend upgrading GKE when the fix is available.
Justification: The updated agent will be resilient to memory corruption and gracefully handle reads from unbound vBARs.
📋 copypaste checklist
[ ] Acquire context and compute
[{start_time}, {end_time}]window.[ ] Check for
vbar_control_agentsegfaults and OOMs usingquery_logs.[ ] Investigate
tpu-device-pluginfailures usingquery_logs.[ ] Inspect for custom metrics collection usage.
[ ] Advise disabling custom metrics collection if applicable.
[ ] Advise awaiting resiliency update.
Files
- ATTRIBUTION.mdAdded by AutoGineer888 B
- LICENSELicence file added by AutoGineer11.1 KiB
- SKILL.md6.7 KiB
- references/attribution.md1.9 KiB
- references/failure_signatures.md1.4 KiB
- scripts/validate_queries.shScript993 B
ATTRIBUTION.md
Attribution
This folder is an unmodified copy of the Agent Skill "gke-ai-troubleshooting-tpu-vbar-oom", distributed by AutoGineer (https://autogineer.com/agent-skills).
Commit: 2194d3b8b1f31975fef2f1a0ae6b9ab55bd7ceee
Published by: Google (https://github.com/google)
Publisher: Google (https://github.com/google)
Licence: Apache License 2.0 (https://github.com/google/skills/blob/2194d3b8b1f31975fef2f1a0ae6b9ab55bd7ceee/LICENSE)
Licence evidence: repository licence LICENSE
Retrieved: 2026-11-07
The skill's own files are unmodified copies. AutoGineer is not affiliated with or endorsed by the author or the publisher.
Files added by AutoGineer
ATTRIBUTION.md: this file, written by AutoGineer
LICENSE: copied from LICENSE
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs a command-line tool, Needs Node.js
Security
What our scanner noticed· Low risk
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Publisher
- Google (Official)
- Source
- google/skills · skills/cloud/gke-ai-troubleshooting-tpu-vbar-oom · commit 2194d3b
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Google or Google.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download gke-ai-troubleshooting-tpu-vbar-oom.zip