Skip to content

fix: fix smart ptr and broken mpich noble package - #48

Merged
jeremy-murphy merged 3 commits into
boostorg:developfrom
Becheler:fix/pbgl-rmat-std-shared-ptr
Sep 3, 2026
Merged

fix: fix smart ptr and broken mpich noble package#48
jeremy-murphy merged 3 commits into
boostorg:developfrom
Becheler:fix/pbgl-rmat-std-shared-ptr

Conversation

@Becheler

@Becheler Becheler commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Commit 1: Smart ptr fix

scalable_rmat_iterator::gen (distributed/rmat_graph_generator.hpp) was declared boost::shared_ptr<uniform_01<...>>, but boost::generate_edge now takes std::shared_ptr<uniform_01<...>>.

The mismatch breaks the two TUs that instantiate the iterator :

  • distributed_rmat_cc_ps
  • distributed_rmat_pagerank.
  • distributed_rmat_cc uses the sequential iterator and is unaffected.

This PR changes the member to std::shared_ptr and add #include <memory>.

This matches the sequential rmat iterators in Boost.Graph, which were modernized to std::shared_ptr.

Commit 2: CI fix for Noble broken package mpich

After first commit CI was red for some jobs related to mpich. It happens that there is a known bug with a broken package on Noble distributions: https://bugs.launchpad.net/ubuntu/+source/mpich/+bug/2072338

The MPICH package in Ubuntu 24.04 is linked with libpmix, which is incompatible with the Hydra process manager. Applications linked with MPICH and launched with Hydra (mpiexec) will not be able to gather process identity information, leading each process to belong to an MPI_COMM_WORLD of size=1.

The quickest fix was to patch the CI for the noble job: (if: matrix.mpi == 'mpich'), it force-installs the 4.2.0-5.1 mpich debs from Launchpad over noble's broken package before the build as described in https://bugs.launchpad.net/ubuntu/+source/mpich/+bug/2072338/comments/14

@Becheler Becheler changed the title fix: use std smart ptr fix: use std smart ptr and broken mpich noble package Sep 1, 2026
@Becheler Becheler changed the title fix: use std smart ptr and broken mpich noble package fix: fix smart ptr and broken mpich noble package Sep 1, 2026

@jeremy-murphy jeremy-murphy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Made one request, but it's not strictly required.

Comment thread .github/workflows/ci.yml Outdated
Comment on lines +30 to +34
- name: Fix noble mpich (LP 2072338)
if: matrix.mpi == 'mpich'
run: |
wget -q https://launchpad.net/ubuntu/+source/mpich/4.2.0-5.1/+build/28285882/+files/libmpich12_4.2.0-5.1_amd64.deb https://launchpad.net/ubuntu/+source/mpich/4.2.0-5.1/+build/28285882/+files/libmpich-dev_4.2.0-5.1_amd64.deb https://launchpad.net/ubuntu/+source/mpich/4.2.0-5.1/+build/28285882/+files/mpich_4.2.0-5.1_amd64.deb
sudo dpkg -i libmpich12_4.2.0-5.1_amd64.deb libmpich-dev_4.2.0-5.1_amd64.deb mpich_4.2.0-5.1_amd64.deb

@jeremy-murphy jeremy-murphy Sep 1, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This configuration runs on ubuntu-latest but this workaround is specific to 24.04 LTS, right? So I'm just concerned that when latest magically becomes 26.04, this will fail. Ideally, I would like this workaround to be conditional on the Ubuntu version, but I'm OK with it being unconditional and we just revert it when necessary.

@Becheler Becheler Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@jeremy-murphy you're correct, it's now filtered on the OS version 😄
If you agree with the changes, I don't have merge rights with PBGL so you will have to merge yourself 😄

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks!

@jeremy-murphy
jeremy-murphy merged commit 085e193 into boostorg:develop Sep 3, 2026
7 checks passed
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.

2 participants