BitPage

Диск освободили, а ClickHouse продолжает его забивать: сломанный логгер и json-лог Docker без ротации

После No space left on device ClickHouse до 26.7 не восстанавливает файловый логгер: Poco бросает исключение из проверки ротации, минуя обработчик ENOSPC, и каждое сообщение уходит в stderr с полной трассой стека — на стенде 1 443 463 байта за 20 секунд. Докидывает Docker: драйвер json-file пишет stderr на тот же диск, его max-size по умолчанию -1, то есть без ограничения. Лечится без рестарта базы сигналом SIGHUP.

Сервер не отвечает, но работает: беззнаковое вычитание в ZFS и systemd CrashAction=freeze

Массовые segfault'ы в несвязанных процессах и сервер, который не отвечает ни по одному порту, — это не битая память, а переполнение в zfs_fillpage(): при гонке mmap-чтения с усечением файла io_len = i_size - io_off уходит в минус, и dmu_read() забивает нулями чужую физическую память. Починено в OpenZFS 2.4.4 и 2.3.9 от 21 августа 2026, в 2.2.11 фикса нет. Отказ растягивает systemd: CrashAction по умолчанию freeze, PID 1 замирает навсегда.