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

