2.8. How to report bugs in Piernik?¶
I’ve found the bug!
In order to fix bugs, they must be reproducible for those poor souls that try to actually solve the problem. There are several things you can provide to make things progress faster or progress at all:
- There is a chance your bug has already been fixed. Thus, firstly update your code: svn up
- Information about revision, e.g. output of svn info for main working copy directory, env.dat file, Piernik’s runtime log etc.
- Exact steps to reproduce any given problem, including typed commands and their output.
Where the required info is stored, slightly differs with respect to category of the failure
Build failures
If you experience problems after command sequence like svn up; make obj_directory, try to compile the problem from scratch. Either call appropriate ./setup problemname -options or make obj_directory RS=1. This should fix problems with missing files or outdated dependencies.
svn info
build.log after issuing:
./setup -v ... &> build.log
obtain compiler version, e.g. call gfortran –version
Runtime failures
compile Piernik with -g and -fbacktrace/-backtrace (for gfortran and ifort respectively), preferably use provided compilers sets ifortdbg.in or gnudbg.in runtime log (usually problemname_runid_000.log, e.g. sedov_tst_000.log) full backtrace, e.g.:
Backtrace for this error:
#0 0x7FA3224DC767
#1 0x7FA3224DCD34
#2 0x7FA321C48D9F
#3 0x4A02A3 in __dataio_pub_MOD_die at dataio_pub.F90:281
#4 0x4909E0 in __domain_MOD_set_derived at domain.F90:404
#5 0x48FA07 in __domain_MOD_init_domain_container at domain.F90:547
#6 0x49410A in __domain_MOD_init_domain at domain.F90:307
#7 0x4A3DEB in init_piernik at piernik.F90:288
#8 0x4A1782 in piernik at piernik.F90:65
You may also try to run Piernik through valgrind for some additional diagnostics. Note that execution of the code in valgrind is much slower than normal. Typically this is a factor of 100x of slowdown, so try to set up really small simulations.
Python failures
Repository issues
Invalid results
- Information about last known working revision (if any)
- Runtime log or problem name along with problem.par, piernik.def, setup call
- Simple receipt how to tell right result from wrong ones