Use ulimit to check the open files soft limit #66
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is changing: Use the value returned from
ulimit -n
as the open files soft limit instead of the value returned from the syscallgetrlimit
.Why this change is being made: Since Go 1.19, during initialization, Go programs unconditionally set a high open files soft limit for themselves without modifying the system-wide defaults. This soft limit also does not apply to subprocesses run via the
exec
package. Becausewkhtmltopdf
is run as a subprocess, the soft limit set by the Go program during initialization does not give us any information about the limits that will be applied towkhtmltopdf
. Two approaches would be tosetrlimit
on every run so that the soft limit will apply to subprocesses, orulimit
to check the soft limit that will be applied towkhtmltopdf
.I chose to implement approach 2. to reduce the number of syscalls.
More details:
Related issue(s): Fixes #63
Follow-up changes needed: None
Is the change completely covered by unit tests? If not, why not?: Yes