Hi again,
I got no answer. Has no one else seen these segfault problems when upgrading? Is my MySQL version too old (14.14)? What version is recommended? Has anyone some other guess on what went wrong? Cheers, -- Lennart Karlsson UPPMAX, Uppsala University, Sweden http://www.uppmax.uu.se On 09/04/2013 11:49 AM, Lennart Karlsson wrote:
Hi, Today I tried to upgrade to version 2.6.1 and started with slurmdbd. The new one seems to have great problems with MySLQ (version 14.14). Command /usr/sbin/slurmdbd -D -vvvvvv says: slurmdbd: debug3: Trying to load plugin /usr/lib64/slurm/auth_munge.so slurmdbd: auth plugin for Munge (http://code.google.com/p/munge/) loaded slurmdbd: debug3: Success. slurmdbd: debug3: Trying to load plugin /usr/lib64/slurm/accounting_storage_mysql.so slurmdbd: debug2: mysql_connect() called for db slurm_acct_db slurmdbd: debug4: (accounting_storage_mysql.c:1059) query show tables like 'user_table'; slurmdbd: debug4: (accounting_storage_mysql.c:1079) query show tables like 'haddock_assoc_table'; slurmdbd: debug4: (accounting_storage_mysql.c:1096) query show columns from "haddock_assoc_table" where Field='is_def'; Segmentation fault (core dumped) Please note that my version of MySQL does not like the "show columns" command, and that this might possible be the source of the problems: mysql> show columns from "haddock_assoc_table" where Field='is_def'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"haddock_assoc_table" where Field='is_def'' at line 1 mysql> show columns from haddock_assoc_table where Field='is_def'; +--------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+------------+------+-----+---------+-------+ | is_def | tinyint(4) | NO | | 0 | | +--------+------------+------+-----+---------+-------+ 1 row in set (0.00 sec) It might be a bad idea to put citation marks (") around table names, at least for the RHEL version of MySQL... Command "gdb/usr/sbin/slurmdbd" gives (gdb) run Starting program: /usr/sbin/slurmdbd [Thread debugging using libthread_db enabled] [New Thread 0x2aaaae37f700 (LWP 5221)] [Thread 0x2aaaae37f700 (LWP 5221) exited] Program received signal SIGSEGV, Segmentation fault. 0x00000000004cb3c9 in slurm_diff_tv_str (tv1=0x7fffffffcb80, tv2=0x7fffffffcb70, tv_str=0x7fffffffcbd0 "9Z\215\253\252*", len_tv_str=20, from=0x76a018 "make table current \"haddock_assoc_table\"", limit=0, delta_t=0x0) at timers.c:59 59 (*delta_t) = (tv2->tv_sec - tv1->tv_sec) * 1000000; Missing separate debuginfos, use: debuginfo-install slurm-slurmdbd-2.6.1-1.el6.x86_64 (gdb) bt #0 0x00000000004cb3c9 in slurm_diff_tv_str (tv1=0x7fffffffcb80, tv2=0x7fffffffcb70, tv_str=0x7fffffffcbd0 "9Z\215\253\252*", len_tv_str=20, from=0x76a018 "make table current \"haddock_assoc_table\"", limit=0, delta_t=0x0) at timers.c:59 #1 0x00002aaaab8cdbf1 in _mysql_make_table_current (mysql_conn=0x74da08, table_name=0x7fffffffd730 "\"haddock_assoc_table\"", fields=<value optimized out>, ending=0x2aaaab8d1c50 ", primary key (id_assoc), unique index (user(20), acct(20), partition(20)))") at mysql_common.c:397 #2 mysql_db_create_table (mysql_conn=0x74da08, table_name=0x7fffffffd730 "\"haddock_assoc_table\"", fields=<value optimized out>, ending=0x2aaaab8d1c50 ", primary key (id_assoc), unique index (user(20), acct(20), partition(20)))") at mysql_common.c:797 #3 0x00002aaaab8a0a7e in create_cluster_tables (mysql_conn=0x74da08, cluster_name=0x769f78 "haddock") at accounting_storage_mysql.c:1107 #4 0x00002aaaab8a1534 in _as_mysql_acct_check_tables (mysql_conn=0x74da08) at accounting_storage_mysql.c:650 #5 0x00002aaaab8a1af0 in init () at accounting_storage_mysql.c:2104 #6 0x0000000000452460 in plugin_load_from_file (p=0x7fffffffde48, fq_path=0x73ed28 "/usr/lib64/slurm/accounting_storage_mysql.so") at plugin.c:202 #7 0x0000000000452732 in plugin_load_and_link (type_name=<value optimized out>, n_syms=56, names=0x735a20, ptrs=0x73a700) at plugin.c:258 #8 0x00000000004528c1 in plugin_context_create (plugin_type=0x501aa0 "accounting_storage", uler_type=<value optimized out>, ptrs=0x73a700, names=0x735a20, names_size=448) at plugin.c:397 #9 0x00000000004b17ea in slurm_acct_storage_init (loc=0x0) at slurm_accounting_storage.c:284 #10 0x000000000042d01e in main (argc=1, argv=<value optimized out>) at slurmdbd.c:129 (gdb) list 43,75 43 /* 44 * slurm_diff_tv_str - build a string showing the time difference between two 45 * times 46 * IN tv1 - start of event 47 * IN tv2 - end of event 48 * OUT tv_str - place to put delta time in format "usec=%ld" 49 * IN len_tv_str - size of tv_str in bytes 50 * IN from - where the function was called form 51 */ 52 extern void slurm_diff_tv_str(struct timeval *tv1, struct timeval *tv2, 53 char *tv_str, int len_tv_str, char *from, 54 long limit, long *delta_t) 55 { 56 char p[64] = ""; 57 struct tm tm; 58 59 (*delta_t) = (tv2->tv_sec - tv1->tv_sec) * 1000000; 60 (*delta_t) += tv2->tv_usec - tv1->tv_usec; 61 snprintf(tv_str, len_tv_str, "usec=%ld", *delta_t); 62 if (from) { 63 if (!limit) 64 limit = 1000000; 65 if (*delta_t > limit) { 66 if (!localtime_r(&tv2->tv_sec, &tm)) 67 fprintf(stderr, "localtime_r() failed\n"); 68 if (strftime(p, sizeof(p), "%T", &tm) == 0) 69 fprintf(stderr, "strftime() returned 0\n"); 70 verbose("Warning: Note very large processing " 71 "time from %s: %s began=%s.%3.3d", 72 from, tv_str, p, (int)(tv2->tv_usec / 1000)); 73 } 74 } 75 } (gdb) print *tv1 $6 = {tv_sec = 1378285293, tv_usec = 399161} (gdb) print *tv2 $7 = {tv_sec = 1378285293, tv_usec = 399475} (gdb) print len_tv_str $8 = 20 (gdb) print from $10 = 0x76a018 "make table current \"haddock_assoc_table\"" (gdb) print limit $11 = 0 (gdb) print delta_t $21 = (long int *) 0x0 (gdb) print *delta_t Cannot access memory at address 0x0 Cheers, -- Lennart Karlsson UPPMAX, Uppsala University, Sweden http://www.uppmax.uu.se
