Public bug reported:

**Package:** `linux` (source) — affects `linux-image-7.0.0-42-generic 
7.0.0-42.42`
---

## Problem description

After upgrading from `linux-image-7.0.0-38-generic` to 
`linux-image-7.0.0-42-generic`
(installed 2026-10-29 12:46 EEST via unattended-upgrades), the machine started
freezing completely, several times per session, requiring a hard power-off.

The freeze is a **writeback deadlock at the kernel level**, not a slow or 
failing disk:
the block device is completely idle (`inflight = 0`, ~0.3 MiB/s written) while 
more
than 1 GB of dirty pages never reach it.

## Regression range

| Boot | Kernel | Time (EEST) | Result |
|------|--------|-------------|--------|
| 12:33–12:58 | 7.0.0-38 | before upgrade | clean, normal shutdown |
| 13:00–17:05 | 7.0.0-42 | after upgrade | `EXT4-fs error` on sdb2, writeback 
stalls, systemd-oomd kill |
| 17:20–18:53 | 7.0.0-42 | | journal ends abruptly mid-line → hard freeze |
| 18:55–20:02 | 7.0.0-42 | | 52 × "waiting for writeback completion", up to 386 
s |
| 20:17–now | 7.0.0-38 | after rollback | clean, `sync` returns in 0.068 s |

Bisected by kernel rollback only; no other component was changed when
testing -38.

## Steps to reproduce

1. Boot `7.0.0-42-generic` on this machine with Docker running (7 containers).
2. Generate moderate write load (container churn, browser start, Go builds).
3. Within minutes the system stops responding; any process that writes enters D 
state.

## Actual behaviour

- `sync` never returns:
  ```
  PID 114212  D  wb_wait_for_completion  sync      (killed by Ctrl-C after >120 
s, remained stuck)
  ```
- Dirty pages never flushed, device idle:
  ```
  Dirty:       1387248 kB
  Writeback:      2244 kB
  ```
  `/sys/block/sda/stat` sampled over 5 s:
  ```
  read 0.00 MiB/s   write 0.29 MiB/s   inflight = 0
  ```
- Kernel hung-task detector:
  ```
  INFO: The task dockerd:14019 has been waiting for writeback completion for 
more than 386 seconds.
  INFO: task dockerd:3461 <writer> blocked on an rw-semaphore likely owned by 
task dockerd:14015 <writer>
  INFO: task kworker/1:0:23825 blocked for more than 368 seconds.
  ```
- `flush-8:0` and `inode_switch_wbs` kworkers in D state.
- `/proc/pressure/io`: `some avg10 = 84.37`, `full avg10 = 72.81` while the 
disk is idle.
- All writers enter D state: `brave` in `submit_bio_wait` /
  `folio_wait_bit_common`, GNOME Shell stops repainting, `journald` reports
  `system.journal corrupted or uncleanly shut down` after each forced reboot.
- `systemd-oomd` fired once because of the dirty-page pressure
  (`Pressure: Avg10: 87.24` → killed the kitty scope).

## Expected behaviour

`sync` completes, `Dirty` returns to ~0, and the system stays
responsive.

## Evidence that the storage device is NOT the cause

- No `ata3.00: exception`, `failed command`, `Sense Key`, `Medium Error`,
  `critical medium error` or `Buffer I/O error` in any affected boot.
- SMART: `Current_Pending_Sector = 8` and `Offline_Uncorrectable = 0`, both 
unchanged
  for over a year (pre-existing, no new reallocations, `UDMA_CRC_Error_Count = 
0`,
  temperature 40 °C).
- Reads and metadata operations continue working while writes are stuck — the
  device answers, it simply is never asked to write.
- On the same disk and same filesystem, `7.0.0-38` handles the same workload 
with
  `sync` in 0.068 s and `Dirty: 0 kB`.

## Suspected area

`wb_wait_for_completion()` / cgroup writeback (`inode_switch_wbs`) does not make
progress. Possibly related to the cgroup-writeback changes tracked in LP 
#2170496
(panic in `rcu_do_batch`, suspected `cgroup_writeback_umount`), and to the 
Docker
workload in LP #2172422. The writeback workqueue appears to stop being 
scheduled:
the device queue is empty and `Writeback` stays ≈2 MB while `Dirty` grows to 
1.3 GB.

## Workaround

Pin the kernel to `7.0.0-38.38`; the regression disappears immediately.

## Attachments

- `kernel-7.0.0-42-boot-1300-1705.txt` — first -42 boot (10 writeback stalls, 3 
EXT4 errors)
- `kernel-7.0.0-42-boot-1720-1853.txt` — second -42 boot, journal ends abruptly 
(hard freeze)
- `kernel-7.0.0-42-boot-1855-2002.txt` — third -42 boot (52 writeback stalls, 
up to 386 s)
- `live-snapshot.txt` — uname, meminfo, PSI, diskstats, kernel versions, apt 
holds
- `linux-bug.apport` — `apport-cli -f -p linux` collection

## System information

```
Ubuntu 26.04.1 LTS (Resolute Raccoon)
Lenovo ThinkPad T480 (20L5)
Intel Core i7-8550U, Intel UHD Graphics 620 (i915)
GNOME 50.1 / Wayland, Mesa 26.0.8, systemd 259.5
```

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2172527

Title:
  linux 7.0.0-42: writeback deadlock — sync() never returns with >1 GB
  dirty pages and an idle disk (full system freeze)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2172527/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to