[Trilinos-Users] glibc detected in IFPack ILU compute()

james williams james.williams at mail.mcgill.ca
Tue Jul 23 10:21:36 MDT 2013


Hi All,

I'm using the Ifpack factory class to build an ILU preconditioner for a 
serial code.  After creating and initializing the preconditioner from my 
FillCompleted EpetraCrs matrix, I call compute() and the program crashes 
with:

*** glibc detected *** ./zoupa: free(): invalid next size (normal): 
0x00000000069df2e0 ***
*** glibc detected *** ./zoupa: malloc(): memory corruption: 
0x00000000069eeb10 ***

When I run the code with valgrind, I get:

==9743== Invalid write of size 4
==9743==    at 0xBBE0F0: Ifpack_ILU::Compute() (in 
/storage/jww/SIM_VERSIONS/IMEX_ML_SIM/zoupa)
==9743==    by 0xB39F0C: Ifpack_AdditiveSchwarz<Ifpack_ILU>::Compute() 
(in /storage/jww/SIM_VERSIONS/IMEX_ML_SIM/zoupa)
==9743==    by 0x4B09B2: compif_ (pass_A.cpp:62)
==9743==    by 0x4C593D: stepper_ (stepper.f90:268)
==9743==    by 0x486356: MAIN__ (ice.f90:220)
==9743==    by 0x4DD639: main (in 
/storage/jww/SIM_VERSIONS/IMEX_ML_SIM/zoupa)
==9743==  Address 0x744285c is 0 bytes after a block of size 63,516 alloc'd

This looks like writing off the end of the of the memory block, any 
ideas of why this could be happening?

Additional notes:

1) The matrix is sparse, square, non-symmetric.

2) Using an ML preconditioner with the same matrix, and an analogous 
build process runs with no problems.

Any insight into what could be going wrong is much appreciated,
James



More information about the Trilinos-Users mailing list