Hi All,

in my c++ code I've added Python binding via swig. one scenario is to pass a python function to do some computational work. the Python program runs in serial in the main thread but work is handled by a thread pool, the callback is invoked from another thread on unique data. Before a thread invokes the Python callback it acquires Python's GIL. Also I PyEval_InitThreads during module initialization, and have swig'd with -threads flag. However, I'm experiencing frequent crashes when thread pool size is greater than 1, and valgrind is reporting errors from numpy even in case where thread pool size is 1.

Here's the essence of the error reported by valgrind:

   ==10316== Invalid read of size 4
   ==10316==    at 0x4ED7D73: PyObject_Free (obmalloc.c:1013)
   ==10316==    by 0x10D540B0: NpyIter_Deallocate (nditer_constr.c:699)
   ....
   ==10316==  Address 0x20034020 is 3,856 bytes inside a block of size
   4,097 free'd
   ==10316==    at 0x4C29E00: free (vg_replace_malloc.c:530)
   ==10316==    by 0x4F57B22: import_module_level (import.c:2278)
   ==10316==    by 0x4F57B22: PyImport_ImportModuleLevel (import.c:2292)
   ==10316==    by 0x4F36597: builtin___import__ (bltinmodule.c:49)
   ==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
   ==10316==    by 0x4E89C1A: call_function_tail (abstract.c:2578)
   ==10316==    by 0x4E89C1A: PyObject_CallFunction (abstract.c:2602)
   ==10316==    by 0x4F58735: PyImport_Import (import.c:2890)
   ==10316==    by 0x4F588B9: PyImport_ImportModule (import.c:2133)
   ==10316==    by 0x10D334C2: get_forwarding_ndarray_method (methods.c:57)
   ==10316==    by 0x10D372C0: array_mean (methods.c:1932)
   ==10316==    by 0x4F40AC7: call_function (ceval.c:4350)

There are a few of these reported. I'll attach the full output. This is from the simplest scenario, where the thread pool has a size of 1. Although there are 2 threads, the program is serial as the main thread passes work tasks to the thread pool and waits for work to finish.

Here is the work function where above occurs:

   def execute(port, data_in, req):
        sys.stderr.write('descriptive_stats::execute MPI %d\n'%(rank))

        mesh = as_teca_cartesian_mesh(data_in[0])

        table = teca_table.New()
        table.declare_columns(['step','time'], ['ul','d'])
        table << mesh.get_time_step() << mesh.get_time()

        for var_name in var_names:

            table.declare_columns(['min '+var_name, 'avg '+var_name, \
                'max '+var_name, 'std '+var_name, 'low_q '+var_name, \
                'med '+var_name, 'up_q '+var_name], ['d']*7)

            var = mesh.get_point_arrays().get(var_name).as_array()

            table << float(np.min(var)) << float(np.average(var)) \
                << float(np.max(var)) << float(np.std(var)) \
                << map(float, np.percentile(var, [25.,50.,75.]))

        return table

Again, I'm acquiring the GIL so this should be executed in serial. What am I doing wrong? Have I missed some key aspect of using numpy in this scenario? Any documentation on using numpy in a scenario like this? Any help is greatly appreciated!

Thanks
Burlen

