Hi, Steve, Try this branch jczhang/let-signal-handler-call-exit to see if it fixed your problem. If yes, vote for it at https://gitlab.com/petsc/petsc/-/merge_requests/2745 :)
--Junchao Zhang On Thu, Jun 4, 2020 at 3:40 PM Hudson, Stephen Tobias P via petsc-users < petsc-users@mcs.anl.gov> wrote: > Lisandro, > > I don't see an interface to set this through petsc4py. Is it possible? > > Thanks, > Steve > ------------------------------ > *From:* Hudson, Stephen Tobias P <shud...@anl.gov> > *Sent:* Thursday, June 4, 2020 2:47 PM > *To:* Balay, Satish <ba...@mcs.anl.gov> > *Cc:* petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov>; Lisandro Dalcin < > dalc...@gmail.com> > *Subject:* Re: Terminating a process running petsc via petsc4py without > mpi_abort > > Sounds good. I will have a look at how to set this through petsc4py. > > Thanks > Steve > ------------------------------ > *From:* Satish Balay <ba...@mcs.anl.gov> > *Sent:* Thursday, June 4, 2020 2:32 PM > *To:* Hudson, Stephen Tobias P <shud...@anl.gov> > *Cc:* petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov>; Lisandro Dalcin < > dalc...@gmail.com> > *Subject:* Re: Terminating a process running petsc via petsc4py without > mpi_abort > > I don't completely understand the issue here. How is sequential run > different than parallel run? > > In both cases - a PetscErrorHandler is likely getting invoked. One can > change this behavior with: > > > https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscPushErrorHandler.html > > And there are a few default error handlers to choose > > > PETSC_EXTERN PetscErrorCode PetscTraceBackErrorHandler(MPI_Comm,int,const > char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*); > PETSC_EXTERN PetscErrorCode PetscIgnoreErrorHandler(MPI_Comm,int,const > char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*); > PETSC_EXTERN PetscErrorCode > PetscEmacsClientErrorHandler(MPI_Comm,int,const char*,const > char*,PetscErrorCode,PetscErrorType,const char*,void*); > PETSC_EXTERN PetscErrorCode PetscMPIAbortErrorHandler(MPI_Comm,int,const > char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*); > PETSC_EXTERN PetscErrorCode PetscAbortErrorHandler(MPI_Comm,int,const > char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*); > PETSC_EXTERN PetscErrorCode > PetscAttachDebuggerErrorHandler(MPI_Comm,int,const char*,const > char*,PetscErrorCode,PetscErrorType,const char*,void*); > PETSC_EXTERN PetscErrorCode PetscReturnErrorHandler(MPI_Comm,int,const > char*,const char*,PetscErrorCode,PetscErrorType,const char*,void*); > > Some of the are accessible via command line option. for ex: > -on_error_abort or -on_error_mpiabort > > Or perhaps you want to completely disable error handler with: > -no_signal_handler > > cc: petsc-users > > Satish > > On Thu, 4 Jun 2020, Hudson, Stephen Tobias P wrote: > > > Satish, > > > > We are having issues caused by MPI_abort getting called when we try to > terminate a sub-process running petsc4py. Ideally we would always use a > serial build of petsc/petsc4py in this mode, but many users will have a > parallel build. We need to be able to send a terminate signal that just > kills the process. > > > > Is there a way to turn off the mpi_abort? > > > > Thanks, > > > > Steve > > > > > >