docs: RETRACT the #127 cause — the diagnosis was a measurement artifact; fix stands
All checks were successful
Check / eval (push) Successful in 3m30s
All checks were successful
Check / eval (push) Successful in 3m30s
The "blank + hypridle deadlock = the brick" cause published this morning is retracted everywhere it was asserted: ROADMAP, hyprland.nix's comment, #146, HARDWARE-QUEUE and two commit messages (a2151f4,321ccf7). It rested on two pieces of evidence and both were artifacts of how I measured: - "19 disconnects in 11 days": 18 of 19 are hypridle's noisy goodbye while systemd DELIBERATELY stops it — each bracketed by `Stopped hypridle` / `Started hypridle`, healthy replacement seconds later. - "Jul 14: CRITICAL at 13:08:17, then eleven hours of silence": an artifact of grepping ONE PID. systemd logged `Stopped hypridle` 13:08:17 and `Started hypridle` 13:09:00; PID 1678 ran fine all evening, invisible to the filter. Decisive: at the incident (before the 12:51:34 mitigation commit) hypridle had NO disconnect at all and had been healthy since Jul 14 13:09. It should have fired on-resume normally. The deadlock theory never had a case. The FIX stands on its own evidence and is untouched: the options really were off, hypridle's on-resume really was the only caller of `dpms on`, and input now wakes the screen with hypridle deliberately stopped (4s docked / 6s clamshell). Removing a proven single point of failure never needed a story about why the daemon might fail — which is exactly why it survived the story being wrong. #127 is RESTORED to NOW (deleted this morning as "shipped"; only the fix shipped). Its cause is open and the lead is the dead Ctrl+Alt+F3 — neither DPMS-off nor a dead hypridle can break VT switching, so something was wedged below the compositor holding DRM master. Every theory so far has been about the wake path, i.e. a symptom of the screen already being black. #146 → [watch], near-dead: one genuine zombie ever (verified by ps/ss, not grep); upstream #171 is real but its impact path closed when #147's stray linger went. Re-measure properly before building anything; close unbuilt if zero. Also closes the #127 hardware-queue entry: Bernardo ran the real 10-min idle — 19:27:58 dpms off (genuine timeout, shipped config, and it BLANKED = the revert working) -> mouse -> 19:32:14 `done enabled=1 first=DP-2`, clamshell, the incident geometry, one healthy hypridle throughout. All 4 steps pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,58 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-16 — RETRACTION: the #127 diagnosis was as wrong as the test it replaced
|
||||
- **Task:** Bernardo said "do #147 first, then #146". Both dissolved under
|
||||
investigation, and taking them apart disproved the #127 *cause* I had shipped
|
||||
hours earlier. The fix stands; the story around it did not. Sweep = retract.
|
||||
- **The retraction, and it is the whole entry.** I published "blank + hypridle
|
||||
deadlock = the brick" into ROADMAP, hyprland.nix's comment, #146 and two commit
|
||||
messages, on two pieces of evidence: "19 disconnects in 11 days" and Jul 14's
|
||||
"eleven hours of silence". **Both were artifacts of my own measurement.** 18 of
|
||||
19 disconnects are hypridle's goodbye while systemd *deliberately stops it*
|
||||
(each bracketed by `Stopped`/`Started`, healthy replacement seconds later). The
|
||||
"silence" was a grep for **one PID** — systemd logged `Started hypridle` 43s
|
||||
later and PID 1678 ran fine all evening, invisible to my filter. **Decisive:**
|
||||
at the incident hypridle had **no disconnect at all**, healthy since Jul 14
|
||||
13:09. The theory never had a case.
|
||||
- **The irony is the lesson.** I spent the morning writing up "the invalid TEST B
|
||||
measured its own scaffolding — put the mechanism inside the circuit", then did
|
||||
exactly that twice more: inferred a lid position from an output list, inferred
|
||||
"the session wiring is missing" from a grep that never covered HM's generated
|
||||
conf. Three wrong claims, all from inferring where checking was cheap; Bernardo
|
||||
caught all three. **Verify the instrument before believing the reading —
|
||||
hardest when the reading agrees with you.**
|
||||
- **#147 → not a distro bug.** The wiring exists (HM's `systemd.enable`, line 1 of
|
||||
the generated conf) and fired; systemd *refused* the `graphical-session.target`
|
||||
stop because portal-gtk had a start job queued ("destructive transaction"). It
|
||||
needs `Linger=yes` to matter — an empty marker dated **2026-01-24, pre-dating
|
||||
Bernardo's migration to Nomarchy**. Never shipped by us, ever. Removed. The item
|
||||
is rewritten to the class that IS real: `/var/lib` survives a migration, so the
|
||||
primary V3 box ran 6 months on a setting the distro never chose and cannot see.
|
||||
- **#146 → `[watch]`, near-dead.** One genuine zombie ever (verified by `ps`/`ss`,
|
||||
not grep); upstream #171 is real but its impact path closed with linger.
|
||||
- **Did:** retracted the cause in place everywhere it was asserted; **restored
|
||||
#127** (deleted this morning as "shipped" — only the fix shipped); rewrote #146
|
||||
and #147; filed #148 (a reload re-lights the panel in a shut lid — found because
|
||||
my own `hyprctl reload` did it to Bernardo, twice).
|
||||
- **Verified: V3, the fix survives all of it.** The real 10-min idle, no
|
||||
scaffolding: `19:27:58 Executing hyprctl dispatch dpms off` → blanked (the
|
||||
revert working) → mouse → `19:32:14 done enabled=1 first=DP-2` — clamshell, the
|
||||
incident geometry, from shipped config. Plus the brick condition on purpose
|
||||
(hypridle stopped): keypress woke it 4s docked / 6s clamshell. **The fix needed
|
||||
no story about why the daemon fails — which is why it survived the story being
|
||||
wrong.** V1: flake check + option-docs/clamshell-logind/docking-ux green.
|
||||
- **Next suggestion:** #127's **cause**, and start at the **dead Ctrl+Alt+F3** —
|
||||
the one symptom no theory yet has touched. DPMS-off cannot break VT switching
|
||||
and neither can a dead hypridle; a compositor wedged holding DRM master
|
||||
explains the black screen and the dead TTY together. Every theory so far has
|
||||
been about the wake path, i.e. a symptom of the screen already being black.
|
||||
|
||||
## 2026-07-16 — #127 SOLVED: the brick was never DPMS, and TEST B's first run lied
|
||||
- **⚠ SUPERSEDED — read the entry above first.** Its headline ("SOLVED") and its
|
||||
cause ("hypridle deadlock", "19× in 11 days") were **retracted the same day**:
|
||||
the evidence was a measurement artifact and hypridle had no disconnect at the
|
||||
incident. What survives: the invalid-TEST-B analysis, and the fix itself.
|
||||
- **Task:** #127 TEST B (Bernardo ran it), then the whole sweep his result forced.
|
||||
- **Read this if nothing else — the test measured nothing, and said so.** His run
|
||||
reported "input never wakes it" **docked *and* undocked alike**, and that tie is
|
||||
|
||||
Reference in New Issue
Block a user