Skip to content
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

ign-physics CI/debbuilds use large-memory label #526

Merged
merged 2 commits into from
Nov 11, 2021

Conversation

scpeters
Copy link
Contributor

@scpeters scpeters commented Oct 1, 2021

CI failed in gazebosim/gz-physics#294 on a non-large-memory machine, and several debbuilds failed as well. Let's require large-memory for all ign-physics CI and debbuild jobs.

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
@@ -617,6 +617,8 @@ def go(argv):
# Need to use JENKINS_NODE_TAG parameter for large memory nodes
# since it runs qemu emulation
linux_platform_params['JENKINS_NODE_TAG'] = 'linux-' + a + '|| large-memory'
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as I look more closely at the results of the arm* debbuilds on native arm machines, I see that many of them failed. It may be safest to require large-memory for all ign-physics debbuilds, rather than || large-memory

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

arm native nodes were not able to compile the physics due to the lack of more memory. Is this the case, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hm...

but I had big troubles with bionic arm* builds on arm native nodes, though perhaps this is not memory-related:

@scpeters
Copy link
Contributor Author

scpeters commented Oct 1, 2021

and then the bionic amd64 build just failed on drogon:

@scpeters
Copy link
Contributor Author

scpeters commented Oct 1, 2021

and then the bionic amd64 build just failed on drogon:

trying again with huge-memory

@scpeters
Copy link
Contributor Author

scpeters commented Oct 1, 2021

as an alternative, we could try to limit the number of parallel make jobs in the debian metadata

@j-rivero
Copy link
Contributor

j-rivero commented Oct 6, 2021

as an alternative, we could try to limit the number of parallel make jobs in the debian metadata

We probably need to run builds with current compiling threads on huge-memory under qemu emulation vs restrict compilation threads on native arm workers.

@j-rivero
Copy link
Contributor

j-rivero commented Oct 7, 2021

We probably need to run builds with current compiling threads on huge-memory under qemu emulation vs restrict compilation threads on native arm workers.

I found the problem during building Buster arm on linux-arm nodes. Reducing the threads from 3 to 2 solved the problem for arm64:

Before: Build Status
After: Build Status - took 13 min.

This build https://build.osrfoundation.org/job/ign-physics5-debbuilder/416/ for armhf with 3 compilation threads took 11 min.

With this:

@scpeters
Copy link
Contributor Author

scpeters commented Oct 7, 2021

We probably need to run builds with current compiling threads on huge-memory under qemu emulation vs restrict compilation threads on native arm workers.

I found the problem during building Buster arm on linux-arm nodes. Reducing the threads from 3 to 2 solved the problem for arm64:

Before: Build Status After: Build Status - took 13 min.

This build https://build.osrfoundation.org/job/ign-physics5-debbuilder/416/ for armhf with 3 compilation threads took 11 min.

With this:

feel free to make any changes to this PR that you see fit

@j-rivero
Copy link
Contributor

j-rivero commented Oct 7, 2021

feel free to make any changes to this PR that you see fit

Here we go d95ce6c. Tested locally the generation:

XML

  138             </scriptSource>
  139         </hudson.plugins.groovy.SystemGroovy>
  140         <hudson.tasks.Shell>
  141             <command>             #!/bin/bash -xe
  142 
  143              export INVALIDATE_DOCKER_CACHE=true
  144 if [[ $(uname -m) == "aarch64" ]]; then export MAKE_JOBS=2; fi
  145 
  146              /bin/bash -x ./scripts/jenkins-scripts/docker/multidistribution-ignition-debbuild.bash
  147 </command>

Injected manually in debbuilder:

[ign-physics5-debbuilder] $ /bin/bash -xe /tmp/jenkins6849195079577325454.sh
+ export INVALIDATE_DOCKER_CACHE=true
+ INVALIDATE_DOCKER_CACHE=true
++ uname -m
+ [[ aarch64 == \a\a\r\c\h\6\4 ]]
+ export MAKE_JOBS=2
+ MAKE_JOBS=2
+ /bin/bash -x ./scripts/jenkins-scripts/docker/multidistribution-ignition-debbuild.bash
...
# BEGIN SECTION: create deb packages
+ debuild --no-tgz-check -uc -us --source-option=--include-binaries -j2
 dpkg-buildpackage -us -uc -ui --source-option=--include-binaries -j2
dpkg-buildpackage: info: source package ignition-physics5
dpkg-buildpackage: info: source version 5.0.0-3~buster
dpkg-buildpackage: info: source distribution buster
...

@chapulina chapulina merged commit 116747b into master Nov 11, 2021
@chapulina chapulina deleted the scpeters/ci-physics-large-memory branch November 11, 2021 18:44
@azeey
Copy link
Contributor

azeey commented Nov 11, 2021

I ran a build of ign-physics4 locally with make -j4 as was done in https://build.osrfoundation.org/job/ign-physics4-debbuilder/340/ and here's the memory profile. At one point it reached 12GB.
image

It might be better to just set the number of parallel jobs to 2 or even 1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants