Opened 10 years ago
Closed 10 years ago
#1845 closed defect (fixed)
Extraño error con series: desaparecen fechas y datos
Reported by: | Pedro Gea | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | normal | Milestone: | Mantainance |
Component: | Kernel | Version: | 3.1 |
Severity: | critical | Keywords: | |
Cc: | imiranda |
Description
El error observado es bastante extraño. Voy a intentar describir qué es lo que ha ocurrido, en qué circunstancias y qué posibles causas puede tener.
En el marco de un proyecto de modelación se suceden las siguientes acciones:
- Se carga TOL (v3.1) con el iniproject correspondiente, MMS incluído.
- Se cargan datos de distintos orígenes (entre ellos unas BDT).
- Se crea un modelo, se estima y se crea un objeto previsión.
- En este momento se extraen (al eval) algunas series para visualizarlas, y se visualizan correctamente.
- Se guarda el forecast en un oza como habitualmente.
- Se vuelven a visualizar las mismas series extraídas y ya no muestran los mismos datos.
La serie visualizada está en fechado Anual
con datos desde 1980 hasta 2014 (35 datos). Se observa lo siguiente:
- Cuando se tabula o grafica antes del guardado se visualiza correctamente.
- Cuando se tabula o grafica después del guardado, sólo se ven 5 fechas y 5 datos: el de 1980 y desde 2011 en adelante.
- Aunque sólo se puedan ver 5, la serie contiene todos los datos al llamar a funciones como
CountS
oSerMat
. - Si creamos más series en el fechado Anual, presentan el mismo problema de visualización.
Parece ser que el TimeSet Anual
se ha corrompido de alguna forma. Se comprueba que:
- El fechado Anual se visualiza normalmente en el inspector de timesets y responde correctamente a la función Dates.
- Sin embargo la expresión
Real AreCompatibleTimeSet(Anual, Yearly, y1980, y2014)
devuelve 0 cuando aparece el problema. Era 1 antes del guardado y 0 después. - Se intenta guardar el fechado corrupto en un oza para aislarlo, pero el fechado guardado no presenta problemas (es compatible) al cargarlo en una nueva instancia de TOL (independientemente del valor de
Ois.ForceStoredTimeSet
).
Así pues, parece tratarse de un error en la caché de fechas del fechado, o en alguna otra característica que no se almacene en un oza.
El error se consigue esquivar al dejar de ejecutar una parte (aparentemente inocua) del proceso que cargaba algunos datos de unas BDT y hacía algunas operaciones con las series.
Change History (4)
comment:1 Changed 10 years ago by
comment:2 Changed 10 years ago by
Otra cosa que se puede probar es ver si en TOl 3.2 también pasa.
Si es así habría que intentar aislar el problema pues tal y como se describe el método de reproducción sistemática resulta imposible depurarlo.
comment:3 Changed 10 years ago by
Hola,
Este código lleva funcionando en versión 3.1 desde mediados de 2012. Los modelos se actualizan cada 6 meses más o menos y la última vez que se actualizaron sin problemas fue en Octubre de 2014 (ejecutándose desde el mismo ordenador que se está haciendo ahora). Desde Octubre de 2014 hasta ahora (Mayo de 2015) lo único que se ha hecho es actualizar paquetes.
Se ha probado en TOL 3.2 y el funcionamiento es normal:no aparece ningún error.
comment:4 Changed 10 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
En la versión TOL 3.2 se han resuelto varios problemas relacionados con TimeSet y OIS, algunos de los cuales eran bastante complejos, por lo que no me resulta nada extraño.
Entiendo que no hay ningún problema en migrar a TOL 3.2 y dar por resuelto el problema, pues en la 3.1 es imposible resolverlo a mi modo de ver.
Lo único que seme ocurre es que el caché del OIS tenga un efecto colateral inesperado al almacenar el TimeSet
Puesto que son infinitos sólo puede guardar un trozo, y en algún momento usa las fechas por defecto (DefFirst, DefLast) para determinarlo.
Si estas fechas no abarcan el periodo desde 1980 no sé si podría ocasionar algún problema.
¿Podéis probar a poner unas fechas por defecto que abarquen todo el periodo necesario?
Es posible que haya que regenerar el OZA con las fechas por defecto corregidas.