[¿error?] Actualización de calendario no instantánea

Hola,
Esta semana he modificado uno de mis calendarios para la calefacción: básicamente he eliminado todos los eventos.
La sincronización en Gladys no se ha realizado, no ha habido cambios.
He forzado la sincronización pero tampoco ha habido cambios.
Lo he dejado funcionando pero sin más.
Y esta mañana he eliminado el compartir de este calendario (por si acaso), he guardado la configuración de nuevo y he lanzado una sincronización y los eventos han desaparecido.

¿Puede haber algún problema con los eventos recurrentes o una sincronización que no se realiza/ya no se realiza automáticamente?

Tengo mis registros de disponibilidad para análisis si es necesario.

Hola @mutmut, gracias por la respuesta.

Me gustaría tener los logs para pasárselos a Claude para que los analice :slight_smile:

¡Muchas gracias @mutmut por el reporte y por los registros, han permitido identificar un error real :folded_hands:

Qué estaba pasando

Tus registros muestran que la sincronización CalDAV se ejecutaba cada 30 minutos, sin aplicar nada:

09:31:33  CalDAV : Found calendar Chauffage
09:31:33  CalDAV : Found 4 calendars.

…y nada más durante 17 horas seguidas. Sin errores, pero tampoco modificaciones.

Tu intuición sobre los eventos recurrentes era correcta. En Gladys, un evento recurrente se registra como una línea por ocurrencia (tu calendario Chauffage contiene 575). Sin embargo, cuando el servidor CalDAV notificaba la eliminación de un evento, Gladys solo lo eliminaba si encontraba exactamente una ocurrencia correspondiente. Para un evento recurrente, había cientos, por lo que la condición nunca se cumplía y nada se eliminaba. Como este caso no producía ninguna línea de registro, la sincronización parecía no funcionar en absoluto.

Se encontraron dos problemas agravantes:

  1. Gladys marcaba el calendario como « actualizado » antes de aplicar realmente los cambios. Una vez que la eliminación fallaba, estas modificaciones se perdían definitivamente, y las sincronizaciones posteriores ya no las solicitaban. Es exactamente por eso que forzar la sincronización no cambiaba nada: solo una reimportación completa (lo que hace la copia de seguridad de la configuración) podía solucionarlo, y habías encontrado el buen contorno.
  2. Cuando una regla de recurrencia se acortaba o se eliminaba una ocurrencia, las ocurrencias antiguas permanecían en la base de datos indefinidamente.

Qué se ha corregido

  • Todas las ocurrencias de un evento recurrente eliminado se eliminan correctamente.
  • El ctag / sync token solo se registra después de que los cambios se hayan aplicado: sin calendarios bloqueados permanentemente en caso de fallo.
  • Las ocurrencias que ya no existen en el servidor se limpian.
  • Los calendarios se sincronizan al iniciar el servicio, en lugar de esperar 30 minutos (visible en tus registros: servicio iniciado a 09:01:33, primera sincronización a 09:31:33).
  • Los registros ahora también indican el número de eventos eliminados, para que este tipo de problema sea visible.

La corrección está aquí: Improve CalDAV sync: handle deleted events and defer ctag updates by Pierre-Gilles · Pull Request #2712 · GladysAssistant/Gladys · GitHub

Nota: la sincronización CalDAV sigue basada en un refresco cada 30 minutos, por lo que no puede ser instantánea en sentido estricto. Pero una modificación debería ser tomada en cuenta en la siguiente sincronización, sin quedar bloqueada.

La corrección está disponible en Gladys Assistant 4.84