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
