[petsc-users] PCFieldSplit with MatNest

Jed Brown jed at jedbrown.org
Wed Mar 13 08:28:38 CDT 2019


Is there any output if you run with -malloc_dump?

Manuel Colera Rico via petsc-users <petsc-users at mcs.anl.gov> writes:

> Hi, Junchao,
>
> I have installed the newest version of PETSc and it works fine. I just 
> get the following memory leak warning:
>
> Direct leak of 28608 byte(s) in 12 object(s) allocated from:
>      #0 0x7f1ddd5caa38 in __interceptor_memalign 
> ../../../../gcc-8.1.0/libsanitizer/asan/asan_malloc_linux.cc:111
>      #1 0x7f1ddbef1213 in PetscMallocAlign 
> (/opt/PETSc_library/petsc-3.10.4/mcr_20190313/lib/libpetsc.so.3.10+0x150213)
>
> Thank you,
>
> Manuel
>
> ---
>
> On 3/12/19 7:08 PM, Zhang, Junchao wrote:
>> Hi, Manuel,
>>   I recently fixed a problem in VecRestoreArrayRead. Basically, I 
>> added VecRestoreArrayRead_Nest. Could you try the master branch of 
>> PETSc to see if it fixes your problem?
>>   Thanks.
>>
>> --Junchao Zhang
>>
>>
>> On Mon, Mar 11, 2019 at 6:56 AM Manuel Colera Rico via petsc-users 
>> <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>> wrote:
>>
>>     Hello,
>>
>>     I need to solve a 2*2 block linear system. The matrices A_00, A_01,
>>     A_10, A_11 are constructed separately via
>>     MatCreateSeqAIJWithArrays and
>>     MatCreateSeqSBAIJWithArrays. Then, I construct the full system matrix
>>     with MatCreateNest, and use MatNestGetISs and PCFieldSplitSetIS to
>>     set
>>     up the PC, trying to follow the procedure described here:
>>     https://www.mcs.anl.gov/petsc/petsc-current/src/snes/examples/tutorials/ex70.c.html.
>>
>>     However, when I run the code with Leak Sanitizer, I get the
>>     following error:
>>
>>     =================================================================
>>     ==54927==ERROR: AddressSanitizer: attempting free on address which
>>     was
>>     not malloc()-ed: 0x627000051ab8 in thread T0
>>          #0 0x7fbd95c08f30 in __interceptor_free
>>     ../../../../gcc-8.1.0/libsanitizer/asan/asan_malloc_linux.cc:66
>>          #1 0x7fbd92b99dcd in PetscFreeAlign
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x146dcd)
>>          #2 0x7fbd92ce0178 in VecRestoreArray_Nest
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x28d178)
>>          #3 0x7fbd92cd627d in VecRestoreArrayRead
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x28327d)
>>          #4 0x7fbd92d1189e in VecScatterBegin_SSToSS
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x2be89e)
>>          #5 0x7fbd92d1a414 in VecScatterBegin
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x2c7414)
>>          #6 0x7fbd934a999c in PCApply_FieldSplit
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0xa5699c)
>>          #7 0x7fbd93369071 in PCApply
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x916071)
>>          #8 0x7fbd934efe77 in KSPInitialResidual
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0xa9ce77)
>>          #9 0x7fbd9350272c in KSPSolve_GMRES
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0xaaf72c)
>>          #10 0x7fbd934e3c01 in KSPSolve
>>     (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0xa90c01)
>>
>>     Disabling Leak Sanitizer also outputs an "invalid pointer" error.
>>
>>     Did I forget something when writing the code?
>>
>>     Thank you,
>>
>>     Manuel
>>
>>     ---
>>


More information about the petsc-users mailing list