]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.19] syscall: restore original NOFILE rlimit in child process
authorIan Lance Taylor <iant@golang.org>
Wed, 22 Mar 2023 20:33:14 +0000 (13:33 -0700)
committerIan Lance Taylor <iant@google.com>
Fri, 14 Apr 2023 18:01:07 +0000 (18:01 +0000)
commit130a7f8e8d5d3ecb7f17a741cc18e96f134fc38a
tree51411015b9debbf6c05a5e38861bbe6fdc458d73
parentabb86e6e82ec67f7b7cecd8c6225466b25ca2814
[release-branch.go1.19] syscall: restore original NOFILE rlimit in child process

If we increased the NOFILE rlimit when starting the program,
restore the original rlimit when forking a child process.

In CL 393354 the os package was changed to raise the open file rlimit
at program start. That code is not inherently tied to the os package.
This CL moves it into the syscall package.

This is a backport of CLs 476096 and 476097 from trunk.

For #46279
Fixes #59063

Change-Id: I9be6ecc52d4f82eb226907611aec9df808e1da84
Reviewed-on: https://go-review.googlesource.com/c/go/+/478660
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
65 files changed:
src/runtime/syscall2_solaris.go
src/runtime/syscall_aix.go
src/runtime/syscall_solaris.go
src/syscall/asm_solaris_amd64.s
src/syscall/exec_bsd.go
src/syscall/exec_freebsd.go
src/syscall/exec_libc.go
src/syscall/exec_libc2.go
src/syscall/exec_linux.go
src/syscall/exec_unix.go
src/syscall/exec_unix_test.go
src/syscall/export_rlimit_test.go [new file with mode: 0644]
src/syscall/rlimit.go [moved from src/os/rlimit.go with 60% similarity]
src/syscall/rlimit_darwin.go [moved from src/os/rlimit_darwin.go with 79% similarity]
src/syscall/rlimit_stub.go [moved from src/os/rlimit_stub.go with 82% similarity]
src/syscall/rlimit_test.go [moved from src/os/rlimit_test.go with 91% similarity]
src/syscall/syscall_aix.go
src/syscall/syscall_darwin.go
src/syscall/syscall_dragonfly.go
src/syscall/syscall_freebsd.go
src/syscall/syscall_linux.go
src/syscall/syscall_linux_386.go
src/syscall/syscall_linux_amd64.go
src/syscall/syscall_linux_arm.go
src/syscall/syscall_linux_arm64.go
src/syscall/syscall_linux_loong64.go
src/syscall/syscall_linux_mips64x.go
src/syscall/syscall_linux_mipsx.go
src/syscall/syscall_linux_ppc64x.go
src/syscall/syscall_linux_riscv64.go
src/syscall/syscall_linux_s390x.go
src/syscall/syscall_netbsd.go
src/syscall/syscall_openbsd.go
src/syscall/syscall_solaris.go
src/syscall/zsyscall_aix_ppc64.go
src/syscall/zsyscall_darwin_amd64.go
src/syscall/zsyscall_darwin_arm64.go
src/syscall/zsyscall_dragonfly_amd64.go
src/syscall/zsyscall_freebsd_386.go
src/syscall/zsyscall_freebsd_amd64.go
src/syscall/zsyscall_freebsd_arm.go
src/syscall/zsyscall_freebsd_arm64.go
src/syscall/zsyscall_linux_386.go
src/syscall/zsyscall_linux_amd64.go
src/syscall/zsyscall_linux_arm.go
src/syscall/zsyscall_linux_arm64.go
src/syscall/zsyscall_linux_loong64.go
src/syscall/zsyscall_linux_mips.go
src/syscall/zsyscall_linux_mips64.go
src/syscall/zsyscall_linux_mips64le.go
src/syscall/zsyscall_linux_mipsle.go
src/syscall/zsyscall_linux_ppc64.go
src/syscall/zsyscall_linux_ppc64le.go
src/syscall/zsyscall_linux_riscv64.go
src/syscall/zsyscall_linux_s390x.go
src/syscall/zsyscall_netbsd_386.go
src/syscall/zsyscall_netbsd_amd64.go
src/syscall/zsyscall_netbsd_arm.go
src/syscall/zsyscall_netbsd_arm64.go
src/syscall/zsyscall_openbsd_386.go
src/syscall/zsyscall_openbsd_amd64.go
src/syscall/zsyscall_openbsd_arm.go
src/syscall/zsyscall_openbsd_arm64.go
src/syscall/zsyscall_openbsd_mips64.go
src/syscall/zsyscall_solaris_amd64.go