GNU/Linux >> Tutoriales Linux >  >> Linux

docker, openmpi y final inesperado de la línea /proc/mounts

Es probable que esto se deba a tu /proc/mount archivo que tiene una línea de más de 512 caracteres, lo que provoca que el módulo hwloc de OpenMPI no pueda analizarlo correctamente. Docker tiene una tendencia a poner líneas muy largas en /proc/mounts . Puedes ver el error en 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;

Esto se puede solucionar aumentando el valor de PROC_MOUNT_LINE_LEN , aunque eso debería considerarse una solución temporal.


Este problema debería solucionarse en hwloc desde 1.11.3 (lanzado hace 2 años). Puede actualizar a OpenMPI 3.0, que contiene hwloc 1.11.7>=1.11.3. O vuelva a compilar OpenMPI para usar un hwloc externo en lugar del antiguo incrustado.


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

  2. Actualización de Docker en la AMI de Amazon Linux

  3. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

  4. Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

  5. kernel:deshabilitar /dev/kmem y /dev/mem

Archivos /proc/cpuinfo y /proc/meminfo en Linux

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

Instalar binarios en /bin, /sbin, /usr/bin y /usr/sbin, interacciones con --prefix y DESTDIR

¿Cómo saber desde qué carpeta se está ejecutando un proceso?

Diferencia entre /bin y /usr/bin

¿Cuál es la diferencia entre /tmp y /run?