I've just noticed that the csharp bindings fail to pass make check on my
machine: Smoketest.exe hangs indefinitely. I get:
make check-recursive
Making check in docs
make[2]: Nothing to be done for `check'.
make check-TESTS
*** glibc detected *** /usr/bin/cli: free(): invalid pointer: 0x0002be14 ***
... and then the test pauses indefinitely. Attaching to the test with
gdb shows that it's waiting for a mutex to be released, and that the
object that delete() was being called on was a C++ string - the relevant
bits of the stacktrace are:
#17 0x40eaad11 in operator delete () from /usr/lib/libstdc++.so.6
#18 0x40e87a5d in std::string::_Rep::_M_destroy () from
/usr/lib/libstdc++.so.6
#19 0x40e89086 in std::string::assign () from /usr/lib/libstdc++.so.6
#20 0x40cb865c in Xapian::Document::Internal::set_data (this=0x8245348,
data_=@0xbfbf67a4)
at
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:486
#21 0x40cb8696 in Xapian::Document::set_data (this=0x52e28,
data=@0xbfbf67a4)
at
/home/richard/private/Working/xapian/xapian-core/api/omdocument.cc:65
I've checked, and this happens with the bindings before all my
reorganisations in the previous few days. I'm running Ubuntu feisty on
my development box, which is a bit bleeding edge, but mono in general
seems to be pretty stable.
Before I look into this further (which I may not be able to do for
several days) - is anyone using the Csharp bindings successfully, and
does anyone else get this problem too?
--
Richard