Re: [Dclib-devel] Invalid read of size 1
Brought to you by:
davisking
From: Davis K. <dav...@us...> - 2009-06-23 11:16:56
|
Are you calling wait() inside the destructor for the object you have that inherits from threaded_object? Not doing that might be the reason. -Davis On Tue, Jun 23, 2009 at 2:22 AM, Steven Van Ingelgem <st...@va...>wrote: > I think this is because the object is deleted, but somehow it is still > reading from it... Can that be? I don't delete threads from anywhere... > > ==06:20:12:05.257 26069== > ==06:20:12:05.257 26069== 2 errors in context 10 of 41: > ==06:20:12:05.257 26069== Invalid read of size 1 > ==06:20:12:05.257 26069== at 0x80DDA93: > dlib::threaded_object::should_stop() const > (threaded_object_extension.cpp:169) > ==06:20:12:05.257 26069== by 0x80D230C: ProbePoolHelper::thread() > (ProbePool.cpp:33) > ==06:20:12:05.257 26069== by 0x80E5043: > dlib::threaded_object::thread_helper() (threaded_object_extension.cpp:183) > ==06:20:12:05.257 26069== by 0x80F37CC: void > dlib::dlib_create_new_thread_helper<dlib::threaded_object, > &(dlib::threaded_object::thread_helper())>(void*) > (create_new_thread_extension.h:24) > ==06:20:12:05.257 26069== by 0x80E5171: > dlib::threads_kernel_shared::thread_starter(void*) > (threads_kernel_shared.cpp:231) > ==06:20:12:05.257 26069== by 0x80E5DC8: > dlib::threads_kernel_shared_helpers::thread_starter(void*) > (threads_kernel_2.cpp:39) > ==06:20:12:05.257 26069== by 0x29849A: start_thread (in /lib/ > libpthread-2.5.so) > ==06:20:12:05.257 26069== by 0x21842D: clone (in /lib/libc-2.5.so) > ==06:20:12:05.257 26069== Address 0x41A6E2A is 90 bytes inside a block of > size 104 free'd > ==06:20:12:05.257 26069== at 0x4004CF1: operator delete(void*) > (vg_replace_malloc.c:244) > ==06:20:12:05.257 26069== by 0x80D238A: > ProbePoolHelper::~ProbePoolHelper() (ProbePool.cpp:13) > ==06:20:12:05.257 26069== by 0x80D1CE7: > dlib::shared_ptr<ProbePoolHelper>::~shared_ptr() (shared_ptr.h:187) > ==06:20:12:05.257 26069== by 0x80D1D3A: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper> > >(dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:107) > ==06:20:12:05.257 26069== by 0x80D1D50: void > std::__destroy_aux<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, __false_type) (stl_construct.h:122) > ==06:20:12:05.257 26069== by 0x80D1D7F: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:155) > ==06:20:12:05.257 26069== by 0x80D1D99: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper> >(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, std::allocator<dlib::shared_ptr< > ProbePoolHelper> >) (stl_construct.h:182) > ==06:20:12:05.257 26069== by 0x80D2020: > std::vector<dlib::shared_ptr<ProbePoolHelper>, > std::allocator<dlib::shared_ptr<ProbePoolHelper> > >::~vector() > (stl_vector.h:272) > ==06:20:12:05.257 26069== by 0x80D144E: ProbePool::~ProbePool() > (ProbePool.cpp:68) > ==06:20:12:05.258 26069== by 0x80C3177: main (main.cpp:61) > ==06:20:12:05.258 26069== > ==06:20:12:05.258 26069== 2 errors in context 11 of 41: > ==06:20:12:05.258 26069== Invalid read of size 1 > ==06:20:12:05.258 26069== at 0x80DDA88: > dlib::threaded_object::should_stop() const > (threaded_object_extension.cpp:167) > ==06:20:12:05.258 26069== by 0x80D230C: ProbePoolHelper::thread() > (ProbePool.cpp:33) > ==06:20:12:05.258 26069== by 0x80E5043: > dlib::threaded_object::thread_helper() (threaded_object_extension.cpp:183) > ==06:20:12:05.258 26069== by 0x80F37CC: void > dlib::dlib_create_new_thread_helper<dlib::threaded_object, > &(dlib::threaded_object::thread_helper())>(void*) > (create_new_thread_extension.h:24) > ==06:20:12:05.258 26069== by 0x80E5171: > dlib::threads_kernel_shared::thread_starter(void*) > (threads_kernel_shared.cpp:231) > ==06:20:12:05.258 26069== by 0x80E5DC8: > dlib::threads_kernel_shared_helpers::thread_starter(void*) > (threads_kernel_2.cpp:39) > ==06:20:12:05.258 26069== by 0x29849A: start_thread (in /lib/ > libpthread-2.5.so) > ==06:20:12:05.258 26069== by 0x21842D: clone (in /lib/libc-2.5.so) > ==06:20:12:05.258 26069== Address 0x41A6E2A is 90 bytes inside a block of > size 104 free'd > ==06:20:12:05.258 26069== at 0x4004CF1: operator delete(void*) > (vg_replace_malloc.c:244) > ==06:20:12:05.258 26069== by 0x80D238A: > ProbePoolHelper::~ProbePoolHelper() (ProbePool.cpp:13) > ==06:20:12:05.258 26069== by 0x80D1CE7: > dlib::shared_ptr<ProbePoolHelper>::~shared_ptr() (shared_ptr.h:187) > ==06:20:12:05.258 26069== by 0x80D1D3A: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper> > >(dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:107) > ==06:20:12:05.258 26069== by 0x80D1D50: void > std::__destroy_aux<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, __false_type) (stl_construct.h:122) > ==06:20:12:05.258 26069== by 0x80D1D7F: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:155) > ==06:20:12:05.258 26069== by 0x80D1D99: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper> >(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, std::allocator<dlib::shared_ptr< > ProbePoolHelper> >) (stl_construct.h:182) > ==06:20:12:05.258 26069== by 0x80D2020: > std::vector<dlib::shared_ptr<ProbePoolHelper>, > std::allocator<dlib::shared_ptr<ProbePoolHelper> > >::~vector() > (stl_vector.h:272) > ==06:20:12:05.258 26069== by 0x80D144E: ProbePool::~ProbePool() > (ProbePool.cpp:68) > ==06:20:12:05.258 26069== by 0x80C3177: main (main.cpp:61) > ==06:20:12:05.258 26069== > ==06:20:12:05.258 26069== 2 errors in context 12 of 41: > ==06:20:12:05.258 26069== Invalid read of size 1 > ==06:20:12:05.258 26069== at 0x80DDA7D: > dlib::threaded_object::should_stop() const > (threaded_object_extension.cpp:167) > ==06:20:12:05.258 26069== by 0x80D230C: ProbePoolHelper::thread() > (ProbePool.cpp:33) > ==06:20:12:05.258 26069== by 0x80E5043: > dlib::threaded_object::thread_helper() (threaded_object_extension.cpp:183) > ==06:20:12:05.259 26069== by 0x80F37CC: void > dlib::dlib_create_new_thread_helper<dlib::threaded_object, > &(dlib::threaded_object::thread_helper())>(void*) > (create_new_thread_extension.h:24) > ==06:20:12:05.259 26069== by 0x80E5171: > dlib::threads_kernel_shared::thread_starter(void*) > (threads_kernel_shared.cpp:231) > ==06:20:12:05.259 26069== by 0x80E5DC8: > dlib::threads_kernel_shared_helpers::thread_starter(void*) > (threads_kernel_2.cpp:39) > ==06:20:12:05.259 26069== by 0x29849A: start_thread (in /lib/ > libpthread-2.5.so) > ==06:20:12:05.259 26069== by 0x21842D: clone (in /lib/libc-2.5.so) > ==06:20:12:05.259 26069== Address 0x41A6E28 is 88 bytes inside a block of > size 104 free'd > ==06:20:12:05.259 26069== at 0x4004CF1: operator delete(void*) > (vg_replace_malloc.c:244) > ==06:20:12:05.259 26069== by 0x80D238A: > ProbePoolHelper::~ProbePoolHelper() (ProbePool.cpp:13) > ==06:20:12:05.259 26069== by 0x80D1CE7: > dlib::shared_ptr<ProbePoolHelper>::~shared_ptr() (shared_ptr.h:187) > ==06:20:12:05.259 26069== by 0x80D1D3A: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper> > >(dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:107) > ==06:20:12:05.259 26069== by 0x80D1D50: void > std::__destroy_aux<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, __false_type) (stl_construct.h:122) > ==06:20:12:05.259 26069== by 0x80D1D7F: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:155) > ==06:20:12:05.259 26069== by 0x80D1D99: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper> >(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, std::allocator<dlib::shared_ptr< > ProbePoolHelper> >) (stl_construct.h:182) > ==06:20:12:05.259 26069== by 0x80D2020: > std::vector<dlib::shared_ptr<ProbePoolHelper>, > std::allocator<dlib::shared_ptr<ProbePoolHelper> > >::~vector() > (stl_vector.h:272) > ==06:20:12:05.259 26069== by 0x80D144E: ProbePool::~ProbePool() > (ProbePool.cpp:68) > ==06:20:12:05.259 26069== by 0x80C3177: main (main.cpp:61) > ==06:20:12:05.259 26069== > ==06:20:12:05.259 26069== 2 errors in context 13 of 41: > ==06:20:12:05.259 26069== Invalid read of size 1 > ==06:20:12:05.259 26069== at 0x80DDA93: > dlib::threaded_object::should_stop() const > (threaded_object_extension.cpp:169) > ==06:20:12:05.259 26069== by 0x80D22C5: ProbePoolHelper::thread() > (ProbePool.cpp:46) > ==06:20:12:05.259 26069== by 0x80E5043: > dlib::threaded_object::thread_helper() (threaded_object_extension.cpp:183) > ==06:20:12:05.259 26069== by 0x80F37CC: void > dlib::dlib_create_new_thread_helper<dlib::threaded_object, > &(dlib::threaded_object::thread_helper())>(void*) > (create_new_thread_extension.h:24) > ==06:20:12:05.259 26069== by 0x80E5171: > dlib::threads_kernel_shared::thread_starter(void*) > (threads_kernel_shared.cpp:231) > ==06:20:12:05.259 26069== by 0x80E5DC8: > dlib::threads_kernel_shared_helpers::thread_starter(void*) > (threads_kernel_2.cpp:39) > ==06:20:12:05.259 26069== by 0x29849A: start_thread (in /lib/ > libpthread-2.5.so) > ==06:20:12:05.259 26069== by 0x21842D: clone (in /lib/libc-2.5.so) > ==06:20:12:05.259 26069== Address 0x41A6E2A is 90 bytes inside a block of > size 104 free'd > ==06:20:12:05.260 26069== at 0x4004CF1: operator delete(void*) > (vg_replace_malloc.c:244) > ==06:20:12:05.260 26069== by 0x80D238A: > ProbePoolHelper::~ProbePoolHelper() (ProbePool.cpp:13) > ==06:20:12:05.260 26069== by 0x80D1CE7: > dlib::shared_ptr<ProbePoolHelper>::~shared_ptr() (shared_ptr.h:187) > ==06:20:12:05.260 26069== by 0x80D1D3A: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper> > >(dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:107) > ==06:20:12:05.260 26069== by 0x80D1D50: void > std::__destroy_aux<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, __false_type) (stl_construct.h:122) > ==06:20:12:05.260 26069== by 0x80D1D7F: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:155) > ==06:20:12:05.260 26069== by 0x80D1D99: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper> >(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, std::allocator<dlib::shared_ptr< > ProbePoolHelper> >) (stl_construct.h:182) > ==06:20:12:05.260 26069== by 0x80D2020: > std::vector<dlib::shared_ptr<ProbePoolHelper>, > std::allocator<dlib::shared_ptr<ProbePoolHelper> > >::~vector() > (stl_vector.h:272) > ==06:20:12:05.260 26069== by 0x80D144E: ProbePool::~ProbePool() > (ProbePool.cpp:68) > ==06:20:12:05.260 26069== by 0x80C3177: main (main.cpp:61) > ==06:20:12:05.260 26069== > ==06:20:12:05.260 26069== 2 errors in context 14 of 41: > ==06:20:12:05.260 26069== Invalid read of size 1 > ==06:20:12:05.260 26069== at 0x80DDA88: > dlib::threaded_object::should_stop() const > (threaded_object_extension.cpp:167) > ==06:20:12:05.260 26069== by 0x80D22C5: ProbePoolHelper::thread() > (ProbePool.cpp:46) > ==06:20:12:05.260 26069== by 0x80E5043: > dlib::threaded_object::thread_helper() (threaded_object_extension.cpp:183) > ==06:20:12:05.260 26069== by 0x80F37CC: void > dlib::dlib_create_new_thread_helper<dlib::threaded_object, > &(dlib::threaded_object::thread_helper())>(void*) > (create_new_thread_extension.h:24) > ==06:20:12:05.260 26069== by 0x80E5171: > dlib::threads_kernel_shared::thread_starter(void*) > (threads_kernel_shared.cpp:231) > ==06:20:12:05.260 26069== by 0x80E5DC8: > dlib::threads_kernel_shared_helpers::thread_starter(void*) > (threads_kernel_2.cpp:39) > ==06:20:12:05.260 26069== by 0x29849A: start_thread (in /lib/ > libpthread-2.5.so) > ==06:20:12:05.260 26069== by 0x21842D: clone (in /lib/libc-2.5.so) > ==06:20:12:05.260 26069== Address 0x41A6E2A is 90 bytes inside a block of > size 104 free'd > ==06:20:12:05.260 26069== at 0x4004CF1: operator delete(void*) > (vg_replace_malloc.c:244) > ==06:20:12:05.260 26069== by 0x80D238A: > ProbePoolHelper::~ProbePoolHelper() (ProbePool.cpp:13) > ==06:20:12:05.260 26069== by 0x80D1CE7: > dlib::shared_ptr<ProbePoolHelper>::~shared_ptr() (shared_ptr.h:187) > ==06:20:12:05.260 26069== by 0x80D1D3A: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper> > >(dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:107) > ==06:20:12:05.261 26069== by 0x80D1D50: void > std::__destroy_aux<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, __false_type) (stl_construct.h:122) > ==06:20:12:05.261 26069== by 0x80D1D7F: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:155) > ==06:20:12:05.261 26069== by 0x80D1D99: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper> >(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, std::allocator<dlib::shared_ptr< > ProbePoolHelper> >) (stl_construct.h:182) > ==06:20:12:05.261 26069== by 0x80D2020: > std::vector<dlib::shared_ptr<ProbePoolHelper>, > std::allocator<dlib::shared_ptr<ProbePoolHelper> > >::~vector() > (stl_vector.h:272) > ==06:20:12:05.261 26069== by 0x80D144E: ProbePool::~ProbePool() > (ProbePool.cpp:68) > ==06:20:12:05.261 26069== by 0x80C3177: main (main.cpp:61) > ==06:20:12:05.261 26069== > ==06:20:12:05.261 26069== 2 errors in context 15 of 41: > ==06:20:12:05.261 26069== Invalid read of size 1 > ==06:20:12:05.261 26069== at 0x80DDA7D: > dlib::threaded_object::should_stop() const > (threaded_object_extension.cpp:167) > ==06:20:12:05.261 26069== by 0x80D22C5: ProbePoolHelper::thread() > (ProbePool.cpp:46) > ==06:20:12:05.261 26069== by 0x80E5043: > dlib::threaded_object::thread_helper() (threaded_object_extension.cpp:183) > ==06:20:12:05.261 26069== by 0x80F37CC: void > dlib::dlib_create_new_thread_helper<dlib::threaded_object, > &(dlib::threaded_object::thread_helper())>(void*) > (create_new_thread_extension.h:24) > ==06:20:12:05.261 26069== by 0x80E5171: > dlib::threads_kernel_shared::thread_starter(void*) > (threads_kernel_shared.cpp:231) > ==06:20:12:05.261 26069== by 0x80E5DC8: > dlib::threads_kernel_shared_helpers::thread_starter(void*) > (threads_kernel_2.cpp:39) > ==06:20:12:05.261 26069== by 0x29849A: start_thread (in /lib/ > libpthread-2.5.so) > ==06:20:12:05.261 26069== by 0x21842D: clone (in /lib/libc-2.5.so) > ==06:20:12:05.261 26069== Address 0x41A6E28 is 88 bytes inside a block of > size 104 free'd > ==06:20:12:05.261 26069== at 0x4004CF1: operator delete(void*) > (vg_replace_malloc.c:244) > ==06:20:12:05.261 26069== by 0x80D238A: > ProbePoolHelper::~ProbePoolHelper() (ProbePool.cpp:13) > ==06:20:12:05.261 26069== by 0x80D1CE7: > dlib::shared_ptr<ProbePoolHelper>::~shared_ptr() (shared_ptr.h:187) > ==06:20:12:05.261 26069== by 0x80D1D3A: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper> > >(dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:107) > ==06:20:12:05.261 26069== by 0x80D1D50: void > std::__destroy_aux<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, __false_type) (stl_construct.h:122) > ==06:20:12:05.261 26069== by 0x80D1D7F: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*>(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*) (stl_construct.h:155) > ==06:20:12:05.261 26069== by 0x80D1D99: void > std::_Destroy<dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper> >(dlib::shared_ptr<ProbePoolHelper>*, > dlib::shared_ptr<ProbePoolHelper>*, std::allocator<dlib::shared_ptr< > ProbePoolHelper> >) (stl_construct.h:182) > ==06:20:12:05.262 26069== by 0x80D2020: > std::vector<dlib::shared_ptr<ProbePoolHelper>, > std::allocator<dlib::shared_ptr<ProbePoolHelper> > >::~vector() > (stl_vector.h:272) > ==06:20:12:05.262 26069== by 0x80D144E: ProbePool::~ProbePool() > (ProbePool.cpp:68) > ==06:20:12:05.262 26069== by 0x80C3177: main (main.cpp:61) > ==06:20:12:05.262 26069== > > > > > > > ------------------------------------------------------------------------------ > Are you an open source citizen? Join us for the Open Source Bridge > conference! > Portland, OR, June 17-19. Two days of sessions, one day of unconference: > $250. > Need another reason to go? 24-hour hacker lounge. Register today! > > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > _______________________________________________ > Dclib-devel mailing list > Dcl...@li... > https://lists.sourceforge.net/lists/listinfo/dclib-devel > > |