hi Rares -- does SciDB use Protocol Buffers? You may be running into a version conflict with the vendored protocol buffers libraries that's part of -DARROW_ORC=on
Wes On Sun, Apr 1, 2018 at 9:48 PM, Rares Vernica <rvern...@gmail.com> wrote: > Hello, > > I'm using libarrow.so to build a simplified SciDB "plugin". The plugin gets > loaded dynamically into a running SciDB instance. The plugin just does > arrow::default_memory_pool(). With Arrow 0.8.0, the plugin gets loaded > successfully and can be used in SciDB. With Arrow 0.9.0, SciDB crashes when > it tires to load the .so file of the plugin. I'm not sure if it is an Arrow > issue or some non-Arrow issue that just pops up now. > > The example used here is highly simplified. I'm experiencing this situation > in the more complex accelerated_io_tools SciDB plugin > https://github.com/Paradigm4/accelerated_io_tools I've been using this > plugin for a while successfully with Arrow 0.8.0. > > I'm using a Ubuntu Trusty instance with Arrow packages from > red-data-tools.org. I also tried with Arrow packages compiled from source > using g++ 4.9, but the issue is still present. > > I compile the plugin like this: > > "/usr/bin/g++-4.9" -W -Wextra -Wall -Wno-unused-parameter > -Wno-variadic-macros -Wno-strict-aliasing -Wno-long-long -Wno-unused -fPIC > -D_STDC_FORMAT_MACROS -Wno-system-headers -g -DNDEBUG -D_STDC_LIMIT_MACROS > -fno-omit-frame-pointer -std=c++14 -DCPP11 -I. > -DPROJECT_ROOT="\"/opt/scidb/18.1\"" > -I"/opt/scidb/18.1/3rdparty/boost/include/" -I"/opt/scidb/18.1/include" -o > liblimit.so plugin.cpp LogicalLimit.cpp PhysicalLimit.cpp -shared > -Wl,-soname,liblimit.so -L. -L"/opt/scidb/18.1/3rdparty/boost/lib" > -L"/opt/scidb/18.1/lib" -Wl,-rpath,/opt/scidb/18.1/lib: -lm -larrow > > Here is the backtrace when I try to load the plugin: > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x7fcf89669700 (LWP 1096)] > 0x00007fcf96048240 in std::string::resize(unsigned long, char) () > from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > (gdb) bt > #0 0x00007fcf96048240 in std::string::resize(unsigned long, char) () > from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > #1 0x00007fcf985081e8 in > google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, > std::string*) () > from /usr/lib/x86_64-linux-gnu/libprotobuf.so.8 > #2 0x00007fcf98545539 in > google::protobuf::FileDescriptorProto::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) > () > from /usr/lib/x86_64-linux-gnu/libprotobuf.so.8 > #3 0x00007fcf8859b11c in ?? () from /usr/lib/x86_64-linux-gnu/libarrow.so.0 > #4 0x00007fcf885e1533 in ?? () from /usr/lib/x86_64-linux-gnu/libarrow.so.0 > #5 0x00007fcf885a278a in ?? () from /usr/lib/x86_64-linux-gnu/libarrow.so.0 > #6 0x00007fcf885808ac in ?? () from /usr/lib/x86_64-linux-gnu/libarrow.so.0 > #7 0x00007fcf998081da in ?? () from /lib64/ld-linux-x86-64.so.2 > #8 0x00007fcf998082c3 in ?? () from /lib64/ld-linux-x86-64.so.2 > #9 0x00007fcf9980cd00 in ?? () from /lib64/ld-linux-x86-64.so.2 > #10 0x00007fcf99808094 in ?? () from /lib64/ld-linux-x86-64.so.2 > #11 0x00007fcf9980c44b in ?? () from /lib64/ld-linux-x86-64.so.2 > #12 0x00007fcf991cf02b in ?? () from /lib/x86_64-linux-gnu/libdl.so.2 > #13 0x00007fcf99808094 in ?? () from /lib64/ld-linux-x86-64.so.2 > #14 0x00007fcf991cf62d in ?? () from /lib/x86_64-linux-gnu/libdl.so.2 > #15 0x00007fcf991cf0c1 in dlopen () from /lib/x86_64-linux-gnu/libdl.so.2 > #16 0x0000000000951c8b in scidb::PluginManager::findModule(std::string > const&, bool*) () > #17 0x000000000095235f in scidb::PluginManager::loadLibrary(std::string > const&, bool) () > #18 0x0000000000ccb1a2 in > scidb::PhysicalLoadLibrary::execute(std::vector<std::shared_ptr<scidb::Array>, > std::allocator<std::shared_ptr<scidb::Array> > >&, > std::shared_ptr<scidb::Query>) () > #19 0x0000000000a37c6f in > scidb::PhysicalOperator::executeWrapper(std::vector<std::shared_ptr<scidb::Array>, > std::allocator<std::shared_ptr<scidb::Array> > >&, > std::shared_ptr<scidb::Query>) () > #20 0x00000000009e5628 in > scidb::QueryProcessorImpl::execute(std::shared_ptr<scidb::PhysicalQueryPlanNode>, > std::shared_ptr<scidb::Query>, int) () > #21 0x00000000009e5dd9 in > scidb::QueryProcessorImpl::execute(std::shared_ptr<scidb::Query>) () > #22 0x0000000000a1c6f4 in > scidb::SciDBExecutor::completeExecuteQuery(scidb::QueryResult&, > std::shared_ptr<scidb::Query> const&) () > #23 0x0000000000903964 in > scidb::ClientMessageHandleJob::completeExecuteQuery(std::shared_ptr<scidb::QueryResult> > const&) () > #24 0x00000000009005a6 in scidb::ClientMessageHandleJob::run() () > #25 0x000000000093d59a in > scidb::Job::executeOnQueue(std::weak_ptr<scidb::WorkQueue>&, > std::shared_ptr<scidb::SerializationCtx>&) () > #26 0x00000000008b34b7 in > scidb::WorkQueue::invokeWithContext(boost::function<void > (std::weak_ptr<scidb::WorkQueue>&, > std::shared_ptr<scidb::SerializationCtx>&)>&, > std::shared_ptr<scidb::SerializationCtx>&, > std::weak_ptr<scidb::WorkQueue>&) () > #27 0x0000000000972ac3 in scidb::WorkQueue::WorkQueueJob::run() () > #28 0x000000000093d6d1 in scidb::Job::execute() () > #29 0x0000000000947f39 in scidb::Thread::_threadFunction() () > #30 0x0000000000948b39 in scidb::Thread::threadFunction(void*) () > #31 0x00007fcf993da184 in start_thread () > from /lib/x86_64-linux-gnu/libpthread.so.0 > #32 0x00007fcf9579a03d in clone () from /lib/x86_64-linux-gnu/libc.so.6 > > Notice libarrow in frames #3-6. Also interesting is libprotobuf in frames > #1-2. > > Any ideas are welcome. > > Thanks! > Rares