-
Bug
-
Resolution: Won't Do
-
Undefined
-
None
-
rhel-8.4.0
-
None
-
Moderate
-
1
-
rhel-net-drivers
-
ssg_networking
-
1
-
False
-
False
-
-
None
-
Network Drivers 6
-
None
-
None
-
If docs needed, set a value
-
-
All
-
None
-
57,005
Steps to reproduce problem:
"""
$ cat > test.cc<<EOF
#include <thread>
#include <mpi.h>
void thread_mpi() {
int mpi_threads_provided;
MPI_Init_thread(nullptr, nullptr, MPI_THREAD_SINGLE, &mpi_threads_provided);
MPI_Finalize();
}
int main() {
std::thread thread = std::thread(thread_mpi);
thread.join();
return 0;
}
EOF
$ module load mpi/openmpi-x86_64
g++ $(pkg-config ompi-cxx --cflags) $(pkg-config ompi-cxx --libs) test.cc -o test
"""
User has a python environment, and above is a reduced reproducer.
There are some workarounds, but still the problem should be fixed in mpi.
The crash happens in /lib64/libpmix.so.2
User is not using environemt-modules, but if using, one workaround is to explicitly link with pmix, for example:
"""
- dnf install -y pmix-devel
$ g++ $(pkg-config ompi-cxx --cflags) $(pkg-config ompi-cxx --libs) $(pkg-config --libs pmix) test.cc -o test
"""
Because user is using python scripts, the workaround was a suggestion to load some pmix python module, what appears to have worked, but again, this appears to be just hidding a problem.
A non tested workaround is that it might work with this pseudo-patch:
"""
-int pmix_tsd_keys_destruct()
+_attribute_((destructor)) int pmix_tsd_keys_destruct()
"""
in pmix_source/src/threads/thread.c
but not guaranteed, as the dependency chain leading to loading the pmix library is complex.
- external trackers