python / python/cpython

os.writev() behaviour unpredictable when hitting file system full (28)

Abierto
#99,691 5 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

docs type-bug
Lenguaje dominante
Python
Estrellas
77.2k
Forks
36k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Bug report

os.writev() has an unpredictable behaviour when writing on a file system that becomes full:

For example:

try:
    fd=os.open(file,  os.O_WRONLY|os.O_CREAT|os.O_APPEND)
    result = os.writev(fd,iovtable[0:MAXIOV])
except OSError as e:
    ...
    # at this point result might return some bytes written (not necessarly corresponding to iov lengths, or even not be defined at all.

Your environment

centos 7.
Python 3.9 (but probably the same on 3.11)

This can easily be worked around by specifying in the documentation that os.writev() returns the actual number of bytes written in case of success, but the contents of the return value are unpredicatbale in case of errors.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con la documentación de os.writev() y revisa cómo se describen actualmente su valor de retorno y el comportamiento de OSError. Compara esa redacción con el caso informado de un sistema de archivos lleno; se considera terminado cuando la documentación indica claramente en qué pueden confiar los llamadores después de un éxito y después de un error.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
documentation
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.