Re: [Tracker] tracker on solaris
- From: Jamie McCracken <jamiemcc blueyonder co uk>
- To: Jamie McCracken <jamiemcc blueyonder co uk>
- Cc: Jedy Wang <Jedy Wang Sun COM>, Harry Lu Sun COM, Tracker List <tracker-list gnome org>
- Subject: Re: [Tracker] tracker on solaris
- Date: Tue, 25 Jul 2006 12:08:12 +0100
Jamie McCracken wrote:
Jedy Wang wrote:
Hi Jamie,
I built tracker-0.0.4 on Solaris. But when I run trackerd, it will crash
because of segmentation fault and produce a core file. If I run pstack
core, it outpus:
-bash-3.00$ pstack core
core 'core' of 2452: trackerd
fe9b19b3 mutex_lock_impl (0, 0) + 23
fe9b1baf mutex_lock (0) + 1d
08176e59 do_cleanup (804753c, fe9b86cf, b, 0, 80475d0, 8047594) + 29
081775ad signal_handler (b, 0, 80475d0) + 4d
fe9b86cf __sighndlr (b, 0, 80475d0, 8177560) + f
fe9ae420 call_user_handler (b, 0, 80475d0) + 247
fe9ae5a8 sigacthandler (b, 0, 80475d0) + bc
--- called from signal handler with signal 11 (SIGSEGV) ---
081b9c66 handle_options (8047a4c, 8047a50, 8508c94, 819c4c0) + 76
0819d2c9 __1cLget_options6Fippc_v_ (1, 85fd5b4) + 49
0819adfa __1cVinit_common_variables6Fpkcippcp1_i_ (84766bc, c, 85fd5b0,
8508508) + 16a
0819e9ad init_embedded_server (c, 85ea838, 8508508) + 8d
08191017 mysql_server_init (c, 85ea838, 8508508) + 127
081793e3 main (1, 8047c20, 8047c28) + 563
08176a6a _start (1, 8047cec, 0, 8047cf5, 8047cf9, 8047d09) + 7a
It's crashing in the embedded mysql server. Do you have the embedded
server working correctly on Solaris with anything else?
It also seems to crashing when handling the passed options (handle_options)
The trackerd code for calling mysql_server_init is:
static char **server_options;
static char *server_groups[] = {"libmysqd_server", "libmysqd_client",
NULL};
/* initialise embedded mysql with options*/
server_options = g_new (char *, 12);
server_options[0] = g_strdup ("anything");
server_options[1] = g_strconcat ("--datadir=", tracker_data_dir, NULL);
server_options[2] = g_strdup ("--myisam-recover=FORCE");
server_options[3] = g_strdup ("--skip-grant-tables");
server_options[4] = g_strdup ("--skip-innodb");
server_options[5] = g_strdup ("--key_buffer_size=1M");
server_options[6] = g_strdup ("--character-set-server=utf8");
server_options[7] = g_strdup ("--ft_max_word_len=45");
server_options[8] = g_strdup ("--ft_min_word_len=3");
server_options[9] = g_strdup ("--ft_stopword_file=" DATADIR
"/tracker/tracker-stop-words.txt");
server_options[10] = g_strconcat ("--language=", str, NULL);
server_options[11] = NULL;
mysql_server_init ( 11, server_options, server_groups);
I dont know if mysql on solaris is sensitive to the server_options array
being null terminated which it does not need to be as mysql_server_init
needs to know the size of the array (11).
You might want to experiment with changing the above code in trackerd.c
try:
server_options = g_new (char *, 11);
and remove line : server_options[11] = NULL;
(if its not null terminated then you will also have to remove the
g_strfreev (server_options) after it otherwise that bit will crash)
--
Mr Jamie McCracken
http://jamiemcc.livejournal.com/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]