You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by GitBox <gi...@apache.org> on 2019/04/01 15:47:41 UTC

[GitHub] [incubator-mxnet] wirisfalvaro opened a new issue #14581: Problem loading pre-trained model in C++ with cpp-package and CPU only inference

wirisfalvaro opened a new issue #14581: Problem loading pre-trained model in C++ with cpp-package and CPU only inference
URL: https://github.com/apache/incubator-mxnet/issues/14581
 
 
   ## Description
   Compiling a C++ example for CPU inference by loading a pre-trained model leads to segmentation fault. The MXNet library is **compiled for CPU without OpenCV and OpenMP**.
   
   ## Environment info (Required)
   Since this is a C++ issue, I only paste relevant system info.
   ```
   ----------System Info----------
   Platform     : Linux-4.15.0-45-generic-x86_64-with-Ubuntu-16.04-xenial
   system       : Linux
   release      : 4.15.0-45-generic
   version      : #48~16.04.1-Ubuntu SMP Tue Jan 29 18:03:48 UTC 2019
   ```
   I'm compiling MXNet from source reducing the dependencies with the ultimate goal of compiling a static executable.
   
   ## Build info (Required if built from source)
   Compiler:
   ```
   $ g++ --version
   g++ (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
   ```
   
   MXNet commit hash:
   tag "1.4.0"
   a03d59ed867ba334d78d61246a1090cd1868f5da
   
   Build config:
   Set in make/config.mk
   ```
   USE_OPENCV = 0
   USE_OPENMP = 0
   ```
   and compile with command
   ```
   make -j $(nproc) USE_BLAS=openblas USE_CPP_PACKAGE=1 USE_F16C=0
   ```
   
   ## Error Message:
   It's a segmentation fault, but here I provide the output running with valgrind.
   ```
   ==1670== Memcheck, a memory error detector
   ==1670== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
   ==1670== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
   ==1670== Command: ./sentiment_analysis_rnn --input This\ movie\ is\ the\ best.
   ==1670== 
   File `./sentiment_analysis-symbol.json' already there; not retrieving.
   [17:26:52] sentiment_analysis_rnn.cpp:420: Downloading ./sentiment_analysis-symbol.json with status 256
   File `./sentiment_analysis-0010.params' already there; not retrieving.
   [17:26:52] sentiment_analysis_rnn.cpp:420: Downloading ./sentiment_analysis-0010.params with status 256
   File `./sentiment_token_to_idx.txt' already there; not retrieving.
   [17:26:52] sentiment_analysis_rnn.cpp:420: Downloading ./sentiment_token_to_idx.txt with status 256
   [17:26:52] sentiment_analysis_rnn.cpp:218: Loading the dictionary file.
   [17:26:55] sentiment_analysis_rnn.cpp:176: Loading the model from ./sentiment_analysis-symbol.json
   
   [17:26:55] src/nnvm/legacy_json_util.cc:209: Loading symbol saved by previous version v1.3.1. Attempting to upgrade...
   [17:26:55] src/nnvm/legacy_json_util.cc:217: Symbol successfully upgraded!
   [17:26:55] sentiment_analysis_rnn.cpp:189: Loading the model parameters from ./sentiment_analysis-0010.params
   
   ==1670== Invalid read of size 8
   ==1670==    at 0x85013A0: __dynamic_cast (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
   ==1670==    by 0x75C484D: mxnet::exec::GraphExecutor::FinishInitGraph(nnvm::Symbol, nnvm::Graph, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75C6179: mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75CD8E3: mxnet::Executor::Bind(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x7D851DB: MXExecutorBindEX (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x40C08F: mxnet::cpp::Executor::Executor(mxnet::cpp::Symbol const&, mxnet::cpp::Context, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x40DAB3: mxnet::cpp::Symbol::Bind(mxnet::cpp::Context const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x406EDD: Predictor::Predictor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, bool) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x409337: main (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==  Address 0x2418ddb0 is 16 bytes before a block of size 704 alloc'd
   ==1670==    at 0x4C2E476: operator new(unsigned long) (vg_replace_malloc.c:334)
   ==1670==    by 0x75CD4B4: mxnet::Executor::Bind(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x7D851DB: MXExecutorBindEX (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x40C08F: mxnet::cpp::Executor::Executor(mxnet::cpp::Symbol const&, mxnet::cpp::Context, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x40DAB3: mxnet::cpp::Symbol::Bind(mxnet::cpp::Context const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x406CD2: Predictor::Predictor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, bool) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x409337: main (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670== 
   ==1670== Invalid read of size 8
   ==1670==    at 0x85013A7: __dynamic_cast (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
   ==1670==    by 0x75C484D: mxnet::exec::GraphExecutor::FinishInitGraph(nnvm::Symbol, nnvm::Graph, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75C6179: mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75CD8E3: mxnet::Executor::Bind(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x7D851DB: MXExecutorBindEX (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x40C08F: mxnet::cpp::Executor::Executor(mxnet::cpp::Symbol const&, mxnet::cpp::Context, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x40DAB3: mxnet::cpp::Symbol::Bind(mxnet::cpp::Context const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x406EDD: Predictor::Predictor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, bool) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x409337: main (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==  Address 0x2418ddb8 is 8 bytes before a block of size 704 alloc'd
   ==1670==    at 0x4C2E476: operator new(unsigned long) (vg_replace_malloc.c:334)
   ==1670==    by 0x75CD4B4: mxnet::Executor::Bind(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x7D851DB: MXExecutorBindEX (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x40C08F: mxnet::cpp::Executor::Executor(mxnet::cpp::Symbol const&, mxnet::cpp::Context, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x40DAB3: mxnet::cpp::Symbol::Bind(mxnet::cpp::Context const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x406CD2: Predictor::Predictor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, bool) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x409337: main (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670== 
   ==1670== Invalid read of size 8
   ==1670==    at 0x85013CE: __dynamic_cast (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
   ==1670==    by 0x75C484D: mxnet::exec::GraphExecutor::FinishInitGraph(nnvm::Symbol, nnvm::Graph, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75C6179: mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75CD8E3: mxnet::Executor::Bind(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x7D851DB: MXExecutorBindEX (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x40C08F: mxnet::cpp::Executor::Executor(mxnet::cpp::Symbol const&, mxnet::cpp::Context, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x40DAB3: mxnet::cpp::Symbol::Bind(mxnet::cpp::Context const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x406EDD: Predictor::Predictor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, bool) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x409337: main (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==  Address 0x2418ddb8 is 8 bytes before a block of size 704 alloc'd
   ==1670==    at 0x4C2E476: operator new(unsigned long) (vg_replace_malloc.c:334)
   ==1670==    by 0x75CD4B4: mxnet::Executor::Bind(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x7D851DB: MXExecutorBindEX (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x40C08F: mxnet::cpp::Executor::Executor(mxnet::cpp::Symbol const&, mxnet::cpp::Context, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x40DAB3: mxnet::cpp::Symbol::Bind(mxnet::cpp::Context const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x406CD2: Predictor::Predictor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, bool) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x409337: main (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670== 
   ==1670== Invalid read of size 8
   ==1670==    at 0x85013D4: __dynamic_cast (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
   ==1670==    by 0x75C484D: mxnet::exec::GraphExecutor::FinishInitGraph(nnvm::Symbol, nnvm::Graph, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75C6179: mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75CD8E3: mxnet::Executor::Bind(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x7D851DB: MXExecutorBindEX (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x40C08F: mxnet::cpp::Executor::Executor(mxnet::cpp::Symbol const&, mxnet::cpp::Context, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x40DAB3: mxnet::cpp::Symbol::Bind(mxnet::cpp::Context const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x406EDD: Predictor::Predictor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, bool) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x409337: main (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
   ==1670== 
   ==1670== 
   ==1670== Process terminating with default action of signal 11 (SIGSEGV)
   ==1670==  Access not within mapped region at address 0x0
   ==1670==    at 0x85013D4: __dynamic_cast (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
   ==1670==    by 0x75C484D: mxnet::exec::GraphExecutor::FinishInitGraph(nnvm::Symbol, nnvm::Graph, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75C6179: mxnet::exec::GraphExecutor::Init(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*, std::unordered_map<nnvm::NodeEntry, mxnet::NDArray, nnvm::NodeEntryHash, nnvm::NodeEntryEqual, std::allocator<std::pair<nnvm::NodeEntry const, mxnet::NDArray> > > const&) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x75CD8E3: mxnet::Executor::Bind(nnvm::Symbol, mxnet::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::Context> > > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, std::vector<mxnet::OpReqType, std::allocator<mxnet::OpReqType> > const&, std::vector<mxnet::NDArray, std::allocator<mxnet::NDArray> > const&, mxnet::Executor*) (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x7D851DB: MXExecutorBindEX (in /home/user/src/mxnet/lib/libmxnet.so)
   ==1670==    by 0x40C08F: mxnet::cpp::Executor::Executor(mxnet::cpp::Symbol const&, mxnet::cpp::Context, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x40DAB3: mxnet::cpp::Symbol::Bind(mxnet::cpp::Context const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::vector<mxnet::cpp::OpReqType, std::allocator<mxnet::cpp::OpReqType> > const&, std::vector<mxnet::cpp::NDArray, std::allocator<mxnet::cpp::NDArray> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::Context, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp::Context> > > const&, mxnet::cpp::Executor*) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x406EDD: Predictor::Predictor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, bool) (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==    by 0x409337: main (in /home/user/src/mxnet/cpp-package/example/sentiment_analysis_rnn)
   ==1670==  If you believe this happened as a result of a stack
   ==1670==  overflow in your program's main thread (unlikely but
   ==1670==  possible), you can try to increase the size of the
   ==1670==  main thread stack using the --main-stacksize= flag.
   ==1670==  The main thread stack size used in this run was 8388608.
   ==1670== 
   ==1670== HEAP SUMMARY:
   ==1670==     in use at exit: 67,459,401 bytes in 51,374 blocks
   ==1670==   total heap usage: 78,212 allocs, 26,838 frees, 99,751,997 bytes allocated
   ==1670== 
   ==1670== LEAK SUMMARY:
   ==1670==    definitely lost: 0 bytes in 0 blocks
   ==1670==    indirectly lost: 0 bytes in 0 blocks
   ==1670==      possibly lost: 3,648 bytes in 12 blocks
   ==1670==    still reachable: 67,455,753 bytes in 51,362 blocks
   ==1670==                       of which reachable via heuristic:
   ==1670==                         newarray           : 488 bytes in 1 blocks
   ==1670==         suppressed: 0 bytes in 0 blocks
   ==1670== Rerun with --leak-check=full to see details of leaked memory
   ==1670== 
   ==1670== For counts of detected and suppressed errors, rerun with: -v
   ==1670== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
   Segmentation fault (core dumped)
   ```
   
   ## Minimum reproducible example
   I ran the example of the sentiment_analysis_rnn.cpp, but it is not in the 1.4.0 commit. Therefore I downloaded it.
   ```
   incubator-mxnet/cpp-package/example/inference/sentiment_analysis_rnn.cpp
   ```
   
   ## Steps to reproduce
   1. cd cpp-package/example
   2. wget https://raw.githubusercontent.com/apache/incubator-mxnet/master/cpp-package/example/inference/sentiment_analysis_rnn.cpp
   3. g++ -std=c++11 -I../../include -I../../3rdparty/tvm/nnvm/include -I../../3rdparty/dmlc-core/include  -I../include -o sentiment_analysis_rnn sentiment_analysis_rnn.cpp -L../../lib -lmxnet
   4. LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:../../lib ./sentiment_analysis_rnn  --input "This movie is the best."
   
   ## What have you tried to solve it?
   
   I have also tried to compile it with the static libraries with command:
   ```g++ -std=c++11 -I../../include -I../../3rdparty/tvm/nnvm/include -I../../3rdparty/dmlc-core/include  -I../include -o sentiment_analysis_rnn sentiment_analysis_rnn.cpp -L../../lib -L../../3rdparty/tvm/nnvm/lib/ -L../../3rdparty/dmlc-core -lmxnet -static -ldmlc -lnnvm -lrt -pthread```
   but it leads to the same error.
   ```
   $ LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:../../lib ./sentiment_analysis_rnn  --input "This movie is the best."
   File `./sentiment_analysis-symbol.json' already there; not retrieving.
   [17:37:22] sentiment_analysis_rnn.cpp:420: Downloading ./sentiment_analysis-symbol.json with status 256
   File `./sentiment_analysis-0010.params' already there; not retrieving.
   [17:37:22] sentiment_analysis_rnn.cpp:420: Downloading ./sentiment_analysis-0010.params with status 256
   File `./sentiment_token_to_idx.txt' already there; not retrieving.
   [17:37:22] sentiment_analysis_rnn.cpp:420: Downloading ./sentiment_token_to_idx.txt with status 256
   [17:37:22] sentiment_analysis_rnn.cpp:218: Loading the dictionary file.
   [17:37:22] sentiment_analysis_rnn.cpp:176: Loading the model from ./sentiment_analysis-symbol.json
   
   Segmentation fault (core dumped)
   ```
   
   Furthermore, I tried other examples of the cpp-package, like the "mlp_cpu" and it works
   ```
   $ LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:../../lib ./build/mlp_cpu
   [17:41:39] src/io/iter_mnist.cc:110: MNISTIter: load 60000 images, shuffle=1, shape=(100,784)
   [17:41:40] src/io/iter_mnist.cc:110: MNISTIter: load 10000 images, shuffle=1, shape=(100,784)
   [17:41:42] mlp_cpu.cpp:134: Epoch: 0 28011.2 samples/sec Accuracy: 0.1135
   [17:41:44] mlp_cpu.cpp:134: Epoch: 1 25073.1 samples/sec Accuracy: 0.536
   [17:41:47] mlp_cpu.cpp:134: Epoch: 2 23319.1 samples/sec Accuracy: 0.8278
   [17:41:50] mlp_cpu.cpp:134: Epoch: 3 23157.1 samples/sec Accuracy: 0.8726
   [17:41:52] mlp_cpu.cpp:134: Epoch: 4 38860.1 samples/sec Accuracy: 0.9041
   [17:41:54] mlp_cpu.cpp:134: Epoch: 5 27124.8 samples/sec Accuracy: 0.9163
   [17:41:56] mlp_cpu.cpp:134: Epoch: 6 26431.7 samples/sec Accuracy: 0.9226
   [17:41:58] mlp_cpu.cpp:134: Epoch: 7 33500.8 samples/sec Accuracy: 0.9291
   [17:42:00] mlp_cpu.cpp:134: Epoch: 8 35735.6 samples/sec Accuracy: 0.9334
   [17:42:02] mlp_cpu.cpp:134: Epoch: 9 35863.7 samples/sec Accuracy: 0.937
   ```
   But that example builds the model and trains it from data. Therefore, I think that the problem might be loading pre-trained models.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services