From 29516af225f591f01c3d73384755d188d2d055e4 Mon Sep 17 00:00:00 2001 From: jakirkham Date: Mon, 24 Jun 2024 15:43:32 -0700 Subject: [PATCH] Move `ulimit` workaround into `yum` reqs func --- conda_smithy/configure_feedstock.py | 20 ++++++++++++++------ conda_smithy/templates/build_steps.sh.tmpl | 9 +-------- news/1958_yum_fix_ulimit.rst | 2 +- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/conda_smithy/configure_feedstock.py b/conda_smithy/configure_feedstock.py index 34a307faf..19de1fb96 100644 --- a/conda_smithy/configure_feedstock.py +++ b/conda_smithy/configure_feedstock.py @@ -1357,12 +1357,20 @@ def generate_yum_requirements(forge_config, forge_dir): yum_build_setup = textwrap.dedent( """\ - # Install the yum requirements defined canonically in the - # "recipe/yum_requirements.txt" file. After updating that file, - # run "conda smithy rerender" and this line will be updated - # automatically. - /usr/bin/sudo -n yum install -y {} - + ( + # Due to https://bugzilla.redhat.com/show_bug.cgi?id=1537564 old + # versions of rpm are drastically slowed down when the number of + # file descriptors is very high. This can be visible during a + # `yum install` step of a feedstock build. + # => Set a lower limit in a subshell for the `yum install`s only. + ulimit -n 1024 + + # Install the yum requirements defined canonically in the + # "recipe/yum_requirements.txt" file. After updating that file, + # run "conda smithy rerender" and this line will be updated + # automatically. + /usr/bin/sudo -n yum install -y {} + ) """.format( " ".join(requirements) diff --git a/conda_smithy/templates/build_steps.sh.tmpl b/conda_smithy/templates/build_steps.sh.tmpl index dff8d82ec..93fb76eef 100644 --- a/conda_smithy/templates/build_steps.sh.tmpl +++ b/conda_smithy/templates/build_steps.sh.tmpl @@ -62,14 +62,7 @@ setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" {% if build_setup -%} {{ build_setup }}{% endif -%} {% if yum_build_setup is defined -%} -( -# Due to https://bugzilla.redhat.com/show_bug.cgi?id=1537564 old versions of rpm -# are drastically slowed down when the number of file descriptors is very high. -# This can be visible during a `yum install` step of a feedstock build. -# => Set a lower limit in a subshell for the `yum install`s only. -ulimit -n 1024 -{{ yum_build_setup }} -){% endif -%} +{{ yum_build_setup }}{% endif -%} # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" diff --git a/news/1958_yum_fix_ulimit.rst b/news/1958_yum_fix_ulimit.rst index edb556f2e..c2d048485 100644 --- a/news/1958_yum_fix_ulimit.rst +++ b/news/1958_yum_fix_ulimit.rst @@ -7,7 +7,7 @@ * Changed the build_steps.sh template so that it sets the number of maximum file descriptors to 1024. This is done to mitigate a bug in old rpm versions (such as the one shipped with the Centos7 container) that cause the yum install step - to take tremendously longer than necessary. See https://bugzilla.redhat.com/show_bug.cgi?id=1537564 + to take tremendously longer than necessary. See https://bugzilla.redhat.com/show_bug.cgi?id=1537564 (#1960) (#1961) **Deprecated:**