[petsc-users] Caught signal number 11 SEGV

Francesco Brarda brardafrancesco at gmail.com
Tue Feb 23 14:55:19 CST 2021


Thank you for the quick response. 
Sorry, you are right. Here is the complete output:

fbrarda at srvulx13:~/cmdstan-petsc$ $PETSC_DIR/$PETSC_ARCH/bin/mpirun -n 2 examples/rosenbrock/rosenbrock optimize -start_in_debugger
PETSC: Attaching gdb to examples/rosenbrock/rosenbrock of pid 47803 on display :0.0 on machine srvulx13
PETSC: Attaching gdb to examples/rosenbrock/rosenbrock of pid 47804 on display :0.0 on machine srvulx13
xterm: Xt error: Can't open display: :0.0
xterm: DISPLAY is not set
xterm: Xt error: Can't open display: :0.0
xterm: DISPLAY is not set
method = optimize
  optimize
    algorithm = lbfgs (Default)
      lbfgs
method = optimize
  optimize
    algorithm = lbfgs (Default)
      lbfgs
        init_alpha = 0.001 (Default)
        tol_obj = 9.9999999999999998e-13 (Default)
        tol_rel_obj = 10000 (Default)
        tol_grad = 1e-08 (Default)
        init_alpha = 0.001 (Default)
        tol_obj = 9.9999999999999998e-13 (Default)
        tol_rel_obj = 10000 (Default)
        tol_grad = 1e-08 (Default)
        tol_rel_grad = 10000000 (Default)
        tol_param = 1e-08 (Default)
        history_size = 5 (Default)
        tol_rel_grad = 10000000 (Default)
        tol_param = 1e-08 (Default)
        history_size = 5 (Default)
    iter = 2000 (Default)
    iter = 2000 (Default)
    save_iterations = 0 (Default)
id = 0 (Default)
data    save_iterations = 0 (Default)
id = 0 (Default)
data
  file =  (Default)

  file =  (Default)
init = 2 (Default)
random
  seed = 3585768430 (Default)
init = 2 (Default)
random
  seed = 3585768430 (Default)
output
  file = output.csv (Default)
output
  file = output.csv (Default)
  diagnostic_file =  (Default)
  refresh = 100 (Default)
  diagnostic_file =  (Default)
  refresh = 100 (Default)


Initial log joint probability = -731.444
    Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes 
[1]PETSC ERROR: PetscAbortErrorHandler: main() line 12 in src/cmdstan/main.cpp  
  To prevent termination, change the error handler using PetscPushErrorHandler()

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 47804 RUNNING AT srvulx13
=   EXIT CODE: 134
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Aborted (signal 6)
This typically refers to a problem with your application.
Please see the FAQ page for debugging suggestions





The code inside main.cpp is the following:

#include <cmdstan/command.hpp>
#include <stan/services/error_codes.hpp>

#include <petsc.h>

int main(int argc, char* argv[]) {

  PetscErrorCode ierr;
  ierr = PetscInitialize(&argc, &argv, 0, 0);CHKERRQ(ierr);

  try {
    ierr = cmdstan::command(argc, argv);CHKERRQ(ierr);
  } catch (const std::exception& e) {
    std::cout << e.what() << std::endl;
    ierr = stan::services::error_codes::SOFTWARE;CHKERRQ(ierr);
  }

  ierr = PetscFinalize();CHKERRQ(ierr);
  return ierr;
}

I highlighted the line 12. Although I read the page where the command PetscPushErrorHandler is explained and the example provided (src/ksp/ksp/tutorials/ex27.c), I do not understand how I should effectively use the command.
Should I change the entire try/catch with PetscPushErrorHandler(PetscIgnoreErrorHandler,NULL); ?

Best,
Francesco


> Il giorno 23 feb 2021, alle ore 11:54, Matthew Knepley <knepley at gmail.com> ha scritto:
> 
> On Tue, Feb 23, 2021 at 3:54 AM Francesco Brarda <brardafrancesco at gmail.com> wrote:
> Hi!
> 
> I am very new to the PETSc world. I am working with a GitHub repo that uses PETSc together with Stan (a statistics open source software), here you can find the discussion. 
> It has been defined a functor to convert EigenVector to PetscVec and viceversa, both sequentially and in parallel. 
> The file using these functions does the conversions with the sequential setting. I changed to those using MPI, that is from EigenVectorToPetscVecSeq to EigenVectorToPetscVecMPI and so on because I want to evaluate the scaling.
> Running the example with mpirun -n 5 examples/rosenbrock/rosenbrock optimize in the debug mode I get the error Caught signal number 11 SEGV. I therefore used the option -start_in_debugger and I get the following:
> 
> For some reason, the -start_in_debuggger option is not being seen. Are you showing all the output? Once the debugger is attached,
> you run the program (conr) and then when you hit the SEGV you get a stack trace (where).
> 
>   THanks,
> 
>     Matt
>  
> [2]PETSC ERROR: ------------------------------------------------------------------------
> [2]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
> [2]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
> [2]PETSC ERROR: or see https://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind
> [2]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS X to find memory corruption errors
> [2]PETSC ERROR: likely location of problem given in stack below
> [2]PETSC ERROR: ---------------------  Stack Frames ------------------------------------
> [2]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,
> [2]PETSC ERROR:       INSTEAD the line number of the start of the function
> [2]PETSC ERROR:       is given.
> [3]PETSC ERROR: ------------------------------------------------------------------------
> [3]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
> [3]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
> [3]PETSC ERROR: or see https://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind
> [3]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS X to find memory corruption errors
> [3]PETSC ERROR: likely location of problem given in stack below
> [3]PETSC ERROR: ---------------------  Stack Frames ------------------------------------
> [3]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,
> [3]PETSC ERROR:       INSTEAD the line number of the start of the function
> [3]PETSC ERROR:       is given.
> [3]PETSC ERROR: PetscAbortErrorHandler: User provided function() line 0 in  unknown file (null)
>   To prevent termination, change the error handler using PetscPushErrorHandler()
> [2]PETSC ERROR: PetscAbortErrorHandler: User provided function() line 0 in  unknown file (null)
>   To prevent termination, change the error handler using PetscPushErrorHandler()
> 
> ===================================================================================
> =   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
> =   PID 22939 RUNNING AT srvulx13
> =   EXIT CODE: 134
> =   CLEANING UP REMAINING PROCESSES
> =   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
> ===================================================================================
> YOUR APPLICATION TERMINATED WITH THE EXIT STRING: Aborted (signal 6)
> This typically refers to a problem with your application.
> Please see the FAQ page for debugging suggestions
> 
> I read the documentation regarding the PetscAbortErrorHandler, but I do not know where should I use it. How can I solve the problem? 
> I hope I have been clear enough.
> Attached you can find also my configure.log and make.log files.
> 
> Best,
> Francesco
> 
> 
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
> 
> https://www.cse.buffalo.edu/~knepley/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210223/dec8dbeb/attachment.html>


More information about the petsc-users mailing list