The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"В скрипте инициализации RHEL допущена ошибка, приводящая к у..."
Отправлено opennews, 24-Мрт-15 10:46 
В поставляемом в составе тестового выпуска Red Hat Enterprise Linux 6.7 скрипте инициализации прокси сервера Squid выявлена (https://bugzilla.redhat.com/show_bug.cgi?id=1202858) проблема, которая приводит к удалению всех файлов в системе при перезапуске  squid. По своей сути ошибка напоминает недавний инцидент (http://www.opennet.ru/opennews/art.shtml?num=41469) с удалением всех файлов пользователя в клиенте Steam и также приводит к выполнению команды "rm -rf /*" в случае незаполнения формирующей путь переменной.

Pavel Šimerda, мэйнтейнер пакета squid из компании Red Hat, смог повторить эксперимент в виртуальной машине с тестовой веткой RHEL 6.7 и  установленным пакетом squid-3.1.23-4.el6. Достаточно запустить squid командой "service squid start", после чего инициировать его перезапуск командой "service squid restart", в результате чего начнётся удаления всех файлов на диске.
В пакете squid-3.1.23-5.el6 проблема отмечена как решённая и связанная с регрессивным изменением кода.


Судя по всему, проблема вызвана патчем на основе предложенного (https://bugzilla.redhat.com/show_bug.cgi?id=1102343) ранее кода для контроля за полным завершением ранее работающего экземпляра squid в процессе перезапуска. В предоставляемом разработчиками Squid скрипте инициализации squid.init (https://github.com/mozilla-services/squid-rpm/blob/master/SO...) операция "rm -rf $SQUID_PIDFILE_DIR/*" используется дважды - в  блоках stop и restart, при этом в restart удаление выполняется сразу после выполнения блока stop:


<font color="#461b7e">
   stop
   rm -rf $SQUID_PIDFILE_DIR/*
   start
</font>

Т.е. при запуске "service squid restart" команда "rm -rf $SQUID_PIDFILE_DIR/*" запускается два раза. Переменная SQUID_PIDFILE_DIR определяется статически вначале файла и, кроме вышеотмеченных команд rm, в дальнейшем используется только в проверках. Подобная чистка содержимого директории $SQUID_PIDFILE_DIR убрана из скрипта инициализации RHEL из-за потенциальных проблем. Патч для решения  проблемы (https://bugzilla.redhat.com/show_bug.cgi?id=1102343) с дублированием был подготовлен на основе оригинального скрипта инициализации squid и содержал типовую строку для чистки ("rm -rf $SQUID_PIDFILE_DIR/*"). С учётом отсутствия переменной SQUID_PIDFILE_DIR в варианте скрипта из состава RHEL 6, подобная чистка приводила выполнению команды "rm -rf /*".


URL: https://news.ycombinator.com/item?id=9254876
Новость: http://www.opennet.ru/opennews/art.shtml?num=41897

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру