BitPage

Технический блог

BitPage

Технический блог о разработке и DevOps

14 статей
7 направлений
51 тегов

Свежее

Место на диске съели индексы, а не данные: раздувание b-tree, которое autovacuum не лечит

Дисковый алерт на базе PostgreSQL чаще означает раздувание индексов, а не таблиц: b-tree не сливает полупустые страницы, и плотность вместо дефолтных 90% падает до 13–15%. Autovacuum тут бессилен by design — помогает только REINDEX, а VACUUM FULL при нехватке места опасен, потому что пишет вторую копию таблицы целиком.

Сервер не отвечает, но работает: беззнаковое вычитание в 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 замирает навсегда.

PHP теряет сессию после апгрейда: звёздочка в имени cookie превращается в %2A

PHP до 7.4.18 URL-кодировал имя session-cookie при отправке (звёздочка → %2A), а после фикса CVE-2020-7070 перестал декодировать имена входящих cookie. Имена перестают совпадать, сессия не находится, вход зацикливается. Окно поломки: 7.2.34, 7.3.23–7.3.33, 7.4.11–7.4.16, 8.0.1–8.0.3. Проверка — один session-id даёт 200 и 302 при разном написании имени.

Patroni игнорирует правки patroni.yml: почему bootstrap.dcs работает один раз и как вернуть Ansible-роли управление кластером

Секция bootstrap.dcs в patroni.yml применяется один раз — при инициализации кластера, дальше правки шаблона не действуют. Разбор четырёх разошедшихся слоёв конфигурации, перенос в postgresql.parameters всего, кроме полутора десятков параметров из CMDLINE_OPTIONS, и грабли: shared_buffers: 4G молча превращается в 128 МБ после рестарта.

PostgreSQL conflict with recovery: почему hot_standby_feedback со слотами опасен, а lag= в Patroni мерит не то

Реплика отдавала около двух сотен конфликтов recovery за полторы недели и три десятка раз выпадала из HAProxy. hot_standby_feedback при включённых слотах переносит проблему на мастер, рост max_standby_streaming_delay усиливает флап. Реальное отставание — единицы миллисекунд по медиане и пара секунд в худшем случае — против порога health-check в 10 МБ.

Gmail отбивает всю почту: 550-5.7.26 и три сломанные аутентификации разом

За сутки — тысячи отказов против единиц доставленных писем. Gmail с февраля 2024 требует SPF или DKIM плюс сходящийся PTR — на легаси-релее не работало ни то, ни другое, ни третье, а OpenDKIM молча не подписывал почту из-за одного слова в конфиге.

Направления

Бэкенд

1

PHP, Laravel, GraphQL, доменное моделирование, серверные архитектурные решения. Из практики зрелых монолитов и гринфилдов.

Последняя: PHP теряет сессию после апгрейда: звёздочка в имени cookie превращается в %2A

Базы данных

3

PostgreSQL, ClickHouse, MySQL. Миграции, оптимизация, разбор инцидентов, экранирование и типовые грабли.

Последняя: Место на диске съели индексы, а не данные: раздувание b-tree, которое autovacuum не лечит

Инфраструктура

1

Ansible, Terraform, Proxmox, libvirt, Docker, LXC, edge-прокси, сеть, DNS. Bare-metal без облаков.

Последняя: Как вывезти живой docker-проект с умирающего диска: стрим pg_dump, pull образов, якорный exclude

Инциденты

2

Post-mortems с полной диагностикой: гипотезы, тупики, root cause, конкретные цифры. Разбираем, как оно на самом деле ломается.

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

Безопасность

1

CrowdSec, SSH, TLS, secrets, hardening. Заменяем ритуальную защиту на настоящую.

Последняя: CrowdSec на Debian 13: пять граблей, которых нет в туториалах

AI-native

6

Claude Code, MCP, память агентов, скилы-конвенции, workflows. Разработка в паре с AI как процесс.

Последняя: Какие нейросети потянет ваш компьютер — проверяем за минуту

Мобильная разработка

0

iOS, SwiftUI, Apollo GraphQL. Client-server API, живые интеграции с бэкендом.

Теги