martes, 20 de diciembre de 2011

Dropbox y los "10000 folders"

Hoy Dropbox me ha fallado por primera vez. Desde hace mucho tiempo, casi tres años, lo que en informática es una era, he trabajado siempre en el directorio de Dropbox. En mi trabajo uso alternativamente 4 ordenadores en sitios distintos y siempre he tenido mi trabajo actualizado en todos mis equipos gracias a Dropbox. Sin embargo, después de arreglar unas fotos ayer por la noche en la intempestiva hora de las 1:30 en mi casa, al llegar a uno de los ordenadores de trabajo... no estaban allí. Al comprobar Dropbox en la red, ¡tampoco estaban! Al volver a casa con retraso en mi trabajo e intentar comprobar por qué Dropbox no había subido las imágenes, recibo un aviso con el siguiente texto:

Unable to monitor filesystem
Please run: echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches
and restart Dropbox to correct the
problem.

Nunca había recibido ese mensaje; buscando en la red he encontrado esta información (ver aquí):

"Monitoring more than 10000 folders
The Linux version of the Dropbox desktop application is limited from monitoring more than 10000 folders by default. Anything over that is not watched and, therefore, ignored when syncing."

Es decir, Dropbox se limita a monitorizar hasta 10.000 directorios. Yo no tengo 10.000 directorios, aunque sí más de 24.000 ficheros. Por suerte nos da la solución. Primero, si hacemos como dicen,

echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches

o bien

sudo sysctl fs.inotify.max_user_watches=100000


en un terminal, inmediatamente Dropbox comienza a sincronizar. Por desgracia eso solo sirve hasta reiniar el sistema. Para fijar esta corrección debemos editar sysctl.conf e introducirle la línea fs.inotify.max_user_watches = 100000 (mirar en este otro sitio). Es decir,



sudo gedit /etc/sysctl.conf (si tenéis sudo instalado y configurado, para los usuarios de Fedora)

y al final del fichero introducir una línea así

fs.inotify.max_user_watches = 100000

La pregunta que me hago es, ¿por qué ahora y nunca antes? No me lo ha hecho jamás en Ubuntu ni tampoco en este tiempo que llevo en Fedora hasta ayer, que realizó la última sincronización a las 23:59. El único cambio fue el kernel 3.1.5-6.fc16.x86_64 (y otros 80 y tantos paquetes más, entre los cuales no me fijé en ninguno en particular). Si el límite son 10.000 directorios ¿por qué? si no debo tener más de 400. Si son ficheros, ¿por qué no me lo hizo antes?
Misterios de la informática.

3 comentarios:

  1. Con 1500 carpetas y 5.800 archivos a mi tampoco me sincroniza siempre.

    Hasta ahora usaba subversion y/o rsync, pero estaba probando Drobox por lo de la "transparecia" y ser multiplataforma.

    Pero si no encuentro una causa de este comportamiento y como solucionarlo, dejaré de usarlo, ya que no voy a usar algo en lo que no puedo confiar.

    Guillermo.
    http://gtorres.itcron.com
    http://www.itcron.com

    ResponderEliminar
  2. Causa detectada:
    El problema que tengo esta causado por "junction" (como el ln de Unix pero en win).
    Dropbox se lia con los enlaces y solo sincroniza bien cuando reinicias la aplicación.
    Raro: sysinternals dice que usando junction las apliaciones no ven diferencia entre enlace y carpeta de verdad.

    ResponderEliminar
  3. Muchas gracias amigo. A mí me ha funcionado la solución con Ubuntu 13 64bits.

    ResponderEliminar