[petsc-dev] use of uninitialized values in PetscSF

Barry Smith bsmith at mcs.anl.gov
Fri Sep 18 22:28:15 CDT 2015


  Is there any way to fix this use of uninitialized values?

9a10,67
> ==31141== Syscall param writev(vector[...]) points to uninitialised byte(s)
> ==31141==    at 0xD164CDB: writev (writev.c:51)
> ==31141==    by 0xCB13596: MPL_large_writev (mplsock.c:32)
> ==31141==    by 0xCB02DC9: MPIDU_Sock_writev (sock_immed.i:610)
> ==31141==    by 0xCAC00DD: MPIDI_CH3_iStartMsgv (ch3_istartmsgv.c:110)
> ==31141==    by 0xCA7DC91: recv_rma_msg (ch3u_rma_sync.c:2198)
> ==31141==    by 0xCA79CB6: MPIDI_Win_fence (ch3u_rma_sync.c:1295)
> ==31141==    by 0xC9AD840: PMPI_Win_fence (win_fence.c:111)
> ==31141==    by 0x51DA7E1: PetscSFRestoreWindow (sfwindow.c:348)
> ==31141==    by 0x51DD0C9: PetscSFBcastEnd_Window (sfwindow.c:510)
> ==31141==    by 0x51D0B66: PetscSFBcastEnd (sf.c:1001)
> ==31141==    by 0x401EB7: main (ex2.c:81)
> ==31141==  Address 0xe50d12c is 108 bytes inside a block of size 208 alloc'd
> ==31141==    at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==31141==    by 0xCA7328D: MPIDI_CH3I_RMA_Ops_alloc_tail (mpidrma.h:191)
> ==31141==    by 0xCA75A49: MPIDI_Get (ch3u_rma_ops.c:290)
> ==31141==    by 0xC99EC9C: PMPI_Get (get.c:142)
> ==31141==    by 0x51DCC62: PetscSFBcastBegin_Window (sfwindow.c:495)
> ==31141==    by 0x51D03C4: PetscSFBcastBegin (sf.c:968)
> ==31141==    by 0x401DDB: main (ex2.c:79)
> ==31141==  Uninitialised value was created by a heap allocation
> ==31141==    at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==31141==    by 0xCA7328D: MPIDI_CH3I_RMA_Ops_alloc_tail (mpidrma.h:191)
> ==31141==    by 0xCA75A49: MPIDI_Get (ch3u_rma_ops.c:290)
> ==31141==    by 0xC99EC9C: PMPI_Get (get.c:142)
> ==31141==    by 0x51DCC62: PetscSFBcastBegin_Window (sfwindow.c:495)
> ==31141==    by 0x51D03C4: PetscSFBcastBegin (sf.c:968)
> ==31141==    by 0x401DDB: main (ex2.c:79)
> ==31141== 
> ==31142== Syscall param writev(vector[...]) points to uninitialised byte(s)
> ==31142==    at 0xD164CDB: writev (writev.c:51)
> ==31142==    by 0xCB13596: MPL_large_writev (mplsock.c:32)
> ==31142==    by 0xCB02DC9: MPIDU_Sock_writev (sock_immed.i:610)
> ==31142==    by 0xCAC00DD: MPIDI_CH3_iStartMsgv (ch3_istartmsgv.c:110)
> ==31142==    by 0xCA7DC91: recv_rma_msg (ch3u_rma_sync.c:2198)
> ==31142==    by 0xCA79CB6: MPIDI_Win_fence (ch3u_rma_sync.c:1295)
> ==31142==    by 0xC9AD840: PMPI_Win_fence (win_fence.c:111)
> ==31142==    by 0x51DA7E1: PetscSFRestoreWindow (sfwindow.c:348)
> ==31142==    by 0x51DD0C9: PetscSFBcastEnd_Window (sfwindow.c:510)
> ==31142==    by 0x51D0B66: PetscSFBcastEnd (sf.c:1001)
> ==31142==    by 0x401EB7: main (ex2.c:81)
> ==31142==  Address 0xe49d88c is 108 bytes inside a block of size 208 alloc'd
> ==31142==    at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==31142==    by 0xCA7328D: MPIDI_CH3I_RMA_Ops_alloc_tail (mpidrma.h:191)
> ==31142==    by 0xCA75A49: MPIDI_Get (ch3u_rma_ops.c:290)
> ==31142==    by 0xC99EC9C: PMPI_Get (get.c:142)
> ==31142==    by 0x51DCC62: PetscSFBcastBegin_Window (sfwindow.c:495)
> ==31142==    by 0x51D03C4: PetscSFBcastBegin (sf.c:968)
> ==31142==    by 0x401DDB: main (ex2.c:79)
> ==31142==  Uninitialised value was created by a heap allocation
> ==31142==    at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==31142==    by 0xCA7328D: MPIDI_CH3I_RMA_Ops_alloc_tail (mpidrma.h:191)
> ==31142==    by 0xCA75A49: MPIDI_Get (ch3u_rma_ops.c:290)
> ==31142==    by 0xC99EC9C: PMPI_Get (get.c:142)
> ==31142==    by 0x51DCC62: PetscSFBcastBegin_Window (sfwindow.c:495)
> ==31142==    by 0x51D03C4: PetscSFBcastBegin (sf.c:968)
> ==31142==    by 0x401DDB: main (ex2.c:79)
> ==31142== 
/sandbox/petsc/petsc.clone/src/vec/is/sf/examples/tutorials
Possible problem with ex2_window, diffs above




More information about the petsc-dev mailing list