---
meeting_id: "MTG-YYYYMMDD-INCIDENT-[SLUG]"
title: "WAR ROOM POST-MORTEM: [TÊN SỰ CỐ KHẨN CẤP]"
date: "YYYY-MM-DD"
time: "HH:MM - HH:MM"
location: "War Room Discord / Hotfix Bridge"
chair: "ciso_agent"
secretary: "lead_documentation_architect"
attendees:
  - "ciso_agent"
  - "server_systems_architect"
  - "studio_producer"
department: "03_incidents_war_room"
confidentiality: "INCIDENT_WAR_ROOM" # Ban đầu mật, sau khi fix sanitized thành PUBLIC_INTERNAL
tags: ["incident", "war-room", "post-mortem", "hotfix", "security"]
status: "OFFICIAL"
severity: "CRITICAL" # CRITICAL | HIGH | MEDIUM
downtime_minutes: 0
impacted_players_estimate: 0
---

# BIÊN BẢN TÁC CHIẾN WAR ROOM: [TÊN SỰ CỐ]

> **Mã Sự Cố**: `INC-YYYYMMDD-01`  
> **Mức Độ Nghiêm Trọng**: `CRITICAL` / `HIGH`  
> **Thời Gian Bắt Đầu**: YYYY-MM-DD HH:MM | **Thời Gian Khắc Phục**: YYYY-MM-DD HH:MM  
> **Chỉ Huy Tác Chiến (Incident Commander)**: `@ciso_agent` / `@server_systems_architect`  

---

## 1. TÓM TẮT SỰ CỐ (EXECUTIVE SUMMARY)
- Nêu ngắn gọn 2-3 câu: Hiện tượng xảy ra là gì? Người chơi/hệ thống bị ảnh hưởng ra sao? Biện pháp tức thời đã thực hiện.

---

## 2. DÒNG THỜI GIAN TÁC CHIẾN (CHRONOLOGICAL TIMELINE)
- **HH:MM**: Hệ thống cảnh báo tự động kích hoạt (Alert triggered: CPU Spike / Error 500 / Anomaly Inflow).
- **HH:MM**: Kích hoạt War Room khẩn cấp, cô lập cổng thanh toán / khóa rương qua `EconomicAnomalyDetector`.
- **HH:MM**: Xác định root-cause: Lỗi race condition khi gửi gói tin song song.
- **HH:MM**: Triển khai bản vá nóng (Hotfix commit `hash`).
- **HH:MM**: Chạy kiểm thử tự hành TDD + Red Team fuzzing xác nhận lỗi đã bị triệt tiêu hoàn toàn.
- **HH:MM**: Mở lại dịch vụ bình thường.

---

## 3. PH N TÍCH NGUYÊN NHÂN GỐC RỄ (5 WHYS ROOT CAUSE ANALYSIS)
1. **Tại sao người chơi có thể nhân bản vật phẩm?**  
   -> Vì gói tin `withdraw_item` được gửi liên tục 2 lần trong 5ms.
2. **Tại sao server lại xử lý cả 2 yêu cầu cùng lúc?**  
   -> Vì thiếu Distributed Lock kiểm tra phiên giao dịch trước khi trừ vật phẩm trong database.
3. **Tại sao Distributed Lock không được áp dụng ở API này?**  
   -> Vì lúc dev vội ở sprint trước, chưa tích hợp decorator `@distributed_lock`.
4. **Tại sao QA không bắt được trong đợt release?**  
   -> Thiếu kịch bản test concurrency race condition đa luồng.
5. **Nguyên nhân cốt lõi (Root Cause)**:  
   -> Quy trình CI/CD chưa có automated security fuzzer cho các giao dịch kinh tế.

---

## 4. BÀI HỌC KINH NGHIỆM (BLAMELESS LESSONS LEARNED)
- **Điểm làm tốt**: Phát hiện sớm trong 3 phút nhờ hệ thống giám sát anomaly. Đội ngũ tập hợp War Room trong 5 phút.
- **Điểm làm chưa tốt**: Thời gian khoanh vùng code lỗi mất 30 phút do log thiếu `correlation_id`.
- **May mắn**: Chưa có vật phẩm nào bị tuồn ra Hắc Thị ngoài luồng.

---

## 5. CÁC HÀNH ĐỘNG PHÒNG NGỪA TẬN GỐC (ACTION ITEMS)

| Mã Đầu Việc | Hành Động Phòng Ngừa (Preventative Action) | Người Phụ Trách | Hạn Chót | Trạng Thái | Ticket / PR |
| :--- | :--- | :--- | :---: | :---: | :--- |
| `ACT-INC-YYYYMMDD-01` | Bọc Distributed Lock 2PC cho toàn bộ hàm rương đồ | `@server_architect` | YYYY-MM-DD | `OPEN` | `server/world/stash.py` |
| `ACT-INC-YYYYMMDD-02` | Thêm kịch bản Red Team automated race-condition fuzzing vào CI | `@red_team_operator` | YYYY-MM-DD | `OPEN` | `tools/security/fuzz.py` |
| `ACT-INC-YYYYMMDD-03` | Cập nhật Telemetry log chuẩn `session_id` + `tx_id` | `@lead_server` | YYYY-MM-DD | `OPEN` | - |
