Comment 12 for bug 839740

Revision history for this message
Mikkel Kamstrup Erlandsen (kamstrup) wrote : Re: [Bug 839740] Re: zeitgeist-daemon crashed with RuntimeError in _check_index(): basic_string::assign

Ok. The updated crash reports looks sensible. I am still quite in the
dark about this, it could be a binding issue or something - do you
guys get it consistently or only occasionally?

So my guess work so far goes something like this: Consider the buggy
expression from the fts.py Python code:

  query = self._query_parser.parse_query ("zgsu:file*",

self.QUERY_PARSER_FLAGS)

Since this gives an error in basic_string::assign, which is a C++
function, it's probably raising an error from the autogenerated SWIG
bindings for libxapian marshalling that into a RuntimeError. Meaning
that we are probably passing either a malformed string or a non-string
where it expects a string.

I tried passing weird combos of strings and ints to parse_query() just
now, and no matter how I cut it I can only get it to raise a TypeError
ala TypeError: in method 'QueryParser_parse_query', argument 2 of type
'std::string const &'. Never a RuntimeError. So it's something deeper
than that.

So still in the dark here...

@joey - did you manually twiddle with the fts.py file you have
installed (like adding debug statements or such)? Oddly enough your
line number seems to be off by 2 compared to the 0.0.12 code.