[petsc-dev] error messages

Barry Smith bsmith at mcs.anl.gov
Sun Feb 23 10:25:19 CST 2014


On Feb 22, 2014, at 11:10 PM, Jed Brown <jed at jedbrown.org> wrote:

> Patrick Sanan <patrick.sanan at gmail.com> writes:
>> could (without MPI_abort messages) look more like this:
>> 
>> [0]PETSC ERR: --------------------------------- PETSc Error -------------------------- 
>> [0]PETSC ERR: See docs/troubleshooting.html for hints about trouble shooting.
>> [0]PETSC ERR: ------------------------------------------------------------------------
>> [0]PETSC ERR: Petsc Release Version 3.4.2, Jul, 02, 2013 
>> [0]PETSC ERR: ./ex1 on a arch-darwin-c-debug named Patricks-MacBook-Pro.local by patricksanan Thu Feb 13 09:48:59 2014
>> [0]PETSC ERR: Libraries linked from /Users/patricksanan/program/petsc-3.4.2/arch-darwin-c-debug/lib
>> [0]PETSC ERR: Configure run at Mon Jul 15 11:19:14 2013 
>> [0]PETSC ERR: Configure options --download-mpich --download-f-blas-laplack --cc-gcc --with-fc=/usr/local/bin/gfortran
>> [0]PETSC ERR: ------------------------------------------------------------------------
>> [0]PETSC ERR: Object is in wrong state!
>> [0]PETSC ERR: Vec object's type is not set: Argument # 1!
>> [0]PETSC ERR: VecDuplicate() line 513 in /Users/patricksanan/program/petsc-3.4.2/src/vec/vec/interface/vector.c
>> [0]PETSC ERR: main() line 56 in src/ksp/ksp/examples/tutorials/ex1.c
>> [0]PETSC ERR: ----------------------- End of PETSc Error -----------------------------
> 
> Thanks for your analysis.
> 
> The configure options can be really long (spilling over several lines),
> so wherever it goes will be visual clutter.  Also, non-collective error
> conditions reached in parallel usually produces a jumble of information
> From each process.

   We should try to update any SETERRQ() calls in the code to use the collective MPI_Comm when possible, this was a recent feature and people may be using MPI_COMM_SELF when they needn't

>  The first few lines are more likely to make it
> through unjumbled from the process that first hit the condition, so it
> would be valuable to make it as helpful as possible.
> 
> I think a single link to a website is better than directing someone to
> an html file in some subdirectory (might not be where they are now).

   Note some error number messages already contain a specific weblink which is printed on the first line, (with an unneeded new line) we could make all the other ones point to a generic error help thing like troubleshooting. 

> Perhaps the following is too compact, but I think it gets the
> information out in a small number of lines and doesn't have a visual
> delineation to end selection for copy/paste.
> 

    I’d like to keep the start and end lines to make the error message standout especially since MPI spews all kind of crap 

>> [0]PETSC ERR: --------------------------------- PETSc Error ————————————— 

>> [0]PETSC ERR: ----------------------- End of PETSc Error -----------------------------


> 
> 
> [0]PETSC ERR: Object is in wrong state!  See http://www.mcs.anl.gov/petsc/errors/
> [0]PETSC ERR: Vec object's type is not set: Argument # 1!
> [0]PETSC ERR: #0 VecDuplicate() line 513 in /Users/patricksanan/program/petsc-3.4.2/src/vec/vec/interface/vector.c
> [0]PETSC ERR: #1 main() line 56 in src/ksp/ksp/examples/tutorials/ex1.c
> [0]PETSC ERR: ./ex1 on a arch-darwin-c-debug named Patricks-MacBook-Pro.local by patricksanan 2014-02-13 09:48:59-08:00
> [0]PETSC ERR: Libraries linked from /Users/patricksanan/program/petsc-3.4.2/arch-darwin-c-debug/lib
> [0]PETSC ERR: Petsc Release Version 3.4.2 configured on 2013-07-15 11:19:14-06:00
> [0]PETSC ERR: Configure options --download-mpich --download-f-blas-laplack --cc-gcc --with-fc=/usr/local/bin/gfortran
> 
> 
> I think that numbering the stack (similar to gdb) is useful for
> interpreting jumbled lines, and it should provide enough delineation to
> interpret.  I think having the stack near the "what's wrong" is
> important since it is most likely to provide the information for solving
> the problem.




More information about the petsc-dev mailing list