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

Reply via email to