Package: libopenmpi-dev
Version: 4.0.2-2
Severity: important

Dear Maintainer,

The upgrade of Open MPI components from 3.1.3 to 4.0.2-2 did not
complete successfully. During upgrade I got these warnings:

Setting up libopenmpi-dev:amd64 (4.0.2-2) ...
update-alternatives: warning: forcing reinstallation of alternative 
/usr/lib/x86_64-linux-gnu/openmpi/include because link group 
mpi-x86_64-linux-gnu is broken
update-alternatives: warning: skip creation of 
/usr/lib/x86_64-linux-gnu/libmpi++.so because associated file 
/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so (of link group 
mpi-x86_64-linux-gnu) doesn't exist
update-alternatives: warning: skip creation of 
/usr/lib/x86_64-linux-gnu/libmpi.so because associated file 
/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so (of link group 
mpi-x86_64-linux-gnu) doesn't exist

As installed the libraries were not usable:

$ make
mpicc -O2 -march=native -fpie -std=c11  -D_Linux -D_XOPEN_SOURCE=700  -o 
mpi_mm.o -c mpi_mm.c
mpicc mpi_mm.o  -pie -Wl,-z,now -Wl,-z,relro  -o mpi_mm_c.linux-gnu.x86_64
/usr/bin/ld: cannot find -lmpi
/usr/bin/ld: cannot find -levent
/usr/bin/ld: cannot find -levent_pthreads
collect2: error: ld returned 1 exit status
make: *** [makefile:31: mpi_mm_c.linux-gnu.x86_64] Error 1

I found that the failure to locate -levent and -levent_pthreads was
because libevent-dev needs to be installed.

The -lmpi load failure is because the symlink

    /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so -> libmpi.so.40.20.2

was missing when setup tried to create the symlinks

    /etc/alternatives/libmpi.so-x86_64-linux-gnu ->
        /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so

and

    /usr/lib/x86_64-linux-gnu/libmpi.so -> 
        /etc/alternatives/libmpi.so-x86_64-linux-gnu

Running dpkg-query -L libopenmpi-dev shows that

    /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so

should have been created, but it wasn't.

On the off chance that a reinstallation might help, I reinstalled
all the 4.0.2-2 packages.  That time there were no issues reported,
the symlinks appear to be good, and Open MPI 4.0.2 works on my
test programs.

$ showlinks /usr/lib/x86_64-linux-gnu/libmpi.so
lrwxrwxrwx 1 root root 44 Nov 19 18:11 /usr/lib/x86_64-linux-gnu/libmpi.so -> 
/etc/alternatives/libmpi.so-x86_64-linux-gnu
lrwxrwxrwx 1 root root 47 Nov 19 18:11 
/etc/alternatives/libmpi.so-x86_64-linux-gnu -> 
/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so
lrwxrwxrwx 1 root root 17 Nov 19 05:55 
/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so -> libmpi.so.40.20.2
-rw-r--r-- 1 root root 1126552 Nov 19 05:55 
/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so.40.20.2

That's similar to the 3.1.3 scheme that I still have on my Buster host.

Is it possible that the installation script has a sequencing problem
such that it tries to target 

    /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so

with a symlink from /etc/alternatives before it's been created?

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.3.0-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libopenmpi-dev depends on:
ii  gfortran [gfortran-mod-15]    4:9.2.1-3.1
ii  gfortran-9 [gfortran-mod-15]  9.2.1-19
ii  libhwloc-dev                  1.11.13-1
ii  libibverbs-dev                26.0-2
ii  libopenmpi3                   4.0.2-2
ii  openmpi-bin                   4.0.2-2
ii  openmpi-common                4.0.2-2

Versions of packages libopenmpi-dev recommends:
ii  libcoarrays-openmpi-dev  2.8.0-1

Versions of packages libopenmpi-dev suggests:
pn  openmpi-doc  <none>

-- no debconf information

Reply via email to