On May 12, 3:43am, [EMAIL PROTECTED] (Martin Pool) wrote: -- Subject: Re: [PATCH] rsync kills all user processes on fork failure > > + -- Expand all_pids[] dynamically as needed in do_fork(), to > + avoid any possibility of overflow. > > I can't see any situation in which that would happen. I can understand > being defensive, but this seems like overkill. > -- End of excerpt from Martin Pool
I don't think it can happen currently; I was concerned about the scenario in which rsync evolves to spawn more subprocesses, and eventually (when there are more than 10), the failure mechanism will be (very) non-obvious. Certainly this is unlikely (the array is generously sized), but the complexity cost to completely prevent the problem is tiny: about a half dozen lines of code, so I think it is worth considering. Clearly there is no performance cost, compared to fork(). If you think Realloc is overkill, I'd at least add a check to detect overflow and panic rather than just stomping past the end of the array. The magical constant "10" is hidden pretty deeply in the low-level code. But Realloc is not that much harder, and then there is no limit whatsoever. Thanks for taking the kill(-1, SIGUSR2) fix: that is by far the most important part. Bob Byrnes e-mail: [EMAIL PROTECTED] Curl Corporation phone: 617-761-1200 400 Technology Square, 8th Floor fax: 617-761-1201 Cambridge, MA 02139 -- To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html