Hi Wes,

That did it! Thanks so much for the pointer.

BTW, enjoy your time off.

Cheers,
Rares

On Mon, Apr 2, 2018 at 12:33 PM, Wes McKinney <wesmck...@gmail.com> wrote:

> 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
>

Reply via email to