• Mad_Punda@feddit.org
      link
      fedilink
      arrow-up
      24
      ·
      edit-2
      1 day ago

      Might very well be an endless loop because tail recursion can be optimized to reuse the stack frame. Depends on a lot of things of course.

      • orhtej2@eviltoast.orgOP
        link
        fedilink
        English
        arrow-up
        21
        ·
        1 day ago

        Forkbomb kills the entire system so not really.

        With the stack overflow the runtime will gracefully terminate the program.

      • calcopiritus@lemmy.world
        link
        fedilink
        arrow-up
        12
        ·
        edit-2
        1 day ago

        No.

        A stack overflow is a symptom, not the illness. A fork bomb is an illness.

        Software coming from the mathematical point of view, assummes it has infinite resources. However, a real computer has many resources that are finite.

        CPU time is finite. Memory amount is finite. There is a finite number of network ports. And so on.

        A stack overflow just means: “you have run out of this resource called ‘the stack’”. The stack is a region of the memory. Each thread of each process has 1 stack, and it is not infinite in size. This program will cause a stack overflow because it is infinitely recursive, and each function call will consume a bit of the stack.

        A forkbomb is not the end of a finite resource. A fork bomb is a program that uses “forking” to rapidly consume system resources. A fork bomb might cause a stack overflow. Or an out of memory issue. Slow the computer a lot. Or if the OS has a hard limit for process amount, it might reach that limit.

        • davidgro@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          18 hours ago

          A program such as the one in this post is a loop designed (intentionally or not) to run out of stack regardless of how much there is. I’d call that an illness rather than a symptom.