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 17 years ago

Closed 17 years ago

Last modified 17 years ago

#523 closed defect (fixed)

Compile a file consecutive several times makes TOLBase to crash

Reported by: César Pérez Álvarez Owned by: danirus
Priority: highest Milestone:
Component: Various Version: 1.1.6
Severity: blocker Keywords:
Cc:

Description

If we compile this file several consecutive times TOLBase will crash. The number of times that we have to compile is not always the same.


FILE : error.tol
PURPOSE:

Date Ini = y2006m05d01;
Date End = y2006m07d24;
Serie stepIn = SubSer(CalInd(C, Semanal), Ini, End);

Serie forma1 = DifEq(1/(1-0.4*B), stepIn);

Attachments (2)

test_bug523.tcl (405 bytes) - added by Jorge 17 years ago.
code to reproduce de bug
test_bug523.log (18.3 KB) - added by Jorge 17 years ago.
output of 'valgrind --tool=memcheck tclsh test_bug523.tcl'

Download all attachments as: .zip

Change History (7)

comment:1 Changed 17 years ago by César Pérez Álvarez

Only a comment. This nehaviour does not happend in version 115.

comment:2 Changed 17 years ago by Jorge

verified also on Linux/TOL-1.1.7

Changed 17 years ago by Jorge

Attachment: test_bug523.tcl added

code to reproduce de bug

Changed 17 years ago by Jorge

Attachment: test_bug523.log added

output of 'valgrind --tool=memcheck tclsh test_bug523.tcl'

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

Status: newassigned

I've reproduce this error in a simple way with a TOL "For" cycle

Set aux = For(1,5, Real(Real k)
{

WriteLn("Evaluation "+IntText(k));
Date Ini = y2006m05d01;
Date End = y2006m07d24;
Serie stepIn = SubSer(CalInd(C, Semanal), Ini, End);
Serie forma1 = DifEq(1/(1-0.4*B), stepIn);
k

});

First 3 iterations seems to work fine but TimeSet Semanal is lost after fourth one:

Evaluation 1
Evaluation 2
Evaluation 3
Evaluation 4
<E>
ERROR: [1] Semanal no es un objeto valido para el tipo TimeSet.</E>
<E>
ERROR: [2] Argumentos erróneos para Serie CalInd (TimeSet conjuntoTemporal, TimeSet fechado)</E>
<E>
ERROR: [3] Argumentos erróneos para Serie SubSer (Serie S, Date D1, Date D2)</E>
<E>
ERROR: [4] stepIn no se pudo crear.</E>
<E>
ERROR: [5] stepIn no es un objeto valido para el tipo Serie.</E>
<E>
ERROR: [6] Argumentos erróneos para Serie DifEq (Ratio R, Serie S, Serie I)</E>
<E>
ERROR: [7] forma1 no se pudo crear.</E>
Evaluation 5
<E>
ERROR: [8] Semanal no es un objeto valido para el tipo TimeSet.</E>
<E>
ERROR: [9] Argumentos erróneos para Serie CalInd (TimeSet conjuntoTemporal, TimeSet fechado)</E>
<E>
ERROR: [10] Argumentos erróneos para Serie SubSer (Serie S, Date D1, Date D2)</E>
<E>
ERROR: [11] stepIn no se pudo crear.</E>
<E>
ERROR: [12] stepIn no es un objeto valido para el tipo Serie.</E>
<E>
ERROR: [13] Argumentos erróneos para Serie DifEq (Ratio R, Serie S, Serie I)</E>
<E>
ERROR: [14] forma1 no se pudo crear.</E>

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

Resolution: fixed
Status: assignedclosed

Problem has been fixed in CVS

NameBlock members must be treated as global or system variables when are used as the dating of a time serie. Now, Semanal is a member of StdLib instead a global variable and it was be taked as a local one by local variables Serie stepIn and Serie forma1 that must ensure to destroy its own dating, believing that it was also local.

Thanks to report it

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

bug_file_loc: http://cvs.tol-project.org/viewcvs.cgi/tol_tests/tol/Bugzilla/bug_000523
Note: See TracTickets for help on using tickets.