==10316== Thread 2:
==10316== Invalid read of size 4
==10316==    at 0x4ED7D73: PyObject_Free (obmalloc.c:1013)
==10316==    by 0x10D540B0: NpyIter_Deallocate (nditer_constr.c:699)
==10316==    by 0x112B01EE: iterator_loop (ufunc_object.c:1511)
==10316==    by 0x112B01EE: execute_legacy_ufunc_loop (ufunc_object.c:1660)
==10316==    by 0x112B01EE: PyUFunc_GenericFunction (ufunc_object.c:2627)
==10316==    by 0x112B0D95: ufunc_generic_call (ufunc_object.c:4253)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F3E009: do_call (ceval.c:4568)
==10316==    by 0x4F3E009: call_function (ceval.c:4373)
==10316==    by 0x4F3E009: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: 
teca_py_algorithm::execute_callback::operator()(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset 
const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, 
unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> 
(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset 
const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, 
teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: 
teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, 
unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() 
(teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: 
_ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_
 (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type 
std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> 
std::_Bind_simple<std::reference_wrapper<teca_data_request> 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() 
(functional:1520)
==10316==    by 0xFB0200D: 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: 
std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> (), 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) 
(functional:1857)
==10316==    by 0xFAF8FBC: 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>::operator()() const 
(functional:2271)
==10316==    by 0xFAF8374: 
std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*, 
void>(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const 
(functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 
2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() 
(functional:1520)
==10316==    by 0xFAF9CF9: void 
std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void 
(std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*&&, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: 
std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, 
std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() 
(future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset 
const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: 
std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316==  Address 0x20034020 is 3,856 bytes inside a block of size 4,097 free'd
==10316==    at 0x4C29E00: free (vg_replace_malloc.c:530)
==10316==    by 0x4F57B22: import_module_level (import.c:2278)
==10316==    by 0x4F57B22: PyImport_ImportModuleLevel (import.c:2292)
==10316==    by 0x4F36597: builtin___import__ (bltinmodule.c:49)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4E89C1A: call_function_tail (abstract.c:2578)
==10316==    by 0x4E89C1A: PyObject_CallFunction (abstract.c:2602)
==10316==    by 0x4F58735: PyImport_Import (import.c:2890)
==10316==    by 0x4F588B9: PyImport_ImportModule (import.c:2133)
==10316==    by 0x10D334C2: get_forwarding_ndarray_method (methods.c:57)
==10316==    by 0x10D372C0: array_mean (methods.c:1932)
==10316==    by 0x4F40AC7: call_function (ceval.c:4350)
==10316==    by 0x4F40AC7: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: 
teca_py_algorithm::execute_callback::operator()(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset 
const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, 
unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> 
(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset 
const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, 
teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: 
teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, 
unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() 
(teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: 
_ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_
 (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type 
std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> 
std::_Bind_simple<std::reference_wrapper<teca_data_request> 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() 
(functional:1520)
==10316==    by 0xFB0200D: 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: 
std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> (), 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) 
(functional:1857)
==10316==    by 0xFAF8FBC: 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>::operator()() const 
(functional:2271)
==10316==    by 0xFAF8374: 
std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*, 
void>(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const 
(functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 
2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() 
(functional:1520)
==10316==    by 0xFAF9CF9: void 
std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void 
(std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*&&, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: 
std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, 
std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() 
(future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset 
const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: 
std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316==  Block was alloc'd at
==10316==    at 0x4C28D06: malloc (vg_replace_malloc.c:299)
==10316==    by 0x4F57800: import_module_level (import.c:2220)
==10316==    by 0x4F57800: PyImport_ImportModuleLevel (import.c:2292)
==10316==    by 0x4F36597: builtin___import__ (bltinmodule.c:49)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4E89C1A: call_function_tail (abstract.c:2578)
==10316==    by 0x4E89C1A: PyObject_CallFunction (abstract.c:2602)
==10316==    by 0x4F58735: PyImport_Import (import.c:2890)
==10316==    by 0x4F588B9: PyImport_ImportModule (import.c:2133)
==10316==    by 0x10D334C2: get_forwarding_ndarray_method (methods.c:57)
==10316==    by 0x10D372C0: array_mean (methods.c:1932)
==10316==    by 0x4F40AC7: call_function (ceval.c:4350)
==10316==    by 0x4F40AC7: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: 
teca_py_algorithm::execute_callback::operator()(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset 
const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, 
unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> 
(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset 
const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, 
teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: 
teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, 
unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() 
(teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: 
_ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_
 (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type 
std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> 
std::_Bind_simple<std::reference_wrapper<teca_data_request> 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() 
(functional:1520)
==10316==    by 0xFB0200D: 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: 
std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> (), 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) 
(functional:1857)
==10316==    by 0xFAF8FBC: 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>::operator()() const 
(functional:2271)
==10316==    by 0xFAF8374: 
std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*, 
void>(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const 
(functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 
2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() 
(functional:1520)
==10316==    by 0xFAF9CF9: void 
std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void 
(std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*&&, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: 
std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, 
std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() 
(future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset 
const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: 
std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316== 
==10316== Conditional jump or move depends on uninitialised value(s)
==10316==    at 0x4ED7D7C: PyObject_Free (obmalloc.c:1013)
==10316==    by 0x10D540B0: NpyIter_Deallocate (nditer_constr.c:699)
==10316==    by 0x112B01EE: iterator_loop (ufunc_object.c:1511)
==10316==    by 0x112B01EE: execute_legacy_ufunc_loop (ufunc_object.c:1660)
==10316==    by 0x112B01EE: PyUFunc_GenericFunction (ufunc_object.c:2627)
==10316==    by 0x112B0D95: ufunc_generic_call (ufunc_object.c:4253)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F3E009: do_call (ceval.c:4568)
==10316==    by 0x4F3E009: call_function (ceval.c:4373)
==10316==    by 0x4F3E009: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: 
teca_py_algorithm::execute_callback::operator()(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset 
const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, 
unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> 
(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset 
const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, 
teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: 
teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, 
unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() 
(teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: 
_ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_
 (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type 
std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> 
std::_Bind_simple<std::reference_wrapper<teca_data_request> 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() 
(functional:1520)
==10316==    by 0xFB0200D: 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: 
std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> (), 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) 
(functional:1857)
==10316==    by 0xFAF8FBC: 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>::operator()() const 
(functional:2271)
==10316==    by 0xFAF8374: 
std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*, 
void>(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const 
(functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 
2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() 
(functional:1520)
==10316==    by 0xFAF9CF9: void 
std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void 
(std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*&&, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: 
std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, 
std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() 
(future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset 
const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: 
std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316==  Uninitialised value was created by a heap allocation
==10316==    at 0x4C29326: operator new(unsigned long) (vg_replace_malloc.c:334)
==10316==    by 0x1E913C79: 
__gnu_cxx::new_allocator<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void 
const*) (new_allocator.h:104)
==10316==    by 0x1E900B2B: 
std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > > 
>::allocate(std::allocator<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >&, unsigned long) 
(alloc_traits.h:360)
==10316==    by 0x1E8EDA41: std::_Vector_base<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > > >::_M_allocate(unsigned long) (stl_vector.h:170)
==10316==    by 0x1E90C4B7: void std::vector<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > > >::_M_emplace_back_aux<char const*&>(char const*&) 
(vector.tcc:412)
==10316==    by 0x1E8F7C46: void std::vector<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > > >::emplace_back<char const*&>(char const*&) 
(vector.tcc:101)
==10316==    by 0x1E8E250C: void teca_array_collection::declare<char const*&, 
double>(char const*&, double) (teca_array_collection.h:126)
==10316==    by 0x1E8C0729: void teca_table::declare_column<char const*&, 
double>(char const*&, double) (teca_table.h:153)
==10316==    by 0x1E7C92D6: teca_table_declare_column(teca_table*, char const*, 
char const*) (teca_py_alg.cxx:7651)
==10316==    by 0x1E7C9506: teca_table_declare_columns(teca_table*, _object*, 
_object*) (teca_py_alg.cxx:7704)
==10316==    by 0x1E86E072: _wrap_teca_table_declare_columns 
(teca_py_alg.cxx:59491)
==10316==    by 0x4F40AC7: call_function (ceval.c:4350)
==10316==    by 0x4F40AC7: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F3E4F9: fast_function (ceval.c:4436)
==10316==    by 0x4F3E4F9: call_function (ceval.c:4371)
==10316==    by 0x4F3E4F9: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: 
teca_py_algorithm::execute_callback::operator()(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset 
const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, 
unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> 
(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset 
const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, 
teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: 
teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, 
unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() 
(teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: 
_ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_
 (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type 
std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> 
std::_Bind_simple<std::reference_wrapper<teca_data_request> 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() 
(functional:1520)
==10316==    by 0xFB0200D: 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: 
std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> (), 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) 
(functional:1857)
==10316==    by 0xFAF8FBC: 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>::operator()() const 
(functional:2271)
==10316==    by 0xFAF8374: 
std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*, 
void>(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const 
(functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 
2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() 
(functional:1520)
==10316==    by 0xFAF9CF9: void 
std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void 
(std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*&&, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: 
std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, 
std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() 
(future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset 
const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: 
std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316== 
==10316== Use of uninitialised value of size 8
==10316==    at 0x4ED7D94: PyObject_Free (obmalloc.c:1013)
==10316==    by 0x10D540B0: NpyIter_Deallocate (nditer_constr.c:699)
==10316==    by 0x112B01EE: iterator_loop (ufunc_object.c:1511)
==10316==    by 0x112B01EE: execute_legacy_ufunc_loop (ufunc_object.c:1660)
==10316==    by 0x112B01EE: PyUFunc_GenericFunction (ufunc_object.c:2627)
==10316==    by 0x112B0D95: ufunc_generic_call (ufunc_object.c:4253)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F3E009: do_call (ceval.c:4568)
==10316==    by 0x4F3E009: call_function (ceval.c:4373)
==10316==    by 0x4F3E009: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4F3E3DE: fast_function (ceval.c:4446)
==10316==    by 0x4F3E3DE: call_function (ceval.c:4371)
==10316==    by 0x4F3E3DE: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: 
teca_py_algorithm::execute_callback::operator()(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset 
const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, 
unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> 
(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset 
const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, 
teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: 
teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, 
unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() 
(teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: 
_ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_
 (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type 
std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> 
std::_Bind_simple<std::reference_wrapper<teca_data_request> 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() 
(functional:1520)
==10316==    by 0xFB0200D: 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: 
std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> (), 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) 
(functional:1857)
==10316==    by 0xFAF8FBC: 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>::operator()() const 
(functional:2271)
==10316==    by 0xFAF8374: 
std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*, 
void>(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const 
(functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 
2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() 
(functional:1520)
==10316==    by 0xFAF9CF9: void 
std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void 
(std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*&&, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: 
std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, 
std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() 
(future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset 
const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: 
std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
==10316==  Uninitialised value was created by a heap allocation
==10316==    at 0x4C29326: operator new(unsigned long) (vg_replace_malloc.c:334)
==10316==    by 0x1E913C79: 
__gnu_cxx::new_allocator<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void 
const*) (new_allocator.h:104)
==10316==    by 0x1E900B2B: 
std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > > 
>::allocate(std::allocator<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >&, unsigned long) 
(alloc_traits.h:360)
==10316==    by 0x1E8EDA41: std::_Vector_base<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > > >::_M_allocate(unsigned long) (stl_vector.h:170)
==10316==    by 0x1E90C4B7: void std::vector<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > > >::_M_emplace_back_aux<char const*&>(char const*&) 
(vector.tcc:412)
==10316==    by 0x1E8F7C46: void std::vector<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > > >::emplace_back<char const*&>(char const*&) 
(vector.tcc:101)
==10316==    by 0x1E8E250C: void teca_array_collection::declare<char const*&, 
double>(char const*&, double) (teca_array_collection.h:126)
==10316==    by 0x1E8C0729: void teca_table::declare_column<char const*&, 
double>(char const*&, double) (teca_table.h:153)
==10316==    by 0x1E7C92D6: teca_table_declare_column(teca_table*, char const*, 
char const*) (teca_py_alg.cxx:7651)
==10316==    by 0x1E7C9506: teca_table_declare_columns(teca_table*, _object*, 
_object*) (teca_py_alg.cxx:7704)
==10316==    by 0x1E86E072: _wrap_teca_table_declare_columns 
(teca_py_alg.cxx:59491)
==10316==    by 0x4F40AC7: call_function (ceval.c:4350)
==10316==    by 0x4F40AC7: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F3E4F9: fast_function (ceval.c:4436)
==10316==    by 0x4F3E4F9: call_function (ceval.c:4371)
==10316==    by 0x4F3E4F9: PyEval_EvalFrameEx (ceval.c:2987)
==10316==    by 0x4F41F9B: PyEval_EvalCodeEx (ceval.c:3582)
==10316==    by 0x4EBA5DB: function_call (funcobject.c:526)
==10316==    by 0x4E89AC2: PyObject_Call (abstract.c:2546)
==10316==    by 0x4F38096: PyEval_CallObjectWithKeywords (ceval.c:4219)
==10316==    by 0x1E8A088A: 
teca_py_algorithm::execute_callback::operator()(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_py_algorithm.h:279)
==10316==    by 0x1E8E2BDC: std::_Function_handler<std::shared_ptr<teca_dataset 
const> (unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&), teca_py_algorithm::execute_callback>::_M_invoke(std::_Any_data const&, 
unsigned int&&, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (functional:1857)
==10316==    by 0x1EE1046A: std::function<std::shared_ptr<teca_dataset const> 
(unsigned int, std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&)>::operator()(unsigned int, std::vector<std::shared_ptr<teca_dataset 
const>, std::allocator<std::shared_ptr<teca_dataset const> > > const&, 
teca_metadata const&) const (functional:2271)
==10316==    by 0x1EE0F51A: teca_programmable_algorithm::execute(unsigned int, 
std::vector<std::shared_ptr<teca_dataset const>, 
std::allocator<std::shared_ptr<teca_dataset const> > > const&, teca_metadata 
const&) (teca_programmable_algorithm.cxx:103)
==10316==    by 0xFAB96A4: 
teca_algorithm::request_data(std::pair<std::shared_ptr<teca_algorithm>, 
unsigned int>&, teca_metadata const&) (teca_algorithm.cxx:627)
==10316==    by 0xFAF854D: teca_data_request::operator()() 
(teca_threaded_algorithm.cxx:43)
==10316==    by 0xFB02975: 
_ZSt8__invokeI17teca_data_requestIEENSt9enable_ifIXaaaantsrSt17is_member_pointerIT_E5valuentsrSt11is_functionIS3_E5valuentsrS5_INSt14remove_pointerIS3_E4typeEE5valueENSt9result_ofIFRS3_DpOT0_EE4typeEE4typeESC_SF_
 (functional:201)
==10316==    by 0xFB02721: std::result_of<teca_data_request& ()>::type 
std::reference_wrapper<teca_data_request>::operator()<>() const (functional:428)
==10316==    by 0xFB02561: std::shared_ptr<teca_dataset const> 
std::_Bind_simple<std::reference_wrapper<teca_data_request> 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFB022EF: 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>::operator()() 
(functional:1520)
==10316==    by 0xFB0200D: 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> >::operator()() const (future:1319)
==10316==    by 0xFB01CEE: 
std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> (), 
std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<std::shared_ptr<teca_dataset
 const> >, std::__future_base::_Result_base::_Deleter>, 
std::_Bind_simple<std::reference_wrapper<teca_data_request> ()>, 
std::shared_ptr<teca_dataset const> > >::_M_invoke(std::_Any_data const&) 
(functional:1857)
==10316==    by 0xFAF8FBC: 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>::operator()() const 
(functional:2271)
==10316==    by 0xFAF8374: 
std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*) (future:527)
==10316==    by 0xFAFD50D: void std::_Mem_fn_base<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*, 
void>(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const 
(functional:600)
==10316==    by 0xFAFC4F4: void std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 
2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1531)
==10316==    by 0xFAFB102: std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() 
(functional:1520)
==10316==    by 0xFAF9CF9: void 
std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*)> 
(std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() (mutex:697)
==10316==    by 0x52480E8: __pthread_once_slow (pthread_once.c:116)
==10316==    by 0xFAF55D8: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==10316==    by 0xFAF8BB5: void std::call_once<void 
(std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void 
(std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>*, bool*), 
std::__future_base::_State_baseV2*&&, 
std::function<std::unique_ptr<std::__future_base::_Result_base, 
std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (mutex:729)
==10316==    by 0xFAF7F10: 
std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base,
 std::__future_base::_Result_base::_Deleter> ()>, bool) (future:387)
==10316==    by 0xFB00E53: std::__future_base::_Task_state<teca_data_request, 
std::allocator<int>, std::shared_ptr<teca_dataset const> ()>::_M_run() 
(future:1403)
==10316==    by 0xFAF95CC: std::packaged_task<std::shared_ptr<teca_dataset 
const> ()>::operator()() (future:1547)
==10316==    by 0xFAF5926: teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1}::operator()() const (teca_threaded_algorithm.cxx:123)
==10316==    by 0xFAF76ED: void 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::_M_invoke<>(std::_Index_tuple<>) (functional:1531)
==10316==    by 0xFAF7656: 
std::_Bind_simple<teca_thread_pool::create_threads(unsigned int)::{lambda()#1} 
()>::operator()() (functional:1520)
==10316==    by 0xFAF7593: 
std::thread::_Impl<std::_Bind_simple<teca_thread_pool::create_threads(unsigned 
int)::{lambda()#1} ()> >::_M_run() (thread:115)
==10316==    by 0x1030AF2F: ??? (in /usr/lib64/libstdc++.so.6.0.21)
==10316==    by 0x5241609: start_thread (pthread_create.c:334)
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to