I believe this is an ugly workaround for the terrible behavior of MPI_Abort()<div>in some early implementations. Is this still the case?</div><div><br></div><div>   Matt<br><br><div class="gmail_quote">On Thu, May 13, 2010 at 11:48 AM, Jed Brown <span dir="ltr"><<a href="mailto:jed@59a2.org">jed@59a2.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I'm concerned by the following which appears in<br>
PetscAttachDebuggerErrorHandler() and Petsc_MPI_DebuggerOnError():<br>
<br>
  ierr = PetscAttachDebugger();<br>
  if (ierr) { /* hopeless so get out */<br>
    MPI_Finalize();<br>
    exit(*flag);<br>
  }<br>
<br>
Since the error handler is not guaranteed to be called collectively, it<br>
seems completely unreasonable to call a collective function, especially<br>
not one with broader scope than PETSC_COMM_WORLD.  It seems to me that<br>
the hopeless case should instead call MPI_Abort() on the relevant<br>
communicator.  Similarly, why does Petsc_MPI_AbortOnError() call abort()<br>
instead of MPI_Abort()?<br>
<font color="#888888"><br>
Jed<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br>

</div>