# MacBook Pro M1 — зависания после замены матрицы **Контекст:** заменена матрица (Built-in Liquid Retina XDR). После ремонта — повторяющиеся полные зависания системы. **Инцидент:** 2026-06-16, ~4 зависания за час (21:31–21:43). **Проверено:** 2026-06-16, логи `/Library/Logs/DiagnosticReports/`, `log show`, `last reboot`. См. также: [README.md](./README.md) --- ## 1. Симптом | Что видит пользователь | Что в логах | |------------------------|-------------| | Экран и ввод «замирают», курсор не двигается | Нет записей в unified log на время freeze (дыра в логах) | | Помогает только **удержание кнопки питания** | `btn_rst` / `finger_reset` в `forceReset-full-*.diag` | | Зависания повторяются **сразу после перезагрузки** (через 2–9 мин) | Аптайм в отчётах: 155 с, 537 с | | Не kernel panic с диалогом «перезагрузить» | Нет свежих `panic-full-*.panic` за 16.06; только `forceReset` | Это **hard lockup** (полная неотзывчивость SoC), а не обычный краш приложения. --- ## 2. Хронология 2026-06-16 | Время | Событие | Аптайм до freeze | |-------|---------|------------------| | ~19:19 | Загрузка (сессия до первого сбоя) | — | | 21:24–21:26 | Telegram: отчёт `cpu_resource` (~55% CPU за 3 мин) | ~2 ч | | **21:31** | `forceReset-full-2026-06-16-213115` · `btn_rst` | **~7921 с (~2 ч 12 мин)** | | **21:34** | `forceReset-full-2026-06-16-213425` · `btn_rst` | **~155 с (~2.5 мин)** | | 21:34–21:37 | `deleted` (CacheDelete): `cpu_resource` (~52% CPU) | после 2-го reboot | | **21:43** | `forceReset-full-2026-06-16-214334` · `btn_rst` | **~537 с (~9 мин)** | `last reboot`: ``` reboot Tue Jun 16 21:43 reboot Tue Jun 16 21:34 reboot Tue Jun 16 21:31 ``` В логах — **пропуск ~18 мин** (21:33 → 21:51): пока система зависла, запись остановилась. --- ## 3. RCA — что зафиксировано в отчётах ### 3.1 Тип сбоя: принудительный reset Все три отчёта за 16.06: ``` panic(cpu N caller ...): btn_rst Debugger message: panic Boot faults: btn_rst, finger_reset, force_off (в ResetCounter) ``` `btn_rst` = ядро зафиксировало сброс **кнопкой питания**, когда система уже не отвечала. Это не программный panic с stack trace приложения. Файлы: - `/Library/Logs/DiagnosticReports/forceReset-full-2026-06-16-213115.0002.diag` - `/Library/Logs/DiagnosticReports/forceReset-full-2026-06-16-213425.0002.diag` - `/Library/Logs/DiagnosticReports/forceReset-full-2026-06-16-214334.0002.diag` - `/Library/Logs/DiagnosticReports/ResetCounter-2026-06-16-213129.diag` (и 213438, 214346) ### 3.2 Главный подозреваемый: WindowServer (графический стек) Снимок процессов **на момент зависания** (поле `systemTimeTask`): | Freeze | Аптайм | WindowServer CPU time | Паттерн потоков | |--------|--------|----------------------|-----------------| | 21:31 | ~2 ч 12 мин | **714 с** | потоки ждут `semaphore port ... owned by pid` **самого WindowServer** | | 21:34 | ~2.5 мин | **15 с** | то же — deadlock на semaphore | | 21:43 | ~9 мин | **49 с** | то же — deadlock на semaphore | WindowServer — процесс отрисовки всего UI (SkyLight). Потоки, ждущие semaphore у того же PID, — типичный **deadlock в графическом конвейере**. Рядом в снимках присутствуют процессы дисплейного стека: - `corebrightnessd` — яркость / подсветка - `IOMFB_bics_daemon` — framebuffer (IOMFB) - `backboardd` — события ввода / дисплей ### 3.3 Что **не** найдено в открытых логах Поиск за 3 ч по `DCP`, `IOMFB`, `CLCD`, `backlight`, `GPU reset`, `panel`, `LCD`: - **Нет** явных ошибок драйвера дисплея или DCP - Только штатные записи (`mobileassetd`, `backlightservices`, уведомления) Apple часто **не пишет** аппаратные ошибки шлейфа/матрицы в открытый unified log. Отсутствие строк не опровергает аппаратную причину. ### 3.4 Дополнительная нагрузка (усиливающие факторы) | Процесс | Когда | Наблюдение | |---------|-------|------------| | **Telegram** | 21:24–21:26 | `cpu_resource`: ~55% CPU за 162 с | | **deleted** (CacheDelete) | 21:34–21:37 | `cpu_resource`: ~52% CPU, 88 с после boot | | **mds** / Spotlight | после каждого reboot | активная индексация (`mdworker_shared`) | | **Память** | на момент проверки | 16 GB почти заняты, ~7.8 GB в compressor, свободно ~140 MB | Высокая нагрузка и давление на память **усиливают** нестабильность, но паттерн WindowServer-deadlock + быстрые повторы после reboot указывают на проблему **графики/дисплея**, а не только на фоновые процессы. ### 3.5 История до 16.06 (система нестабильна несколько дней) | Период | Тип отчётов | Характер | |--------|-------------|----------| | 10–11.06 | `shutdown_stall` | зависание при выключении | | 12–14.06 | `panic-full` + `shutdown_stall` | `Wake transition timed out after 35 seconds` · suspected: `com.apple.driver.AppleSEPManager` | | 15.06 | `forceReset` (21:42) + `shutdown_stall` | тот же `btn_rst` | | 16.06 | 3× `forceReset` за час | WindowServer deadlock | До замены матрицы уже были сбои power management (SEP / wake). После ремонта доминирует другой профиль: **GUI freeze через WindowServer**, в том числе через несколько минут после загрузки. --- ## 4. Связь с заменой матрицы Прямых строк «ошибка шлейфа» в логах нет. Косвенные признаки, согласующиеся с ремонтом дисплея: 1. **WindowServer стабильно уходит в deadlock** на всех трёх снимках 2. В стеке рядом — `corebrightnessd`, `IOMFB_bics_daemon` 3. Зависания **сразу после reboot** (2.5 и 9 мин) — типично для драйвера/железа дисплея, а не для «прогрева» одного приложения 4. Полный lockup (`btn_rst`) без kernel panic — возможен при зависании GPU/DCP-конвейера **Вероятные аппаратные причины (для сервиса):** - плохой контакт **шлейфа матрицы** (eDP/LVDS) - повреждение или неправильная укладка **кабеля дисплея** - несовместимая или дефектная **матрица** для `MacBookPro18,1` (Liquid Retina XDR) - ошибка сборки: винты, заземление, T-Con / подсветка --- ## 5. Действия ### 5.1 Сервис (приоритет) Вернуть в сервис с этим runbook. Попросить проверить: 1. Посадку шлейфа матрицы и display cable на обоих концах 2. Отсутствие перекоса / залома шлейфа при закрытии крышки 3. Совместимость матрицы с **MacBookPro18,1** (Liquid Retina XDR, не «похожая» панель) 4. Корректность сборки подсветки и T-Con ### 5.2 Диагностика на Mac **Apple Diagnostics** (нативная): 1. Выключить Mac 2. Зажать питание → «Параметры» → «Диагностика» **Safe Mode** (отсечь сторонние драйверы/агенты): 1. Выключить → зажать питание → «Продолжить с безопасным режимом» 2. Если в Safe Mode стабильно час+ — сильнее аргумент в пользу софта/агентов; если снова freeze — железо/драйвер дисплея **Минимальная нагрузка после reboot:** - не открывать Cursor, Brave, Telegram сразу после загрузки - проверить, воспроизводится ли freeze на пустом рабочем столе ### 5.3 Мониторинг ```bash # последние force reset ls -lt /Library/Logs/DiagnosticReports/forceReset-full-* | head -5 # причина в заголовке отчёта head -12 /Library/Logs/DiagnosticReports/forceReset-full-*.0002.diag | \ grep -o 'panic(cpu[^\\]*' # ошибки WindowServer log stream --predicate 'process == "WindowServer"' --level error # перезагрузки last reboot | head -10 ``` После следующего зависания **не перезагружать сразу** (если возможно подождать 1–2 мин) — иногда успевает дописаться больше в `/Library/Logs/DiagnosticReports/`. На практике при hard lockup это редко помогает; основные данные уже в `forceReset-full`. --- ## 6. Краткий вывод | Вопрос | Ответ | |--------|-------| | Это kernel panic? | Нет (16.06). Это **hard lockup** → сброс кнопкой (`btn_rst`) | | Сколько зафиксировано 16.06? | **3** отчёта `forceReset`; пользователь сообщал о ~4 зависаниях | | Что зависало? | **WindowServer** — deadlock, графический стек | | Есть ли ошибки DCP/шлейфа в логах? | **Нет** в открытом unified log | | Главная рекомендация | **Перепроверка шлейфа и сборки дисплея в сервисе** | | Была ли нестабильность раньше? | Да, с 10–11.06 (`shutdown_stall`, SEP wake timeout) | --- ## 7. Ссылки на файлы отчётов ``` /Library/Logs/DiagnosticReports/forceReset-full-2026-06-16-213115.0002.diag /Library/Logs/DiagnosticReports/forceReset-full-2026-06-16-213425.0002.diag /Library/Logs/DiagnosticReports/forceReset-full-2026-06-16-214334.0002.diag /Library/Logs/DiagnosticReports/ResetCounter-2026-06-16-213129.diag /Library/Logs/DiagnosticReports/ResetCounter-2026-06-16-213438.diag /Library/Logs/DiagnosticReports/ResetCounter-2026-06-16-214346.diag /Library/Logs/DiagnosticReports/Telegram_2026-06-16-212645_Eternals.cpu_resource.diag /Library/Logs/DiagnosticReports/deleted_2026-06-16-213726_Eternals.cpu_resource.diag # более ранние (контекст) /Library/Logs/DiagnosticReports/panic-full-2026-06-14-115455.0002.panic # Wake transition / SEP /Library/Logs/DiagnosticReports/panic-full-2026-06-13-155145.0002.panic /Library/Logs/DiagnosticReports/forceReset-full-2026-06-15-194242.0002.diag ```