GNU/Linux >> Tutoriels Linux >  >> Linux

docker, openmpi et fin inattendue de la ligne /proc/mounts

Cela est probablement dû à votre /proc/mount fichier contenant une ligne supérieure à 512 caractères, ce qui empêche le module hwloc d'OpenMPI de l'analyser correctement. Docker a tendance à mettre de très longues lignes dans /proc/mounts . Vous pouvez voir le bogue dans 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;

Cela peut être corrigé en augmentant la valeur de PROC_MOUNT_LINE_LEN , bien que cela doive être considéré comme une solution de contournement temporaire.


Ce problème devrait être résolu dans hwloc depuis la version 1.11.3 (publiée il y a 2 ans). Vous pouvez soit mettre à niveau vers OpenMPI 3.0 qui contient un hwloc 1.11.7>=1.11.3. Ou recompilez OpenMPI pour utiliser un hwloc externe au lieu de l'ancien intégré.


Linux
  1. Installer les binaires dans /bin, /sbin, /usr/bin et /usr/sbin, interactions avec --prefix et DESTDIR

  2. Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

  3. Comment savoir à partir de quel dossier un processus est en cours d'exécution ?

  4. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

  5. noyau :désactiver /dev/kmem et /dev/mem

Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

Linux – Lier /proc/mnt à /proc/mounts ?

Fichiers /proc/cpuinfo et /proc/meminfo sous Linux

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

Différence entre /bin et /usr/bin

Quelle est la différence entre /tmp et /run ?