ITADN

memory leak in LoadSavedModel

#1013Openwelsonzhang 创建于 2025-03-21
W
welsonzhangcommented
**System information** - OS Platform and Distribution (e.g., Linux Ubuntu 20.04): Ubuntu 16.04 - DeepRec version or commit id: newest - Python version: C++ - Bazel version (if compiling from source): bazel 7.4 - GCC/Compiler version (if compiling from source): gcc 7 - CUDA/cuDNN version: none **Describe the current behavior** build my C++ program add asan to check memory leak, like this: --copt=-fsanitize=address --copt=-fno-omit-frame-pointer --linkopt=-fsanitize=address **Describe the expected behavior** ``` Direct leak of 24 byte(s) in 1 object(s) allocated from: #0 0x7f045a741488 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0488) #1 0x7f044c8f1ca8 in tensorflow::RegisterXlaDeviceKernels(char const*, char const*) (libtensorflow_cc.so.1+0x2aadca8) #2 0x7f044c8dda12 in tensorflow::XlaCpuDeviceFactory::CreateDevices(tensorflow::SessionOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> >, std::allocator<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> > > >*, tensorflow::DeviceResourceMgrMap const*, tensorflow::DeviceGlobalThreadPoolOptions const&) (libtensorflow_cc.so.1+0x2a99a12) #3 0x7f0449395fdd in tensorflow::DeviceFactory::AddDevices(tensorflow::SessionOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> >, std::allocator<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> > > >*, tensorflow::DeviceResourceMgrMap const*, tensorflow::DeviceGlobalThreadPoolOptions const&) (libtensorflow_framework.so.1+0x112efdd) #4 0x7f0458024179 in tensorflow::DirectSessionFactory::NewSessionGroup(tensorflow::SessionOptions const&, tensorflow::SessionGroup**, tensorflow::SessionGroupMetadata const&) (libtensorflow_cc.so.1+0xe1e0179) #5 0x7f04494458a3 in tensorflow::NewSessionGroup(tensorflow::SessionOptions const&, tensorflow::SessionGroup**, tensorflow::SessionGroupMetadata const&) (libtensorflow_framework.so.1+0x11de8a3) #6 0x7f04489a3215 in tensorflow::(anonymous namespace)::LoadSavedModelInternal(tensorflow::SessionGroupOptions const&, tensorflow::RunOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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> > > > const&, tensorflow::SavedModelBundleV2*) (libtensorflow_framework.so.1+0x73c215) #7 0x7f04489a4376 in tensorflow::LoadSavedModel(tensorflow::SessionGroupOptions const&, tensorflow::RunOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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> > > > const&, tensorflow::SavedModelBundleV2*) (libtensorflow_framework.so.1+0x73d376) #8 0x6df292 in (anonymous namespace)::LoadSavedModel(std::unique_ptr<tensorflow::SessionGroup, std::default_delete<tensorflow::SessionGroup> >&, tensorflow::GraphDef&, tensorflow::SignatureDef&, char const*, tensorflow::SessionGroupOptions const&, tensorflow::RunOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6df292) #9 0x6e0f02 in yy::predict::TfModel::load_save_model(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6e0f02) #10 0x6e143a in yy::predict::TfModel::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6e143a) #11 0x6d92de in yy::predict::Predictor::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6d92de) #12 0x6fd717 in main (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6fd717) #13 0x7f0446f8f82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) Indirect leak of 4096 byte(s) in 1 object(s) allocated from: #0 0x7f045a741488 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0488) #1 0x7f044c8f1a65 in void std::vector<std::unique_ptr<tensorflow::kernel_factory::OpKernelRegistrar, std::default_delete<tensorflow::kernel_factory::OpKernelRegistrar> >, std::allocator<std::unique_ptr<tensorflow::kernel_factory::OpKernelRegistrar, std::default_delete<tensorflow::kernel_factory::OpKernelRegistrar> > > >::_M_realloc_insert<tensorflow::kernel_factory::OpKernelRegistrar*>(__gnu_cxx::__normal_iterator<std::unique_ptr<tensorflow::kernel_factory::OpKernelRegistrar, std::default_delete<tensorflow::kernel_factory::OpKernelRegistrar> >*, std::vector<std::unique_ptr<tensorflow::kernel_factory::OpKernelRegistrar, std::default_delete<tensorflow::kernel_factory::OpKernelRegistrar> >, std::allocator<std::unique_ptr<tensorflow::kernel_factory::OpKernelRegistrar, std::default_delete<tensorflow::kernel_factory::OpKernelRegistrar> > > > >, tensorflow::kernel_factory::OpKernelRegistrar*&&) (libtensorflow_cc.so.1+0x2aada65) #2 0x7f044c8f1ed6 in tensorflow::RegisterXlaDeviceKernels(char const*, char const*) (libtensorflow_cc.so.1+0x2aaded6) #3 0x7f044c8dda12 in tensorflow::XlaCpuDeviceFactory::CreateDevices(tensorflow::SessionOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> >, std::allocator<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> > > >*, tensorflow::DeviceResourceMgrMap const*, tensorflow::DeviceGlobalThreadPoolOptions const&) (libtensorflow_cc.so.1+0x2a99a12) #4 0x7f0449395fdd in tensorflow::DeviceFactory::AddDevices(tensorflow::SessionOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> >, std::allocator<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> > > >*, tensorflow::DeviceResourceMgrMap const*, tensorflow::DeviceGlobalThreadPoolOptions const&) (libtensorflow_framework.so.1+0x112efdd) #5 0x7f0458024179 in tensorflow::DirectSessionFactory::NewSessionGroup(tensorflow::SessionOptions const&, tensorflow::SessionGroup**, tensorflow::SessionGroupMetadata const&) (libtensorflow_cc.so.1+0xe1e0179) #6 0x7f04494458a3 in tensorflow::NewSessionGroup(tensorflow::SessionOptions const&, tensorflow::SessionGroup**, tensorflow::SessionGroupMetadata const&) (libtensorflow_framework.so.1+0x11de8a3) #7 0x7f04489a3215 in tensorflow::(anonymous namespace)::LoadSavedModelInternal(tensorflow::SessionGroupOptions const&, tensorflow::RunOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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> > > > const&, tensorflow::SavedModelBundleV2*) (libtensorflow_framework.so.1+0x73c215) #8 0x7f04489a4376 in tensorflow::LoadSavedModel(tensorflow::SessionGroupOptions const&, tensorflow::RunOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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> > > > const&, tensorflow::SavedModelBundleV2*) (libtensorflow_framework.so.1+0x73d376) #9 0x6df292 in (anonymous namespace)::LoadSavedModel(std::unique_ptr<tensorflow::SessionGroup, std::default_delete<tensorflow::SessionGroup> >&, tensorflow::GraphDef&, tensorflow::SignatureDef&, char const*, tensorflow::SessionGroupOptions const&, tensorflow::RunOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6df292) #10 0x6e0f02 in yy::predict::TfModel::load_save_model(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6e0f02) #11 0x6e143a in yy::predict::TfModel::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6e143a) #12 0x6d92de in yy::predict::Predictor::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6d92de) #13 0x6fd717 in main (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6fd717) #14 0x7f0446f8f82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) Indirect leak of 372 byte(s) in 372 object(s) allocated from: #0 0x7f045a741488 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0488) #1 0x7f044c8f1d70 in tensorflow::RegisterXlaDeviceKernels(char const*, char const*) (libtensorflow_cc.so.1+0x2aadd70) #2 0x7f044c8dda12 in tensorflow::XlaCpuDeviceFactory::CreateDevices(tensorflow::SessionOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> >, std::allocator<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> > > >*, tensorflow::DeviceResourceMgrMap const*, tensorflow::DeviceGlobalThreadPoolOptions const&) (libtensorflow_cc.so.1+0x2a99a12) #3 0x7f0449395fdd in tensorflow::DeviceFactory::AddDevices(tensorflow::SessionOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> >, std::allocator<std::unique_ptr<tensorflow::Device, std::default_delete<tensorflow::Device> > > >*, tensorflow::DeviceResourceMgrMap const*, tensorflow::DeviceGlobalThreadPoolOptions const&) (libtensorflow_framework.so.1+0x112efdd) #4 0x7f0458024179 in tensorflow::DirectSessionFactory::NewSessionGroup(tensorflow::SessionOptions const&, tensorflow::SessionGroup**, tensorflow::SessionGroupMetadata const&) (libtensorflow_cc.so.1+0xe1e0179) #5 0x7f04494458a3 in tensorflow::NewSessionGroup(tensorflow::SessionOptions const&, tensorflow::SessionGroup**, tensorflow::SessionGroupMetadata const&) (libtensorflow_framework.so.1+0x11de8a3) #6 0x7f04489a3215 in tensorflow::(anonymous namespace)::LoadSavedModelInternal(tensorflow::SessionGroupOptions const&, tensorflow::RunOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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> > > > const&, tensorflow::SavedModelBundleV2*) (libtensorflow_framework.so.1+0x73c215) #7 0x7f04489a4376 in tensorflow::LoadSavedModel(tensorflow::SessionGroupOptions const&, tensorflow::RunOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<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> > > > const&, tensorflow::SavedModelBundleV2*) (libtensorflow_framework.so.1+0x73d376) #8 0x6df292 in (anonymous namespace)::LoadSavedModel(std::unique_ptr<tensorflow::SessionGroup, std::default_delete<tensorflow::SessionGroup> >&, tensorflow::GraphDef&, tensorflow::SignatureDef&, char const*, tensorflow::SessionGroupOptions const&, tensorflow::RunOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6df292) #9 0x6e0f02 in yy::predict::TfModel::load_save_model(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6e0f02) #10 0x6e143a in yy::predict::TfModel::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6e143a) #11 0x6d92de in yy::predict::Predictor::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6d92de) #12 0x6fd717 in main (/data/services/model-serving/lzh_swipemodel_v2/predict_test+0x6fd717) #13 0x7f0446f8f82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f) SUMMARY: AddressSanitizer: 4492 byte(s) leaked in 374 allocation(s). ``` **Code to reproduce the issue** Provide a reproducible test case that is the bare minimum necessary to generate the problem. **Other info / logs** Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
0 条评论