[NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
Dmitry Shurupov
Сообщения: 336
Статус: Open Source geek
ОС: Ubuntu Linux

[NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Dmitry Shurupov »

В скрипте инициализации кэширующего прокси-сервера Squid, имеющемся в составе тестового релиза Red Hat Enterprise Linux (RHEL) 6.7, обнаружен баг, приводящий к выполнению знаменитой команды «rm -rf /*» (и, соответственно, удалению всех файлов в системе) при перезапуске squid. Судя по всему, проблема возникает из-за наличия в скрипте инициализации squid.init команды «rm -rf $SQUID_PIDFILE_DIR/*», используемой в блоках stop и restart (причем в блоке restart удаление выполняется сразу после выполнения команд из блока stop). Если путь, указанный в переменной SQUID_PIDFILE_DIR, не определен, то запускается процесс очистки всей файловой системы. Более подробная информация о причинах подобного поведения скрипта пока не обнародована. Проблема существует только в тестовой ветке RHEL 6.7 с пакетом squid-3.1.23-4.el6, и воспроизводится на виртуальной машине последовательностью команд «service squid start» + «service squid restart». В версии squid 3.1.23-5.el6 она уже отмечена как решенная. Следует также отметить, что аналогичная проблема (выполнение команды «rm -rf /*», если переменная пути, используемая в качестве аргумента, не заполнена) недавно была найдена в Steam под Linux.


оригинал на www.nixp.ru
По-моему, это еще один повод перейти на Убунту.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Stauffenberg »

Было бы интересно узнать поподробней об авторе кода.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21545
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Bizdelnick »

Судя по тому, что в Федоре такого ужаса не наблюдается, автор — из штата RH.
Меня, впрочем, больше интересует, зачем в принципе могло понабиться удалять pid-файлы пачками, и откуда они в таком количестве могли взяться.
P. S. С нетерпением ждём, кто же первым расскажет, что во всём виноват sysvinit upstart, и что с systemd такого бы не было.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Vascom »

Bizdelnick, вот ты первый и сказал. И оказался прав.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21545
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Bizdelnick »

Ничего подобного. Это высказывание неверно как минимум по двум причинам.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Kopilov
Сообщения: 958
ОС: [K]Ubuntu, Debian

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Kopilov »

Bizdelnick писал(а):
24.03.2015 17:01
Это высказывание неверно как минимум по двум причинам.

Первая -- видимо, потому, что в RHEL нет Upstart. А вторая?
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Vascom »

А вот и нет. В RHEL 6 как раз-таки upstart :)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21545
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Bizdelnick »

Первая заключается в том, что в systemd тоже хватает мест, откуда можно запустить волшебную команду, ExecStartPre например. И не надо говорить, что её туда не станут вставлять, потому что незачем: в инит-скриптах она тоже не нужна, а вот поди ж ты. Вторая — система инициализации, будь то sysvinit, upstart или systemd, в принципе не может быть виновата в глупой (или, тем более, злонамеренной) ошибке майнтейнера. Виноват только он сам.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение yoshakar »

Пределагаю подумать-таки (подумать в индивидуальном порядке, а не обсуждать - обсуждать смысла не вижу - уже обсуждали) над следующим тезисом: виноват язык shell.
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1147
Статус: Slacker!
ОС: Slackware64-current

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение yars »

Я согласен с Bizdelnick. Всему виной человеческий фактор, и никакой супер-пупер-мега-systemd его исключить не в состоянии. Просто, как и любой другой язык, неважно, скриптовый он, или "настоящий" язык программирования, требует внимательного изучения и применения, самоконтроля. И никакой systemd это не изменит.
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21545
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Bizdelnick »

yoshakar писал(а):
25.03.2015 01:46
Пределагаю подумать-таки (подумать в индивидуальном порядке, а не обсуждать - обсуждать смысла не вижу - уже обсуждали) над следующим тезисом: виноват язык shell.

Ну тогда уж виноват любой язык, позволяющий удалять файлы. Включая C и «язык» сервисов systemd.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Vascom »

Да ни кто не спорит, что виноват маинтейнер.
Вы сами не можете отстать от системд почему-то.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Hephaestus »

Dmitry Shurupov писал(а):
24.03.2015 12:41
В скрипте инициализации кэширующего прокси-сервера Squid, имеющемся в составе тестового релиза Red Hat Enterprise Linux (RHEL) 6.7, обнаружен баг, приводящий к выполнению знаменитой команды «rm -rf /*» (и, соответственно, удалению всех файлов в системе) при перезапуске squid.

Dmitry Shurupov писал(а):
24.03.2015 12:41
Следует также отметить, что аналогичная проблема (выполнение команды «rm -rf /*», если переменная пути, используемая в качестве аргумента, не заполнена) недавно была найдена в Steam под Linux.

Я сталкивался с подобным, используя LiveCD Dr.Web. Я где-то здесь уже писал об этом.
Но там было сложнее, удалялись не все файлы, а с определенного раздела. С какого именно - сказать сложно, заметил только что как-то связано было со свободным местом. Представители Dr.Web говорили, что очень трудноуловимая бага, случается нечасто, поэтому долго не могли исправить. Но меня неприятно удивил тот факт, что в течение нескольких месяцев неоднократно поступали жалобы от пострадавших, и всё это время образ с багом как ни в чём не бывало продолжал висеть на странице загрузок и даже предупреждения никакого не вывесили.
Данный LIveCD, кстати, построен на базе Gentoo.
Поэтому дело тут не в дистре и не в системе инициализации, а в чьих-то кривых руках, халатности и разгильдяйстве.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение yoshakar »

Vascom писал(а):
25.03.2015 10:37
Да ни кто не спорит, что виноват маинтейнер.
Я спорю. Чтобы такое написать на том же C надо быть кретином. А чтобы такое написать на шелле - нет, на шелле это обычное явление.
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение MrClon »

yoshakar писал(а):
26.03.2015 10:41
Я спорю. Чтобы такое написать на том же C надо быть кретином. А чтобы такое написать на шелле - нет, на шелле это обычное явление.

Инит скрипты на сях это сурово. Но справедливости ради надо отметить что Си в процитированном утверждении можно заменить на более-менее любой распространённый ЯП.
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Vascom »

yoshakar писал(а):
26.03.2015 10:41
Vascom писал(а):
25.03.2015 10:37
Да ни кто не спорит, что виноват маинтейнер.
Я спорю. Чтобы такое написать на том же C надо быть кретином. А чтобы такое написать на шелле - нет, на шелле это обычное явление.

Кретином надо быть чтобы писать эти скрипты на Си :)
Спасибо сказали:
yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение yoshakar »

MrClon писал(а):
26.03.2015 12:01
Инит скрипты на сях это сурово. Но справедливости ради надо отметить что Си в процитированном утверждении можно заменить на более-менее любой распространённый ЯП.
Согласен и с первых и со вторым.

Vascom писал(а):
26.03.2015 12:04
Кретином надо быть чтобы писать эти скрипты на Си :)
Ну, может и не совсем кретином, но в общем я согласен с этим.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21545
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Bizdelnick »

yoshakar писал(а):
26.03.2015 10:41
чтобы такое написать на шелле - нет, на шелле это обычное явление.

Это обычное явление при программировании методом копипастинга независимо от языка. В шелле чаще встречаются одни ошибки, в других языках — другие, но последствия всегда плачевные.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Yaros »

yoshakar писал(а):
26.03.2015 10:41
...на шелле это обычное явление.
Странно. У меня наверное версия шелла отличается от той, в которой это "обычно"?
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение yoshakar »

Yaros писал(а):
26.03.2015 14:11
Странно. У меня наверное версия шелла отличается от той, в которой это "обычно"
Скорее вы используете нетрадиционные способы программирования на этом языке. Какие - не знаю. Я знаю один способ предотвратить указанную проблему: завести в программе функцию "удалить каталог рекурсивно", и в начале этой функции вписать проверку на коректность переданного каталога - существование и непустоту. Но для шелла подобный код чужероден и неорганичен.
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid

Сообщение Yaros »

yoshakar писал(а):
26.03.2015 21:35
Yaros писал(а):
26.03.2015 14:11
Странно. У меня наверное версия шелла отличается от той, в которой это "обычно"
Скорее вы используете нетрадиционные способы программирования на этом языке. Какие - не знаю. Я знаю один способ предотвратить указанную проблему: завести в программе функцию "удалить каталог рекурсивно", и в начале этой функции вписать проверку на коректность переданного каталога - существование и непустоту. Но для шелла подобный код чужероден и неорганичен.

Скорее, у Вас неправильный подход к шеллу.
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали: