Hi Laurent!

On jue, 2009-01-15 at 22:19 +0100, Laurent Aguerreche wrote:
> Hi!
> 
> I see tracker-indexer crashing at the same point but not always with the
> same files:
> 
> ...
> Tracker-Message: <--- [33] DBus request to check 1000 files
> Tracker-Message: ---> [33] Success, no error given
> (tracker-indexer:10627): Tracker-DEBUG: Parent
> path:'/local/laguerre/FretsOnFire' exists in cache, should index
> (tracker-indexer:10627): Tracker-DEBUG: Updating item
> '/local/laguerre/FretsOnFire/pygame.mouse.so'
> (tracker-indexer:10627): Tracker-DEBUG: Parent
> path:'/local/laguerre/FretsOnFire' exists in cache, should index
> (tracker-indexer:10627): Tracker-DEBUG: Updating item
> '/local/laguerre/FretsOnFire/_random.so'
> (tracker-indexer:10627): Tracker-DEBUG: Transaction commit
> (tracker-indexer:10627): Tracker-DEBUG: Flushing index with 18 items in
> cache
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff7bbf78d in indexer_update_word (indez=0x7518d0,
> word=0x11e51e0 "_random", new_hits=0x115c580) at tracker-db-index.c:611
> 611                           if (new_hit->id > previous_hits[center].id) {
> Missing separate debuginfos, use: debuginfo-install
> e2fsprogs-libs-1.41.3-2.fc10.x86_64 gamin-0.1.9-6.fc10.x86_64
> gvfs-1.0.3-4.fc10.x86_64 hal-libs-0.5.12-12.20081027git.fc10.x86_64
> keyutils-libs-1.2-3.fc9.x86_64 krb5-libs-1.6.3-16.fc10.x86_64
> libcap-2.10-2.fc10.x86_64 libcurl-7.18.2-9.fc10.x86_64
> libidn-0.6.14-8.x86_64 libselinux-2.0.73-1.fc10.x86_64
> libssh2-0.18-7.fc9.x86_64 libxslt-1.1.24-2.fc10.x86_64
> nspr-4.7.3-2.fc10.x86_64 nss-3.12.2.0-3.fc10.x86_64
> openldap-2.4.12-1.fc10.x86_64 openssl-0.9.8g-12.fc10.x86_64
> raptor-1.4.18-1.fc10.x86_64
> (gdb) bt
> #0  0x00007ffff7bbf78d in indexer_update_word (indez=0x7518d0,
> word=0x11e51e0 "_random", new_hits=0x115c580) at tracker-db-index.c:611
> #1  0x00007ffff7bbfa4a in cache_flush_item (key=0x11e51e0,
> value=0x115c580, user_data=0x7518d0) at tracker-db-index.c:724
> #2  0x00007ffff7bc00bb in tracker_db_index_flush (indez=0x6840a0) at
> tracker-db-index.c:878
> #3  0x0000000000408f49 in flush_data (indexer=0x778820) at
> tracker-indexer.c:350
> #4  0x0000003af9837f5b in g_timeout_dispatch (source=0x801bc0,
> callback=0x7fffffffd44b, user_data=0x0) at gmain.c:3589
> #5  0x0000003af983779b in g_main_dispatch () at gmain.c:2144
> #6  IA__g_main_context_dispatch (context=0x6315a0) at gmain.c:2697
> #7  0x0000003af983af6d in g_main_context_iterate (context=0x6315a0,
> block=1, dispatch=1, self=<value optimized out>) at gmain.c:2778
> #8  0x0000003af983b49d in IA__g_main_loop_run (loop=0x799cc0) at
> gmain.c:2986
> #9  0x000000000040faf5 in main (argc=1, argv=0x7fffffffd928) at
> tracker-main.c:396
> (gdb) print center
> $1 = 2147483647
> (gdb) print right
> $2 = 4294967295
> (gdb) print left
> $3 = 0
> (gdb) print old_hit_count
> $4 = 5
> (gdb) print word
> $5 = (const gchar *) 0x11e51e0 "_random"
> (gdb) print tsiz
> $6 = 40
> 
> 
> Any ideas?

I figured out what was happening, the pivots to perform binary search
were declared as guint, however the right pivot could potentially get to
be -1 if the item isn't found, so it underflowed to G_MAXUINT. I've just
fixed it in trunk.

Thanks! :)


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

Reply via email to