GNU/Linux >> Belajar Linux >  >> Linux

docker, openmpi dan akhir yang tak terduga dari baris /proc/mounts

Ini mungkin karena /proc/mount Anda file yang memiliki baris di dalamnya lebih dari 512 karakter, menyebabkan modul hwloc OpenMPI gagal menguraikannya dengan benar. Docker memiliki kecenderungan untuk memasukkan baris yang sangat panjang ke dalam /proc/mounts . Anda dapat melihat bug di openmpi-1.10.7/opal/mca/hwloc/hwloc191/hwloc/src/topology-linux.c:1677 :

static void
hwloc_find_linux_cpuset_mntpnt(char **cgroup_mntpnt, char **cpuset_mntpnt, int fsroot_fd)
{
#define PROC_MOUNT_LINE_LEN 512
  char line[PROC_MOUNT_LINE_LEN];
  FILE *fd;

  *cgroup_mntpnt = NULL;
  *cpuset_mntpnt = NULL;

  /* ideally we should use setmntent, getmntent, hasmntopt and endmntent,
   * but they do not support fsroot_fd.
   */

  fd = hwloc_fopen("/proc/mounts", "r", fsroot_fd);
  if (!fd)
    return;

Ini dapat diperbaiki dengan meningkatkan nilai PROC_MOUNT_LINE_LEN , meskipun itu harus dianggap sebagai solusi sementara.


Masalah ini harus diperbaiki di hwloc sejak 1.11.3 (dirilis 2 tahun lalu). Anda dapat memutakhirkan ke OpenMPI 3.0 yang berisi hwloc 1.11.7>=1.11.3. Atau kompilasi ulang OpenMPI untuk menggunakan hwloc eksternal alih-alih yang tersemat lama.


Linux
  1. /proc/[pid]/pagemaps dan /proc/[pid]/maps | linux

  2. Bagaimana cara mengetahui dari folder mana suatu proses sedang berjalan?

  3. Linux:Perbedaan antara /dev/console , /dev/tty dan /dev/tty0

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Linux – Menautkan /proc/mnt Ke /proc/mounts?

  3. kernel:menonaktifkan /dev/kmem dan /dev/mem

  1. Linux:Perbedaan Antara /dev/console , /dev/tty Dan /dev/tty0?

  2. Bash =~ Regex Dan Https://regex101.com/?

  3. Linux – Menggabungkan /usr/bin Dan /usr/sbin Ke /bin (gnu/linux)?