[petsc-users] PCFieldSplit with MatNest

Manuel Colera Rico m.colera at upm.es
Wed Mar 13 08:49:01 CDT 2019


The warning that Leak Sanitizer gives me is not what I wrote two 
messages before (I apologize). It is:

Direct leak of 25920 byte(s) in 4 object(s) allocated from:
     #0 0x7fa97e35aa38 in __interceptor_memalign 
../../../../gcc-8.1.0/libsanitizer/asan/asan_malloc_linux.cc:111
     #1 0x7fa97cc81213 in PetscMallocAlign 
(/opt/PETSc_library/petsc-3.10.4/mcr_20190313/lib/libpetsc.so.3.10+0x150213)

which seems to be in accordance (at least in number of leaked bytes) to 
-malloc_dump's output.

Manuel

---

On 3/13/19 2:44 PM, Manuel Colera Rico wrote:
> Yes:
>
> [ 0]8416 bytes MatCreateSeqSBAIJWithArrays() line 2431 in 
> /opt/PETSc_library/petsc-3.10.4/src/mat/impls/sbaij/seq/sbaij.c
> [ 0]8416 bytes MatCreateSeqSBAIJWithArrays() line 2431 in 
> /opt/PETSc_library/petsc-3.10.4/src/mat/impls/sbaij/seq/sbaij.c
> [ 0]4544 bytes MatCreateSeqSBAIJWithArrays() line 2431 in 
> /opt/PETSc_library/petsc-3.10.4/src/mat/impls/sbaij/seq/sbaij.c
> [ 0]4544 bytes MatCreateSeqSBAIJWithArrays() line 2431 in 
> /opt/PETSc_library/petsc-3.10.4/src/mat/impls/sbaij/seq/sbaij.c
>
> I have checked that I have destroyed all the MatNest matrices and all 
> the submatrices individually.
>
> Manuel
>
> ---
>
> On 3/13/19 2:28 PM, Jed Brown wrote:
>> 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