close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 15 years ago

Closed 14 years ago

Last modified 14 years ago

#887 closed defect (fixed)

Error decompiling an OZA

Reported by: Pedro Gea Owned by: Víctor de Buen Remiro
Priority: highest Milestone:
Component: Kernel Version:
Severity: blocker Keywords:
Cc:

Description

Según parece al decompilar el conjunto rescatado a través de un OZA se deja en memoria un número de objetos (NObject) equivalente al tamaño del conjunto rescatado, ya que tras cada compilación-decompilación NObject aumenta.

En el siguiente ejemplo se puede ver como aumenta en 2:

Real Copy(NObject);
Real Ois.Create("C:/Temp/oza1.oza", Empty, [[Real 1]]); 
Real Copy(NObject);
Set Ois.Load("C:/Temp/oza1.oza");
Real Copy(NObject);

Change History (8)

comment:1 Changed 14 years ago by Pedro Gea

Priority: normalhighest
Severity: majorblocker

En el uso de MMS, se están encontrando graves problemas de memoria, en gran parte debido a este error, ya que los modelos, estimaciones, previsiones, etc, se van guardando en ozas, y la carga de un objeto guardado pasa por la carga (Ois.Load) de estos archivos.

Adjunto un nuevo ejemplo, que hace caer TOLBase:

WriteLn("Número de objetos: "<<Copy(NObject));
Real Ois.Store([[
  For(1, 500, Set (Real i) {
    For(1, 500, Anything (Real j) {
      Real Copy(i+j)
    })
  })
]], "C:/Temp/oza1.oza"); 

Set For(1, 200, Real (Real i) {
  WriteLn("Número de objetos: "<<Copy(NObject));
  Set Ois.Load("C:/Temp/oza1.oza");
0});

comment:2 Changed 14 years ago by Víctor de Buen Remiro

Status: newaccepted

comment:3 Changed 14 years ago by Víctor de Buen Remiro

(In [2673]) Refs #887

comment:4 Changed 14 years ago by Víctor de Buen Remiro

(In [2675]) Refs #887
Avoiding the use of generic calling to IncNRefs and DecNRefs by means of a more sophisticated method.
BOisLoader creates a Bist* localDependencies_ to save orphan objets like time series dating, structs of sets and classes of nameblocks, when new argument addToLocalDependencies of ReadNextObject is true.
This list is passed to the returned set in new member BSet::oisLocalDependencies_ in order to be cleaned by the destructor of these returned set.

comment:5 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: acceptedclosed

El problema ha sido resuelto en el SVN y en la release binaria v2.0.1 b.0.47.alpha de tol-project

comment:6 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: closedreopened

El problema subsiste si se almacenan series con un fechado creado localmente.

comment:7 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: reopenedclosed

(In [2683]) Fixes #887

comment:8 Changed 14 years ago by Víctor de Buen Remiro

(In [3142]) Refs #887

Note: See TracTickets for help on using tickets.