Re: forkbombing Linux distributions

Natanael Copa
2005-03-23T20:19:21Z

On Thu, 2005-03-24 at 03:44 +0900, aq wrote:
> On Wed, 23 Mar 2005 10:05:43 -0800, Paul Jackson <pj@engr.sgi.com> wrote:
> > > int main() { while(1) { fork(); fork(); exit(); } }
> > > ...
> > > the above forkbomb will stop quickly
> >
> > Yep.
> >
> > Try this forkbomb:
> >
> > int main() { while(1) { if (!fork()) continue; if (!fork()) continue; exit(); } }
> >
>
> yep, that is better. but system can still be recovered by killall.
>
> a little "sleep" will render the system completely useless, like this:
>
> int main() { while(1) { if (!fork()) continue; if (!fork()) continue;
> sleep(5); exit(0); } }

Interesting.

With the patch I suggested earlier, reducing default max_threads to the
half in kernel/fork.c, my system survived. (without
touching /etc/security/limits.conf) Mail notification died because it
couldn't start any new threads but that was the only thing that
happened.

--
Natanael Copa