Lawrence,

So I have implemented PETSc into the PYOP2 kernel, but I am sometimes getting strange errors.

Attached is the working code plus the reactions kernel file.

Run the code by typing "python 1D_analytical_ADR_ex1.py <seed> <0/1> <0/1>". The last option is for using either Newtons Method (0) or Variational Inequality (1).

The reason my errors are strange is because it only happens sometimes. Sometimes I get errors like this:

python(11976,0x7fff7497a000) malloc: *** error for object 0x7fbb4b5e8ef0: incorrect checksum for freed object - object was probably modified after being freed.

*** set a breakpoint in malloc_error_break to debug

[Justins-MBP:11976] *** Process received signal ***

[Justins-MBP:11976] Signal: Abort trap: 6 (6)

[Justins-MBP:11976] Signal code:  (0)

[Justins-MBP:11976] [ 0] 0   libsystem_platform.dylib            0x00007fff94c5452a _sigtramp + 26

[Justins-MBP:11976] [ 1] 0   ???                                 0x0000000000000000 0x0 + 0

[Justins-MBP:11976] [ 2] 0   libsystem_c.dylib                   0x00007fff946f937b abort + 129

[Justins-MBP:11976] [ 3] 0   libsystem_malloc.dylib              0x00007fff9502b3a6 szone_error + 626

[Justins-MBP:11976] [ 4] 0   libsystem_malloc.dylib              0x00007fff95021604 tiny_free_list_remove_ptr + 289

[Justins-MBP:11976] [ 5] 0   libsystem_malloc.dylib              0x00007fff9501f956 szone_free_definite_size + 1480

[Justins-MBP:11976] [ 6] 0   Python                              0x000000010228f236 dict_dealloc + 154

[Justins-MBP:11976] [ 7] 0   Python                              0x00000001022af3f2 subtype_dealloc + 481

[Justins-MBP:11976] [ 8] 0   Python                              0x00000001022859c5 list_dealloc + 105

[Justins-MBP:11976] [ 9] 0   Python                              0x0000000102280216 frame_dealloc + 110

[Justins-MBP:11976] [10] 0   Python                              0x00000001022dd1c4 PyEval_EvalCodeEx + 1915

[Justins-MBP:11976] [11] 0   Python                              0x00000001022e3640 fast_function + 117

[Justins-MBP:11976] [12] 0   Python                              0x00000001022e0553 PyEval_EvalFrameEx + 13165

[Justins-MBP:11976] [13] 0   Python                              0x00000001022dcfb4 PyEval_EvalCodeEx + 1387

[Justins-MBP:11976] [14] 0   Python                              0x0000000102281bf5 function_call + 352

[Justins-MBP:11976] [15] 0   Python                              0x0000000102263ad7 PyObject_Call + 99

[Justins-MBP:11976] [16] 0   Python                              0x0000000102263c65 call_function_tail + 72

[Justins-MBP:11976] [17] 0   Python                              0x0000000102263c06 PyObject_CallFunction + 196

[Justins-MBP:11976] [18] 0   Python                              0x0000000102294755 _PyObject_GenericGetAttrWithDict + 219

[Justins-MBP:11976] [19] 0   Python                              0x00000001022df15d PyEval_EvalFrameEx + 8055

[Justins-MBP:11976] [20] 0   Python                              0x00000001022dcfb4 PyEval_EvalCodeEx + 1387

[Justins-MBP:11976] [21] 0   Python                              0x0000000102281bf5 function_call + 352

[Justins-MBP:11976] [22] 0   Python                              0x0000000102263ad7 PyObject_Call + 99

[Justins-MBP:11976] [23] 0   Python                              0x0000000102263c65 call_function_tail + 72

[Justins-MBP:11976] [24] 0   Python                              0x0000000102263c06 PyObject_CallFunction + 196

[Justins-MBP:11976] [25] 0   Python                              0x0000000102294755 _PyObject_GenericGetAttrWithDict + 219

[Justins-MBP:11976] [26] 0   Python                              0x00000001022df15d PyEval_EvalFrameEx + 8055

[Justins-MBP:11976] [27] 0   Python                              0x00000001022dcfb4 PyEval_EvalCodeEx + 1387

[Justins-MBP:11976] [28] 0   Python                              0x0000000102281bf5 function_call + 352

[Justins-MBP:11976] [29] 0   Python                              0x0000000102263ad7 PyObject_Call + 99

[Justins-MBP:11976] *** End of error message ***

[1]    11976 abort      python 1D_analytical_ADR_ex1.py 100 0 1


Other times I get errors like this:

[0]PETSC ERROR: ------------------------------------------------------------------------

[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range

[0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger

[0]PETSC ERROR: or see http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind

[0]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS X to find memory corruption errors

[0]PETSC ERROR: configure using --with-debugging=yes, recompile, link, and run 

[0]PETSC ERROR: to get more information on the crash.

--------------------------------------------------------------------------

MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD 

with errorcode 59.


NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.

You may or may not see output from other processes, depending on

exactly when Open MPI kills them.

--------------------------------------------------------------------------


I am confused  as to why these errors occur randomly, even if I use the same input arguments. I suspect it has sometime to do with how I have implemented PETSc within PYOP2. Can you tell what is going on?

Thanks,
Justin