1.3Kпросмотров
22 февраля 2026 г.
📷 ФотоScore: 1.4K
Ямлоделие О, дивный мир, на работе я узнал об ограничении GitLab на парсинг YAML файла с пайплайном. Проскочила ошибка, уронила всё.
Unable to run pipeline
gitlab-ci.yml: The parsed YAML is too big
Документация привела к https://docs.gitlab.com/administration/instance_limits/#maximum-size-and-depth-of-cicd-configuration-yaml-files Интереса ради спуллил их репу https://gitlab.com/gitlab-org/gitlab Аригато, кстати, что git репозиторий весит всего 2.79 GiB, просто невероятное удобство😊. Затем спросил нейронку сколько памяти/ресурсов экономится при парсинге 2 или 4 мегабайтных файлов и какие причины такого ограничения. Самое интересное - max_yaml_size_bytes это не физический размер файла, а память, выделяемая на объекты при парсинге. То есть 2 MB YAML может жрать больше 2 MB RAM в зависимости от структуры. Зачем вообще лимит?
Погуглил, почитал документацию, посмотрел код.
- DoS защита
один огромный YAML может положить весь Sidekiq (классная архитектура 😀)
- OOM превенция
память пре-аллоцируется, условно 100 пайплайнов по 100 MB = изда RIP серверу
- производительность
парсинг гигантских YAML тормозит всех (чужие проекты, пайплайны)
- code smell детектор (это я/мы)
если у вас 2+ MB YAML, что-то пошло не так в архитектуре Ну штош, значит пора оптимизировать содержимое пайплайнов.😭