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