tag 414444 + patch thanks I managed to get a backtrace at last:
(gdb) thread apply all bt full Thread 6 (Thread 65539 (LWP 24794)): #0 0xb7d20b64 in __pthread_sigsuspend (set=0xb76fbd44) at ../linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c:54 resultvar = 4294966782 #1 0xb7d1f728 in __pthread_wait_for_restart_signal (self=0x81f7bc0) at pthread.c:1224 mask = {__val = {2147221247, 4294967292, 3084021748, 3083202916, 136281024, 1, 138727832, 3083945568, 32, 3084001294, 3083899536, 3084021748, 138727832, 3083945568, 3077553564, 3084021748, 138727832, 3083945568, 3077553564, 3083988975, 3083945584, 3084001524, 3084001294, 3083204191, 3084001934, 138727832, 3085029860, 138727832, 3084021748, 0, 0, 3083990749}} #2 0xb7d1d0eb in __pthread_cond_wait (cond=0x80b2680, mutex=0x80b2730) at restart.h:34 self = (volatile pthread_descr) 0x81f7bc0 extr = {pu_object = 0x80b2680, pu_extricate_func = 0xb7d1d220 <cond_extricate_func>} spurious_wakeup_count = 0 #3 0x0805018c in process_user_request_queue_thread () at trackerd.c:1424 rec = (DBusRec *) 0x0 reply = (DBusMessage *) 0xb7e1d1e4 signal_set = {__val = {4294967295 <repeats 32 times>}} db_con = (DBConnection *) 0x80fec38 blob_db_con = (DBConnection *) 0x80f6648 cache_db_con = (DBConnection *) 0x814e700 #4 0xb7dd52cf in g_thread_create_proxy (data=0x81f9a78) at gthread.c:553 __PRETTY_FUNCTION__ = "g_thread_create_proxy" #5 0xb7d1dc51 in pthread_start_thread (arg=0x81f7bc0) at manager.c:310 ldt_entry = {entry_number = 6, base_addr = 136281024, limit = 1048575, seg_32bit = 1, contents = 0, read_exec_only = 0, limit_in_pages = 1, seg_not_present = 0, useable = 1, empty = 0} request = {req_thread = 0x0, req_kind = REQ_CREATE, req_args = { create = {attr = 0x0, fn = 0, arg = 0x0, mask = {__val = { 0 <repeats 26 times>, 3084001524, 0, 0, 3084001934, 0, 0}}}, free = { thread_id = 0}, exit = {code = 0}, post = 0x0, for_each = {fn = 0, arg = 0x0}}} outcome = <value optimized out> #6 0xb7d1ddb4 in pthread_start_thread_event (arg=0x81f7bc0) at manager.c:334 ldt_entry = {entry_number = 6, base_addr = 136281024, limit = 1048575, seg_32bit = 1, contents = 0, read_exec_only = 0, limit_in_pages = 1, seg_not_present = 0, useable = 1, empty = 0} #7 0xb7cb638a in clone () from /usr/lib/debug/libc.so.6 fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = { mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0, fs_passno = 0}} __elf_set___libc_subfreeres_element_fstab_free__ = ( const void *) 0xb7cf1040 Thread 5 (Thread 49154 (LWP 24793)): #0 0x0807b4f1 in tracker_get_mime_type ( uri=0x81816a8 "/home/sam/public_html/cal/ian") at tracker-utils.c:1335 finfo = {st_dev = 2304, __pad1 = 0, st_ino = 36536322, st_mode = 33188, st_nlink = 1, st_uid = 1000, st_gid = 1000, st_rdev = 0, __pad2 = 0, st_size = 8793, st_blksize = 4096, st_blocks = 24, st_atim = { tv_sec = 1174147202, tv_nsec = 0}, st_mtim = {tv_sec = 1174147202, tv_nsec = 0}, st_ctim = {tv_sec = 1174147202, tv_nsec = 0}, __unused4 = 0, __unused5 = 0} uri_in_locale = 0x8127b00 "/home/sam/public_html/cal/ian" result = 0x0 mime = 0xf <Address 0xf out of bounds> i = 0 #1 0x08067a9a in tracker_db_index_file (db_con=0x80de370, info=0x81f4370, is_attachment=0) at tracker-db.c:955 meta_table = (GHashTable *) 0xb731efc0 ext = 0xb78fbd68 "Ƚ\217�\232\201\006\bp�\r\bpC\037\b" str_link_uri = 0x807b266 "\211E�\213E���U\211�\203�(�D$\020" service_name = 0x809f954 "Files" services_with_metadata = {0x809be8f "Documents", 0x809be99 "Music", 0x809be9f "Videos", 0x809bea6 "Images", 0x0} services_with_text = {0x809be8f "Documents", 0x809bead "Text Files", 0x809beb8 "Development Files", 0x0} services_with_thumbs = {0x809be8f "Documents", 0x809bea6 "Images", 0x809be9f "Videos", 0x0} is_file_indexable = 134948848 service_has_metadata = -1215316632 is_external_service = -1210324175 service_has_fulltext = 136674008 service_has_thumbs = 136674008 #2 0x0806819a in tracker_db_index_entity (db_con=0x80de370, info=0x81f4370) at tracker-db.c:1084 __PRETTY_FUNCTION__ = "tracker_db_index_entity" #3 0x0804ffa2 in process_files_thread () at trackerd.c:1353 info = (FileInfo *) 0x81f4370 need_index = 1 signal_set = {__val = {4294967295 <repeats 32 times>}} db_con = (DBConnection *) 0x80de370 blob_db_con = (DBConnection *) 0x80fc048 moved_from_list = (GSList *) 0x0 pushed_events = 0 first_run = 1 #4 0xb7dd52cf in g_thread_create_proxy (data=0x80de540) at gthread.c:553 __PRETTY_FUNCTION__ = "g_thread_create_proxy" #5 0xb7d1dc51 in pthread_start_thread (arg=0x81f9620) at manager.c:310 ldt_entry = {entry_number = 6, base_addr = 136287776, limit = 1048575, seg_32bit = 1, contents = 0, read_exec_only = 0, limit_in_pages = 1, seg_not_present = 0, useable = 1, empty = 0} request = {req_thread = 0x0, req_kind = REQ_CREATE, req_args = { create = {attr = 0x0, fn = 0, arg = 0x0, mask = {__val = { 0 <repeats 26 times>, 3084001524, 0, 0, 3084001934, 0, 0}}}, free = { thread_id = 0}, exit = {code = 0}, post = 0x0, for_each = {fn = 0, arg = 0x0}}} outcome = <value optimized out> #6 0xb7d1ddb4 in pthread_start_thread_event (arg=0x81f9620) at manager.c:334 ldt_entry = {entry_number = 6, base_addr = 136287776, limit = 1048575, seg_32bit = 1, contents = 0, read_exec_only = 0, limit_in_pages = 1, seg_not_present = 0, useable = 1, empty = 0} #7 0xb7cb638a in clone () from /usr/lib/debug/libc.so.6 fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = { mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0, fs_passno = 0}} __elf_set___libc_subfreeres_element_fstab_free__ = ( const void *) 0xb7cf1040 Thread 2 (Thread 32769 (LWP 24734)): #0 0xb7cad579 in *__GI___poll (fds=0xb7d12ff4, nfds=1, timeout=2000) at ../sysdeps/unix/sysv/linux/poll.c:86 resultvar = <value optimized out> oldtype = 0 result = <value optimized out> #1 0xb7d1e1f0 in __pthread_manager (arg=0x80c3d40) at manager.c:152 reqfd = 13 ufd = {fd = 13, events = 1, revents = 0} manager_mask = {__val = {4294967279, 4294967294, 4294967295 <repeats 30 times>}} n = <value optimized out> request = {req_thread = 0x80ac8c0, req_kind = REQ_CREATE, req_args = { create = {attr = 0xbfd92254, fn = 0xb7dd5290 <g_thread_create_proxy>, arg = 0x81f9a78, mask = {__val = {2147483648, 0, 19, 3082838696, 3083205297, 3086761972, 3085425912, 1, 3218678248, 3083964784, 3085425912, 3086761972, 3085423264, 1, 3218678272, 3086717689, 3085423692, 40, 3083945608, 1, 0, 3085035651, 46, 3085033472, 12680, 3083964784, 3084001294, 0, 3218678356, 3218678408, 3083978629, 3083994923}}}, free = {thread_id = 3218678356}, exit = { code = -1076288940}, post = 0xbfd92254, for_each = {fn = 0xbfd92254, arg = 0xb7dd5290}}} #2 0xb7d1ebc7 in __pthread_manager_event (arg=0x80c3d40) at manager.c:249 ldt_entry = {entry_number = 6, base_addr = 135019840, limit = 1048575, seg_32bit = 1, contents = 0, read_exec_only = 0, limit_in_pages = 1, seg_not_present = 0, useable = 1, empty = 0} #3 0xb7cb638a in clone () from /usr/lib/debug/libc.so.6 fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = { mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0, fs_passno = 0}} __elf_set___libc_subfreeres_element_fstab_free__ = ( const void *) 0xb7cf1040 Thread 1 (Thread 16384 (LWP 24731)): #0 0xb7d239db in write () from /usr/lib/debug/libpthread.so.0 No symbol table info available. #1 0xb7e7c218 in ?? () from /usr/lib/libsqlite3.so.0 No symbol table info available. #2 0x00000000 in ?? () No symbol table info available. 0x0807b4f1 1335 in tracker-utils.c Looks like the return value of magic_file is not being checked for errors. Here's a patch: --- tracker-0.5.4/src/trackerd/tracker-utils.c 2007-01-26 00:15:11.000000000 +0000 +++ tracker-0.5.4+fix/src/trackerd/tracker-utils.c 2007-03-17 17:57:28.000000000 +0000 @@ -1332,15 +1332,17 @@ result = magic_file (tracker->magic, uri_in_locale); - for (i=0; result[i]; i++) { - if (result[i] == ';') { - break; - } - } - if (result) { + for (i=0; result[i]; i++) { + if (result[i] == ';') { + break; + } + } mime = g_strndup (result, i); } else { + tracker_log ("magic_file error for <%s>: %s\n", + uri_in_locale, + magic_error (tracker->magic)); mime = g_strdup ("unknown"); } } else { -- Sam Morris http://robots.org.uk/ PGP key id 1024D/5EA01078 3412 EA18 1277 354B 991B C869 B219 7FDB 5EA0 1078
signature.asc
Description: This is a digitally signed message part