Re: [Tracker] Crashes with tracker-store and Unac



Le lundi 16 novembre 2009 Ã 11:17 +0100, Philip Van Hoof a Ãcrit :
On Sun, 2009-11-15 at 17:18 +0100, Laurent Aguerreche wrote:
Hi!

tracker-store crashes if I use Unac.

First, I provide you a patch to set the path for Unac include files:

--- a/src/libtracker-fts/Makefile.am
+++ b/src/libtracker-fts/Makefile.am
@@ -11,6 +11,10 @@ INCLUDES =
\
        $(DBUS_CFLAGS)
\
        $(SQLITE3_CFLAGS)
 
+if HAVE_UNAC
+INCLUDES += $(UNAC_CFLAGS)
+endif
+
 noinst_LTLIBRARIES = libtracker-fts.la



Now, the crash... First, it only happens with Unac. Second, it does not
happen if I build tracker with "-O0".

Well you can probably imagine that I too, like you did as you apparently
looked at that variable too, why parser suddenly turns into NULL for
you.

Perhaps try to nonetheless reproduce with -O0 because as far as I can
see is that parser=0x0 a GDB quirk. 

Perhaps set a break point on 445 and test 'parser' with gdb, then step
into 447 and see what happens with it?

Well I do not see anything relevant (Tracker is built with -O0):



Tracker-Message: Registering D-Bus object...
Tracker-Message:
Path:'/org/freedesktop/Tracker1/Resources/Classes/mfo/FeedMessage'
Tracker-Message:   Type:'TrackerResourceClass'
Tracker-Message: Waiting for D-Bus requests...

Breakpoint 2, parser_next (parser=0xa96800,
byte_offset_start=0x7fffffffc2a4, byte_offset_end=0x7fffffffc2a0) at
tracker-parser.c:445
445                     parser->cursor = g_utf8_next_char (parser->txt +
*byte_offset_end);
(gdb) print parser
$1 = (TrackerParser *) 0xa96800
(gdb) print *parser
$2 = {txt = 0xa9c980 "Test ", txt_size = 5, language = 0xa96760,
enable_stemmer = 1, enable_stop_words = 1, max_words_to_index = 0,
max_word_length = 30, min_word_length = 3, delimit_words = 0, 
  parse_reserved_words = 0, word = 0x0, word_length = 0, word_position =
0, encoding = TRACKER_PARSER_ENCODING_ASCII, cursor = 0x0, attrs = 0x0,
attr_length = 0, attr_pos = 0}
(gdb) print parser->cursor
$3 = (const gchar *) 0x0
(gdb) b 447
Breakpoint 3 at 0x7ffff7de6cb4: file tracker-parser.c, line 447. (2
locations)
(gdb) c
Continuing.

Breakpoint 3, parser_next (parser=0xa96800,
byte_offset_start=0x7fffffffc2a4, byte_offset_end=0x7fffffffc2a0) at
tracker-parser.c:447
447                     processed_word = tracker_parser_process_word (parser, utf8, bytes,
do_strip);
(gdb) print *parser
$4 = {txt = 0xa9c980 "Test ", txt_size = 5, language = 0xa96760,
enable_stemmer = 1, enable_stop_words = 1, max_words_to_index = 0,
max_word_length = 30, min_word_length = 3, delimit_words = 0, 
  parse_reserved_words = 0, word = 0x0, word_length = 0, word_position =
0, encoding = TRACKER_PARSER_ENCODING_ASCII, cursor = 0xa9c985 "", attrs
= 0x0, attr_length = 0, attr_pos = 0}
(gdb) print parser->cursor
$5 = (const gchar *) 0xa9c985 ""
(gdb) c
Continuing.

Tracker-Message: Statistics cache has expired, updating...
Tracker-Message: Requesting statistics from database for an accurate
signal
...




Valgrind is also not being very helpful, claiming that it might be a
stackoverflow. But then I'm sure it wouldn't consistently happen at the
same location.

Perhaps also try with another version of libunac?

When I reported the first crash I was using unac 1.7. I also have
crashes with unac 1.5. I cannot build unac 1.4 because I use a 64 bits
platform.


To be honest, I will not be able to dig into unac code because it is too
complicated for the time I have.


Laurent.



You will find in attachments a valgrind log, a GDB backtrace and the
build log of Tracker where I see many warnings that seem to be quite
easy to fix. Perhaps I see some of them because I use a 64 bits
platform.

For each trace, I used the following environment variables :
export G_SLICE=always-malloc
export G_DEBUG=gc-friendly

For each trace, I first launched tracker-store, then tracker-miner-fs.

Tracker has been built with default cflags.



Just a question about Unac: it seems to be unmaintained and I have been
unable to build it directly without hacking parts of its test suite. So
is this library a good choice for Tracker? Moreover I would add that it
is not shipped with Fedora 11 and I am not sure it will be in next
versions...


Laurent.
_______________________________________________
tracker-list mailing list
tracker-list gnome org
http://mail.gnome.org/mailman/listinfo/tracker-list


Attachment: signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]