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

Closed 9 years ago

#1888 closed defect (fixed)

Error de memoria WINDOWS 64 bits

Reported by: Jorge Owned by: Jorge
Priority: highest Milestone: Mantainance
Component: Kernel Version: head
Severity: critical Keywords:
Cc:

Description

Se encuentra un error de memoria con el siguiente código

VMatrix cov = Include( "cov_ma_m.oza" )[1];
WriteLn( "" << cov );
//VMatrix L_ma = ARMAProcess::CholeskiFactorCov( cov );
VMatrix L = CholeskiFactor( cov, "X", True, False );

El error que se genera es:

Virtual matrix Cholmod.R.Sparse
 Non zero cells 700/(234x234)=1.28%
 Stored cells 700/(234x234)=1.28%
 Stored bytes 9444/438120=2.16%
<E>
ERROR: [1] SIGNAL: Invalid storage access; most frequently caused y attempting to store some value in an object pointed to by a bad pointer. (Segment violation.)</E>
<E>
ERROR: [2] Un error inesperado ha hecho TOL inestable y la sesión debe ser cerrada</E>

Attachments (1)

cov_ma_m.oza (4.9 KB) - added by Jorge 9 years ago.

Download all attachments as: .zip

Change History (6)

Changed 9 years ago by Jorge

Attachment: cov_ma_m.oza added

comment:1 Changed 9 years ago by Víctor de Buen Remiro

No sé lo que puede pasar pero no depende de la matriz ni tampoco de CholMod.
Este sencillo código reproduce el error sólo en TOL MinGW 64 con una matriz de covarianzas aleatoria y pequeña sin usar CHOLMOD

Matrix cov = MtMSqr(Rand(10,3,-1,1));
WriteLn( "cov = \n" << cov );
Matrix L = Choleski(cov);
WriteLn( "L = \n" << L );

En TOL MSVC 32 y TOL MinGW 32 funciona bien

comment:2 Changed 9 years ago by Jorge

Confirmado.

Con este código debería ser más sencillo de depurar.

Gracias.

comment:3 Changed 9 years ago by Jorge

Owner: changed from Víctor de Buen Remiro to Jorge
Status: newaccepted

comment:4 Changed 9 years ago by Jorge

Version: 3.1head

Parece ser el mismo error.

Program received signal SIGSEGV, Segmentation fault.
0x000000006d4ac0e8 in LAPACKE_dpotrf () from c:\users\toldevel\trunk\tol\CodeLite\Debug\Runtime_Base\bin\libtol.dll
(gdb) #0  0x000000006d4ac0e8 in LAPACKE_dpotrf () from c:\users\toldevel\trunk\tol\CodeLite\Debug\Runtime_Base\bin\libtol.dll
#1  0x000000006ce7e9a6 in TolLapack::dpotrf (Uplo=CblasLower, S=..., X=...) at C:\users\toldevel\trunk\tol\bmath\blinalg\tol_lapack.cpp:70
#2  0x000000006ce7e9f0 in TolLapack::dpotrf (Uplo=CblasLower, S=..., X=...) at C:\users\toldevel\trunk\tol\bmath\blinalg\tol_lapack.cpp:86
#3  0x000000006d0f4610 in BMatCholeski::CalcContens (this=0x4224a90) at C:\users\toldevel\trunk\tol\btol\matrix_type\matgra.cpp:2286

comment:5 Changed 9 years ago by Jorge

Resolution: fixed
Status: acceptedclosed

El error estaba en lapack usado para 64 bits. Después de compilar a partir de http://www.netlib.org/lapack/lapack-3.5.0.tgz el error ya no se manifiesta.

Note: See TracTickets for help on using tickets.