Issue 7 in cdma: Strange exception during plugin loading

1 view
Skip to first unread message

cd...@googlecode.com

unread,
Dec 4, 2012, 8:13:56 AM12/4/12
to common-d...@googlegroups.com
Status: Accepted
Owner: eugen.win...@gmail.com
Labels: Type-Defect Priority-Medium

New issue 7 by eugen.win...@gmail.com: Strange exception during
plugin loading
http://code.google.com/p/cdma/issues/detail?id=7

I actually experience a strange exception during loading plugins. The error
appears in a small test programm attached to this ticket.

I compile the program with

$> g++ -std=c++0x -o test test.cpp $(pkg-config --libs --cflags cdmacore)

and try to run it with

$> ./test

Which gives the following error message


-- yat::Exception ---------------------------
Err[0]:reason...SHAREDLIBRARY_ERROR
Err[0]:desc...../usr/lib/cdma/plugins/nexussoleil.so: undefined
symbol:
_ZN4cdma5nexus7Dataset4saveERKSsRKN3yat9SharedPtrINS_10IAttributeENS4_5MutexEEE
Err[0]:desc.....PlugIn::do_load_library
Err[0]:code.....-1
Err[1]:reason...SHAREDLIBRARY_ERROR
Err[1]:desc.....Error while loading library
Err[1]:desc.....PlugIn::load_library
Err[1]:code.....-1
----------------------------------------------
-- yat::Exception ---------------------------
Err[0]:reason...SHAREDLIBRARY_ERROR
Err[0]:desc...../usr/lib/cdma/plugins/nexusraw.so: undefined
symbol:
_ZN4cdma5nexus7Dataset4saveERKSsRKN3yat9SharedPtrINS_10IAttributeENS4_5MutexEEE
Err[0]:desc.....PlugIn::do_load_library
Err[0]:code.....-1
Err[1]:reason...SHAREDLIBRARY_ERROR
Err[1]:desc.....Error while loading library
Err[1]:desc.....PlugIn::load_library
Err[1]:code.....-1
----------------------------------------------
Loading dataset ...
Segmentation fault

This looks like if the signatures of some functions during loading are
wrong.

regards
Eugen

Attachments:
test.cpp 819 bytes

cd...@googlecode.com

unread,
Dec 4, 2012, 8:56:18 AM12/4/12
to common-d...@googlegroups.com

Comment #1 on issue 7 by stephane...@synchrotron-soleil.fr: Strange
exception during plugin loading
http://code.google.com/p/cdma/issues/detail?id=7

Very strange indeed. It seems the linker search for a method
cdma::nexus::Dataset::save(yat::SharedPtr<IAttribute, yat::Mutex>)
which is not defined in the IDataset interface

IAttributePtr is an alias of yat::SharedPtr<IAttribute, yat::Mutex>

There are 3 IDataset::save methods
virtual void save() throw ( Exception ) = 0;
virtual void save(const IContainer& container) throw ( Exception ) = 0;
virtual void save(const std::string& parentPath, const IAttributePtr&
attribute)
throw ( Exception ) = 0;
None of them takes only a IAttributePtr& parameter

They are all implemented in the nexus engine library

Have you check the symbols in the libraries, using nm ?

cd...@googlecode.com

unread,
Dec 4, 2012, 10:11:37 AM12/4/12
to common-d...@googlegroups.com

Comment #2 on issue 7 by eugen.win...@gmail.com: Strange exception
I have checked with objdump -CT (the C demangles the symbols). There seem
to be some yat::SharedPtr instances but it seems to me on the first glimpse
that these are only used internaly.

cd...@googlecode.com

unread,
Dec 6, 2012, 3:11:37 AM12/6/12
to common-d...@googlegroups.com

Comment #3 on issue 7 by eugen.win...@gmail.com: Strange exception
It seems that I have built the plugins without c++11 support. Have to check
this - may it fixes this issue.

cd...@googlecode.com

unread,
Dec 6, 2012, 5:28:10 AM12/6/12
to common-d...@googlegroups.com
Updates:
Status: Fixed

Comment #6 on issue 7 by eugen.win...@gmail.com: Strange exception
The issue is solved. The problem appears when plugins are not compiled with
C++11 support. One should take care about this!

Reply all
Reply to author
Forward
0 new messages