Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > diario > 2007 > 12 > 4 > Foxmarks y precondición fallida

Foxmarks y precondición fallida

Desde hace un tiempo estoy usando la extensión para Firefox/Iceweasel llamada foxmarks, que me permite conservar sincronizados mis marcadores en varias máquinas, siempre que nos las use al mismo tiempo, obviamente.

Hace poco anunciaron la versión 2.0 y funcionaba tan mal que tuve que reinstalar una versión 1, porque si lo que fallaba era la sincronización en un programa que sólo sirve para sincronizar ...

Una vez que lo hice me decidí por utilizar mi propio servidor WebDAV como depósito central, y me he encontrado con varios problemas absurdos, entre ellos el que desde hace unos días no funcionaba en absoluto, aunque yo creía que sí.

Me explico: una vez arrancado el proceso de sincronización, Foxmarks lee el archivo foxmarks.xml del servidor sin problemas (recibía generalmente un código 304 que indica que no hay cambios); luego envía los marcadores locales al servidor y cuando termina no aparece un error como tal, sino más bien un letrero informativo sobre que hay una precondición fallida.

Revisando los registros del servidor me encuentro un buen número de errores 412 devueltos, y entonces caigo en la cuenta de que la operación de escritura no había terminado bien, y se estaban produciendo errores fatales.

Buscando en el wiki de los autores encuentro la explicación, y una solución aparentemente no muy sana, pero que funciona. El fallo parece residir en el módulo mod_dav de Apache, registrado como error, y las soluciones propuestas son dos, y ambas tienen que ver con desactivar el mecanismo de protección contra sobreescritura que foxmarks incluye.

  1. Incluir en la configuración del navegador la siguiente estrofa (vía about:config):

    user_pref("foxmarks.disableIfMatchOnPut", true);
    
  2. Anular en el servidor la generación de etiquetas de respuesta HTTP con la directiva FileETag:

    FileETag None
    

    en la sección correspondiente.