Solución:
los ENOSPC
(“No queda espacio en el dispositivo”) se activará el error en alguna situación en la que los datos o el metadatos asociado con una operación de E / S no se puede escribir en ningún lugar debido a la falta de espacio. Esto no siempre significa espacio en disco; podría significar espacio en disco físico, espacio lógico (por ejemplo, longitud máxima de archivo), espacio en una determinada estructura de datos o espacio de direcciones. Por ejemplo, puede obtenerlo si no hay espacio en la tabla de directorio (vfat) o no quedan inodos. Significa aproximadamente “No encuentro dónde escribir esto”.
Particularmente en Python, esto puede suceder en cualquier operación de escritura de E / S. Puede suceder durante f.write
, pero también puede ocurrir en open
, sobre f.flush
e incluso en f.close
. Dónde sucedió proporciona una pista vital por la razón por la que sucedió: si sucedió en open
no había suficiente espacio para escribir los metadatos de la entrada, si sucedió durante f.write
, f.flush
o f.close
no quedaba suficiente espacio en disco o ha superado el tamaño máximo de archivo.
Si el sistema de archivos en el directorio dado es vfat
alcanzaría el límite máximo de archivos aproximadamente al mismo tiempo que lo hizo. Se supone que el límite es de 2 ^ 16 entradas de directorio, pero si recuerdo correctamente, algunos otros factores pueden afectarlo (por ejemplo, algunos archivos requieren más de una entrada).
Lo mejor sería evitar crear tantos archivos en un directorio. Pocos sistemas de archivos manejan tantas entradas de directorio con facilidad. A menos que esté seguro de que su sistema de archivos maneja bien muchos archivos en un directorio, puede considerar otra estrategia (por ejemplo, crear más directorios).
PD: No confíe en el espacio restante en el disco: algunos sistemas de archivos reservan algo de espacio para la raíz y otros calculan mal el espacio libre y le dan un número que simplemente no es cierto.
Intenta eliminar los archivos temporales
cd /tmp/
rm -r *
Resulta que la mejor solución para mí aquí fue simplemente reformatear la unidad. Una vez reformateado, todos estos problemas dejaron de ser problemas.