Ответ на пост «Утром, вместо автобуса и электрички»1
UPD: профиль этой дамочки в тиктоке - https://www.tiktok.com/@danceandjokes
за информацию спасибо @haffkine - #comment_402827584
UPD: профиль этой дамочки в тиктоке - https://www.tiktok.com/@danceandjokes
за информацию спасибо @haffkine - #comment_402827584
Еще одна поучительная история из жизни с Linux, специально чтобы вы потеряли сон и покой, узнав что такое вообще возможно.
Эмм с чего бы такого начать, чтобы не испугать раньше времени и не заставить устанавливать *BSD.
Есть на свете одна компания, которой мы помогаем с ИТ и есть у нее несколько виртуальных серверов на Ubuntu Linux, используемых для
половых утехразработки и тестирования.
Ubuntu там использовалась нормальной (для сервера) LTS‑версии, но в какой‑то момент — в погоне за патчами безопасности ее обновили до текущей.
Не совсем «текущей-текущей», которую используют разработчики Ubuntu для обкатки новых версий дистрибутива, а просто без долгой поддержки — примерно то, что ставят себе обычные пользователи Ubuntu Linux на домашние компьютеры.
Все происходило летом 2025 года, поэтому речь про версию 25.04 Ubuntu Linux, которая использует ядро 6.14 (запомните этот важный момент):
Однажды сисадмин компании-заказчика заметил слишком частую и сильную нагрузку на CPU, создаваемую процессом snapd, который является частью пакетного менеджера Snap.
Эта проблема с перегрузкой CPU для snapd мягко говоря не нова — «проклятый snapd» гадил линуксоидам с момента своего появления на свет и вообще видимо был не придуман а ниспослан свыше, в качестве кары за грехи.
Но в этот раз 100% загрузка CPU происходила.. строго по расписанию:
Разумеется первым делом были опробованы стандартные методы решения, вроде снижения частоты проверок обновлений или полного отключения проклятого сервиса:
Отдельно порадовал ответ ИИ:
Дословно «снести и использовать что-то другое» — первый разумный совет от машины за всю историю развития искусственного интеллекта.
Дальнейшие изыскания привели в багтрекер snapd к упомянутому багу, где уже третий комментарий от разработчика snapd, с приложенной трассировкой вызовов показал что проблема именно в ядре:
Тут стоит добавить, что почти сразу встал вопрос проверки бага на локальной машине, поскольку на момент изучения ситуации локально все успело неоднократно обновиться, а отлаживать ядро Linux на сервере заказчика все же не очень хорошая затея.
Чуть ниже по переписке видно, что баг особо ярко проявляется на ноутбуке, работающем от батареи:
Так что решено было пробовать отловить именно в таких условиях.
На счастье, на машине осталась сборка 6.14 версии ядра с патчами от Xanmod, которая использовалась для статьи про l9ec.
В последние годы в проекте ядра Linux выпускается сильно много промежуточных релизов, поэтому на какой именно версии внутри 6.14 ветки что-то пошло не так еще пришлось выяснять:
Наконец источник проблем был найден:
Чуть ниже по переписке обнаружился и тестовый код на C, демонстрирующий проблему, вот такой:
#include <sys/epoll.h>
#include <sys/time.h>
#include <sys/wait.h>
int main() {
int e = epoll_create1(0);
struct epoll_event event = {.events = EPOLLIN};
epoll_ctl(e, EPOLL_CTL_ADD, 0, &event);
const struct timespec timeout = {.tv_nsec = 1};
epoll_pwait2(e, &event, 1, &timeout, 0);
}
А так это выглядит в действии:
Обратите внимание на загрузку CPU и блокировку выхода из приложения
Как видите, в очередной раз проблема прикладного сервиса уперлась в ядро операционной системы.
Патч целиком находится тут, место исправления выглядит как-то так:
Да, как видите ситуацию радикально исправляет буквально пара символов логической конструкции, главное знать где исправлять.
Формально проблема была решена еще летом этого года, патч попал в mainline и пакет с обновлением ядра от команды Ubuntu:
На осень 2025 года даже стабильная версия ядра Linux уже имеет версию 6.16 — т. е. паровоз разработки уехал очень далеко вперед от описываемых проблем:
Так что на момент написания данной статьи вы (по идее) не должны столкнуться с данной проблемой, а если и столкнетесь — все легко решается банальным обновлением версии ядра из пакетов дистрибутива.
При подозрении на описанный баг — попробуйте собрать тестовое приложение (см. выше) и запустить в своем окружении.
Если начнется 100% загрузка CPU запущенным процессом — проблема точно есть, поскольку в ядрах с патчем поведение тестового приложения отличается:
В исправленном ядре тестовое приложение немедленно завершится.
Что касается заказчика, поскольку решение а затем и патч были опубликованы довольно оперативно — раньше чем нам сообщили о проблеме, на время разборок с согласованиями и попаданием в mainline ядра, мы банальным образом перенесли патч вручную в ту версию ядра, которая использовалась на сервере.
Позже обновили уже штатными средствами дистрибутива до текущей актуальной версии.
Если вы не являетесь разработчиком ядра и не пишете патчи каждый день, засыпая в обнимку с отладчиком — т. е. далеки от реалий системного программирования, то из этой статьи сможете вынести несколько интересных выводов и внезапных открытий:
1. Linux — могила, *BSD - сила
Шучу, разумеется неподготовленным пользователям в BSD-системы лучше не лезть совсем, но задуматься (или хотя-бы просто знать) о реалиях функционирования Linux все же стоит. Чтобы факт выноса мозга ядру из прикладного ПО не стал для вас неприятным сюрпризом.
2. Граница между прикладкой и системной разработкой весьма абстрактна
Проще говоря — ее нет совсем и в любой произвольный момент времени у вас есть неиллюзорный шанс наткнуться на баг ядра, даже программируя на JavaScript в браузере.
3. Любой уважающий себя сисадмин и DevOps должны знать С
Пусть на самом примитивном уровне, но хотя-бы собрать и запустить тестовое приложение, демонстрирующее проблему надо уметь. К сожалению все глубокие изыскания по теме «где оно тормозит» или «почему оно упало» рано или поздно приводят к коду на С и отладчику ядра.
И поверьте моему печальному опыту:
изучать эти штуки лучше днем и в спокойной обстановке, а не в режиме аврала и поздно ночью
на работе в выходной день.
4. Считайте деньги, хотя-бы иногда
Описанная в статье проблема случилась в локализованном окружении (на собственных физических серверах компании), но точно такая же Ubuntu используется и облачными провайдерами вроде Amazon, где есть тарификация за использование ресурсов, в первую очередь CPU.
Как нетрудно догадаться, 100% загрузка процессора с интервалом в пять минут в облаке, если ее вовремя не заметить и не исправить — больно отразится на счете, который вам потом выставят.
Так что проверяйте загруженность, пиковых 100% в современных системах быть не должно, если только вы целенаправленно не занимаетесь вычислительными задачами.
Статья была опубликована на Хабре, более вольный оригинал как обычно в нашем блоге, копия статьи — в Яндекс Дзене.
Пост ради справедливости.
SNAP - это вот это.
Кассеты до дыр заслушивал... и сейчас многое в постоянном плей-листе у меня.
Суд присяжных в Калифорнии признал Meta и YouTube виновными по всем пунктам обвинения в знаковом деле, которое обвиняло технологических гигантов в намеренном формировании зависимости у молодой женщины и нанесении вреда ее психическому здоровью.
Присяжные установили, что Meta и YouTube проявили халатность при разработке своих платформ, знали, что их дизайн опасен, не предупредили о таких рисках и причинили существенный вред истице.
Это решение может создать прецедент для сотен аналогичных дел и привести к серьезным изменениям в работе платформ социальных сетей, особенно для молодых пользователей, а также к многомиллионным или даже многомиллиардным потерям для технологических компаний.
Это дело также знаменует собой поворотный момент для социальных сетей на фоне многолетних опасений родителей, правозащитников и законодателей по поводу вреда, причиняемого детям в интернете, — от проблем с психическим здоровьем до сексуальной эксплуатации.
Ныне 20-летняя жительница Калифорнии по имени Кейли и ее мать подали иск против Meta, YouTube (принадлежит Google), Snap и TikTok, обвинив их в том, что они намеренно вызвали у нее зависимость в детстве, что привело к развитию тревожности, дисморфофобии и суицидальных мыслей. Snap и TikTok урегулировали претензии до начала судебного разбирательства.
Присяжные совещались более восьми дней после семинедельного судебного разбирательства в Верховном суде Лос-Анджелеса. Они обязали компании выплатить в общей сложности 3 миллиона долларов в качестве компенсационного возмещения.
Как сообщил представитель Google, присяжные также рекомендовали выплатить YouTube дополнительные 900 000 долларов штрафных санкций, а представитель Meta сообщил, что с Meta — 2,1 миллиона долларов штрафных санкций.
Присяжные установили, что Meta несет 70% ответственности за причиненный Кейли вред, а YouTube — 30%.
Кейли присутствовала в зале суда, когда оглашали решение, вместе с ней были родители других подростков, которым, по их словам, был причинен вред социальными сетями.
Meta и YouTube заявили, что планируют обжаловать вердикт.
«Мы с уважением не согласны с вердиктом и будем его обжаловать», — заявил представитель Meta. «Психическое здоровье подростков — это чрезвычайно сложная проблема, которую нельзя сводить к одному приложению. Мы продолжим решительно защищать свою позицию, поскольку каждое дело уникально, и мы по-прежнему уверены в своей работе по защите подростков в интернете».
Хосе Кастаньеда, представитель Google, заявил в своем заявлении, что это дело «неверно трактует YouTube, который является ответственно созданной потоковой платформой, а не сайтом социальной сети».
Meta и YouTube отрицали утверждения, содержащиеся в иске, и оспаривали саму идею о том, что их платформы могут вызывать зависимость. Они указывали на функции безопасности, внедренные ими в последние годы, такие как инструменты родительского контроля и ограничения контента и конфиденциальности для подростков, которые, по их утверждению, защищают несовершеннолетних.
Дело Кейли было первым из более чем 1500 подобных исков против компаний социальных сетей, дошедших до суда. Исход этого дела не станет определяющим, но может помочь в разрешении остальных. Серия проигрышей может повлечь за собой ответственность технологических гигантов на сумму в миллиарды долларов и вынудить их изменить свои платформы.
Позже в этом году компании также предстанут перед судом по первым из сотен дополнительных исков, поданных школьными округами и генеральными прокурорами штатов со всей страны в рамках юридического наступления, которое некоторые сравнивают с моментом «Большого табака» для Big Tech.
Решение, вынесенное в среду, было принято через день после того, как суд присяжных в Нью-Мексико признал Meta виновной в нарушении законов штата о защите прав потребителей и неспособности защитить детей от сексуальных хищников.
Это решение — важный шаг к обеспечению ответственности для семей и правозащитников, которые годами призывали к усилению мер защиты в социальных сетях. Родители, чьи дети, по их словам, пострадали или погибли из-за социальных сетей, приехали со всех концов Соединенных Штатов, чтобы присутствовать на суде в Лос-Анджелесе. Многие из этих родителей надеются, что это решение побудит Конгресс принять более комплексное законодательство в области безопасности в интернете.
«Технологические гиганты никогда бы не предстали перед судом, если бы они поставили безопасность детей выше вовлеченности», — говорится в заявлении Джеймса Стейера, основателя и генерального директора организации Common Sense Media, следящей за безопасностью в интернете, после решения суда в Лос-Анджелесе. «Вместо этого они скрыли результаты собственных исследований о вреде, причиняемом детям, и использовали детей и общество как подопытных кроликов в массовых, неконтролируемых и чрезвычайно прибыльных экспериментах. Теперь руководители несут ответственность».
Кейли — в суде ее называли только по имени, поскольку ее претензии связаны с инцидентами, произошедшими, когда она была несовершеннолетней, — рассказала в суде, как ее зависимость продолжает нарушать ее взрослую жизнь, заставляя ее тайком отпрашиваться с работы, чтобы листать ленту, и часами пытаться манипулировать своей внешностью с помощью фильтров в приложениях.
Meta утверждала, что причиной проблем с психическим здоровьем Кейли было ее трудное детство, а не социальные сети. Но адвокат Кейли Марк Ланье возразил, что эти проблемы лишь повышали ответственность компаний за защиту детей.
YouTube заявлял, что записи аккаунта Кейли показывают, что она использовала платформу всего понемногу каждый день, что, по их словам, противоречило ее заявлениям о зависимости. Но Ланье возразил, что, как и многие дети, Кейли часто пользовалась платформой, не входя в свой аккаунт.
В ходе судебного разбирательства были заслушаны показания высокопоставленных руководителей компаний, включая генерального директора Meta Марка Цукерберга, главу Instagram Адама Моссери и вице-президента YouTube по инжинирингу Кристоса Гудроу. Моссери показал, что считает использование социальных сетей может быть «проблемным», но не «клинически вызывающим зависимость»; Гудроу показал, что его собственные дети проводят в YouTube несколько часов каждый день, и он считает, что это «полезно» для них.
Внутренние документы, представленные в суде, пролили свет на усилия компаний по привлечению молодых пользователей, а также на то, что им было известно о потенциальных рисках их платформ. Например, документы Meta показали, как компания приняла решение разрешить «фильтры красоты», изменяющие внешность пользователя, несмотря на то, что сотрудники и 18 экспертов выражали обеспокоенность по поводу их потенциального вреда.
Автор - Клэр Даффи
Перевод с английского языка.