Skip to content

[CI] ParFORM issues with the Ubuntu 22.04 image #429

Closed

Description

@tueda

On GitHub Actions, the ubuntu-latest label is now starting to use ubuntu-22.04:

Unfortunately, this causes a lot of errors in testing ParFORM, mainly by the combination of Valgrind + MPI, due to (hopefully harmless) memory issues caused by dependent libraries of OpenMPI/MPICH.

We have some options to resove this problem:

  1. Explicitly fix the image version as ubuntu-20.04, instead of ubuntu-latest, and continue using MPICH.

  2. Generate a Valgrind suppression file and use it. Valgrind options in the test suite (check.rb) can be configured by --valgrind-opts and FORM_CHECK_VALGRIND_OPTS introduced in 3a2282a.

  3. Switch from Valgrind to the compiler sanitizers. MemorySanitizer may require a major effort because all dependent libraries should be built with MSan.

For now, I would adopt the 1st option, which should be valid at least for 2 years, until ubuntu-20.04 is deprecated. If the Valgrind + MPI memory issues have not been fixed by then, we have to revisit this problem.

To see the ParFORM test failures, one can try the Ubuntu 22.04 Docker image as follows:

docker run -it --rm ubuntu:22.04
# with OpenMPI
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y automake build-essential git libgmp-dev libopenmpi-dev ruby valgrind zlib1g-dev
git clone https://github.com/vermaseren/form.git
cd form
autoreconf -i
./configure --enable-parform --enable-debug
make -C sources parvorm
./check/check.rb --mpirun-opt='--allow-run-as-root --oversubscribe' valgrind ./sources/parvorm
# with MPICH
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y automake build-essential git libgmp-dev libmpich-dev ruby valgrind zlib1g-dev
git clone https://github.com/vermaseren/form.git
cd form
autoreconf -i
./configure --enable-parform --enable-debug
make -C sources parvorm
./check/check.rb valgrind ./sources/parvorm

If I use the 20.04 image, MPICH cleanly works (while OpenMPI triggers many Valgrind errors).

Activity

  1. tueda commented on Mar 11, 2025

    @tueda
    CollaboratorAuthor

    If we can't find a good workaround, one possible option would be to remove parvorm from valgrind-check and coverage jobs, like https://github.com/tueda/form/tree/ci-remove-parvorm.

    The drawback is of course that we can't use Valgrind/Coveralls for ParFORM, but CI runs faster.

  2. jodavies commented on Mar 11, 2025

    @jodavies
    Collaborator

    Since the idea is to deprecate parform anyway, removing it from the valgrind tests would not be so bad. Also maybe we should push directly to 24.04 (which also makes things easier to run tests once FLINT code is merged).

  3. tueda commented on Mar 11, 2025

    @tueda
    CollaboratorAuthor

    One thing I find unclear is whether binaries built on Ubuntu 24.04 run on older distributions, even though they are statically linked. Maybe it works, and if it is actually guaranteed to work, then pushing to 24.04 makes sense also for improved compiler optimization by GCC 13.

  4. github-actions commented on Jul 4, 2026

    @github-actions

    This issue has been marked as stale after 90 days of inactivity. It will be closed automatically in 30 days unless there is any further activity. If this issue is still relevant, please leave a comment to keep it open.

  5. added
    staleNo recent activity. This may be closed if there is no further activity.
    on Jul 4, 2026
  6. tueda commented on Jul 4, 2026

    @tueda
    CollaboratorAuthor

    Closing this as the Valgrind check for parvorm has already been removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleNo recent activity. This may be closed if there is no further activity.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions