New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EAGAIN on fork failure is retried forever #12178
Comments
From @porridgeThis is a bug report for perl from marcin@owsiany.pl, Reproduce with: $ cat <<END > t Expected behaviour: Actual behaviour: 32315 pts/0 S 0:00 /usr/bin/perl ./t - however once the limit is reached, the youngest child enters an infinite restart_syscall(<... resuming interrupted call ...>) = 0 I had a quick look and I can see code that can cause this in the following places: pp_sys.c- while ((childpid = PerlProc_fork()) == -1) { util.c- while ((pid = PerlProc_fork()) < 0) { util.c- while ((pid = PerlProc_fork()) < 0) { Here is how bash deals with the same problem for example: $ (ulimit -u 1; LANG=C ./t) Flags: Site configuration information for perl 5.10.1: Configured by Debian Project at Fri Apr 22 18:53:20 UTC 2011. Summary of my perl5 (revision 5 version 10 subversion 1) configuration: Locally applied patches: @INC for perl 5.10.1: Environment for perl 5.10.1: |
From @chipdudeSeems to me that EAGAIN should not actually be retried at all, in this case. |
The RT System itself - Status changed from 'new' to 'open' |
From @LeontOn Sun, Jun 17, 2012 at 8:00 AM, Chip Salzenberg <rev.chip@gmail.com> wrote:
I agree that would be a more sensible approach. Let the user deal with Leon |
Migrated from rt.perl.org#113668 (status was 'open')
Searchable as RT113668$
The text was updated successfully, but these errors were encountered: