<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr">I can reproduce the segfault with the latest mpich. In Clean_List(), I think there is a data race, since all shmem members update the head node<div><div>            head->next_win = temp_win;</div><div>            head->next = temp_next;</div></div><div>I tried to simplify Clean_List() further as follows,</div><div><br></div><div><div>void Clean_List()</div><div>{</div></div><div><div>    Node *cur_node = head;</div><div>    MPI_Win cur_win = head_win;</div><div>    Node *next_node;</div><div>    MPI_Win next_win;</div><div><br></div><div>    while (cur_node) {</div><div>        next_node = cur_node->next;</div><div>        next_win = cur_node->next_win;</div><div>        MPI_Win_free(&cur_win);</div><div>        cur_node = next_node;</div><div>        cur_win = next_win;</div><div>    }</div><div><br></div><div>    head = tail = NULL;</div><div>}</div></div><div><br></div><div>But I still met segfault. With gdb, the segfault disappears. If I comment out the call to Clean_List in main(), the error also disappear. </div><div>I Cc'ed our local RMA expert Xin to see if she has new findings. </div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr">--Junchao Zhang</div></div></div>
<br><div class="gmail_quote">On Sat, May 2, 2015 at 10:26 AM, Brian Cornille <span dir="ltr"><<a href="mailto:bcornille@wisc.edu" target="_blank">bcornille@wisc.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">
<div style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Calibri,Arial,Helvetica,sans-serif">
<p>Hello,</p>
<p><br>
</p>
<p>In working on a project that is attempting to use MPI shared memory (from MPI_Win_allocate_shared) I began getting inconsistent segfaults in portions of the code that appeared to have no memory errors when investigated with gdb.  I believe I have somewhat
 reproduced this error in a small code (attached) that creates a linked list of MPI shared memory allocated elements.</p>
<p><br>
</p>
<p>The attached program segfaults for me when run with more than one process.  However, will not segfault if run in gdb (e.g. mpirun -n 2 xterm -e gdb ./mpi_shmem_ll).  I have done what I can to eliminate any apparent race conditions.  Any help in this matter
 would be much appreciated.</p>
<p><br>
</p>
<p>Thanks and best,</p>
<p>Brian Cornille<br>
</p>
</div>
</div>

<br>_______________________________________________<br>
discuss mailing list     <a href="mailto:discuss@mpich.org">discuss@mpich.org</a><br>
To manage subscription options or unsubscribe:<br>
<a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br></blockquote></div><br></div>