Hello,

we are working on a UIMA project with several C++-Analysis Engines
(UIMA-AS 2.4 + UIMACPP 2.4). For a while now, we've been getting this
error message, when one of these AEs exits:

Inconsistency detected by ld.so: dl-close.c: 759: _dl_close: Assertion
`map->l_init_called'

In particular, this happens with AEs that use OpenCV. I have constructed
a toy example that does nothing, except defining an Annotator, linking
it against OpenCV and UIMA and executing it with runAECpp.

The error message seems to be related to the fact, that some calls to
dlclose happen in library destructors which are called _after_ all
dynamically loaded libraries have been unloaded. (see
https://bugzilla.novell.com/show_bug.cgi?id=622977, for example)

So this error might not be specific to UIMA, but what's baffling me is
that it only occurs, when UIMA and OpenCV are both linked into the lib.
Linking either one of them on it's own doesn't produce the error message.

Has anyone ever seen this problem with C++-AEs before? I'm desperately
looking for any pointers or hints, how this problem could be resolved.

Thanks and best regards
Peter


P.S.: This is the test code I use:
TestAnnotator.cpp:
"#include "uima/api.hpp"
using namespace uima;

class TestAnnotator: public Annotator {
};
// This macro exports an entry point that is used to create the annotator.

MAKE_AE( TestAnnotator);
"

Makefile:
"
UIMACPP_HOME=/opt/apache-uima-as/uimacpp
UIMA_HOME=/opt/apache-uima-as
TARGET_FILE=TestAnnotator
OBJS=TestAnnotator.o
USER_LINKFLAGS=/usr/local/lib/libopencv_core.so.2.4.3-1
DEBUG=1
DLL_BUILD=1

all:
    # include file with generic compiler instructions
    include $(UIMACPP_HOME)/lib/base.mak

Executing it with:
/opt/apache-uima-as/uimacpp/bin/runAECpp ./TestAnnotatorAE.xml -x
testdata/cas.xml .

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to