Problemas de lectura de carpetas compartidas de Virtualbox desde Apache

Problemas de lectura de carpetas compartidas de Virtualbox desde Apache

Tengo un problema con los archivos en un recurso compartido montado dentro de una máquina Virtualbox.

El problema es que aunque puedo ver el contenido de los archivos bastante bien desde el shell, los mismos archivos aparecen ligeramente dañados, truncados o en versiones antiguas, a veces cuando se sirven a través de http a través de un servidor web Apache.

El problema parece ocurrir sólo una vez que el archivo alcanza una cierta longitud (100-200 caracteres). A veces se añaden caracteres no legibles al final, lo que genera pequeños signos de interrogación en el navegador. Otro síntoma común es que cuando se cambia el archivo desde el host, no hay forma de hacer que Apache entregue la nueva versión. (El problema no está relacionado con ETags y Apache tiene permisos de lectura perfectos en todos los archivos. Dudo que tampoco esté relacionado únicamente con las codificaciones).

Realmente parece un problema a nivel del sistema de archivos que sólo se manifiesta en Apache.

Algunos hechos:

Anfitrión: MacBook Pro/Snow Leopard

Invitado: Fedora 16

Apache: 2.2.22

VirtualBox: 4.1.8

Intenté montar en fstab pero también manualmente, cambiando el ID de usuario a Apache.

Pido disculpas por la descripción vaga (¿no investigada?) del problema, pero realmente no sé por dónde empezar y espero obtener algunas pistas en la dirección correcta. ¿Es Mac, Virtualbox, Fedora o Apache el verdadero problema?

ACTUALIZACIÓN: Me doy cuenta de que hay algo más que Apache httpd que no sirve los archivos correctamente; en algún momento, cuando creo una nueva carpeta en el host, la entrada se muestra como un montón de signos de interrogación cuando hago una lista de directorios en el shell del invitado. Casi no hace falta decir que no puedo acceder a esa nueva carpeta hasta que haya reiniciado el invitado.

Respuesta1

Echa un vistazo al billete enhttps://www.virtualbox.org/ticket/819, ahí te sugieren lo que ya encontraste que es el ApacheHabilitarEnviarArchivodirectiva. Desactivar esta directiva parece resolver el problema en nuestros servidores.

Respuesta2

Algunas búsquedas de "apache mmap" revelan que Apache utilizarámapamm(2)para acceder a archivos cuando los archivos exceden un cierto tamaño (que parece ser de forma predeterminada 1 byte en sistemas que no son SunOS). Este problema podría deberse a un error en el soporte de VirtualBox para el acceso mmap a carpetas compartidas.

información relacionada