Hi,
I have problems with mysql-3.22.32,
which won't start if it is to store its data
to our coda partition.
I tried mysql-3.23.32 as well, same problem.
Problems go away if I set datadir to an ext2 filesystem.
General question: how to debug those problems
that might be coda related ?
>From the strace attached below I see that
line 23 differs, where it reads back the data
sent to ./mysql/bla.frm with pwrite() in line 11,
after the lseek(SEEK_END) in line 9.
Is there documentation what filesystem features
or system calls coda does not support ?
So long,
yours,
Steffen
-------------------------------------------------
datadir on /coda
datadir on /tmp/mysql
1 read(0, create table bla (bla int); read(0, create
table bla (bla int);
2 "create table bla (bla int);\n", 1024) = 28 "create table
bla (bla int);\n", 1024) = 28
3 access("./mysql/bla.frm", F_OK) = -1 ENOENT (No such
access("./mysql/bla.frm", F_OK) = -1 ENOENT (No such
4 open("./mysql/bla.frm", O_RDWR|O_CREAT|O_TRUNC, 0660) = 5
open("./mysql/bla.frm", O_RDWR|O_CREAT|O_TRUNC, 0660) = 5
5 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ write(5,
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
6 lseek(5, 64, SEEK_SET) = 64 lseek(5, 64,
SEEK_SET) = 64
7 write(5, "//\0", 3) = 3 write(5,
"//\0", 3) = 3
8 write(5, "\0 \0\0", 4) = 4 write(5, "\0
\0\0", 4) = 4
9 lseek(5, 0, SEEK_END) = 4096 lseek(5, 0,
SEEK_END) = 4096
10 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ write(5,
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
11 pwrite(5, "\376\1\7\7\3\0\0\20\1\0\0000\0\0\20\0\6\0\0\0\0\0\ pwrite(5,
"\376\1\7\7\3\0\0\20\1\0\0000\0\0\20\0\6\0\0\0\0\0\
12 pwrite(5, "\0\0\6\0\2\0,\0", 8, 4096) = 8 pwrite(5,
"\0\0\6\0\2\0,\0", 8, 4096) = 8
13 lseek(5, 4112, SEEK_SET) = 4112 lseek(5, 4112,
SEEK_SET) = 4112
14 write(5, "\376\0\0\0\0\377", 6) = 6 write(5,
"\376\0\0\0\0\377", 6) = 6
15 lseek(5, 8192, SEEK_SET) = 8192 lseek(5, 8192,
SEEK_SET) = 8192
16 write(5, "h\1\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ write(5,
"h\1\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
17 write(5, "7\0\2\1\2\24) "..., 55) = 5 write(5,
"7\0\2\1\2\24) "..., 55) = 5
18 write(5, "\4\4\v\v\2\0\33\200\0\0\0", 11) = 11 write(5,
"\4\4\v\v\2\0\33\200\0\0\0", 11) = 11
19 write(5, ",", 1) = 1 write(5, ",",
1) = 1
20 write(5, "bla,\0", 5) = 5 write(5,
"bla,\0", 5) = 5
21 close(5) = 0 close(5)
= 0
22 open("./mysql/bla.frm", O_RDONLY) = 5
open("./mysql/bla.frm", O_RDONLY) = 5
23 read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 | read(5,
"\376\1\7\7\3\0\0\20\1\0\0000\0\0\20\0\6\0\0\0\0\0\0\
24 > lseek(5, 64,
SEEK_SET) = 64
25 > read(5,
"//\0\0 \0\0", 7) = 7
26 > lseek(5, 4096,
SEEK_SET) = 4096
27 > read(5,
"\0\0\6\0\2\0,\0", 8) = 8
28 > pread(5,
"\376\0\0\0\0\377", 6, 4112) = 6
29 > lseek(5, 8192,
SEEK_SET) = 8192
30 > read(5,
"h\1\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
31 > read(5,
"7\0\2\1\2\24) "..., 72) = 72
32 > close(5)
= 0
33 >
lstat("./mysql/bla", 0xbfffc9c4) = -1 ENOENT (No such
34 >
open("./mysql/bla.ISM", O_RDWR|O_CREAT|O_TRUNC, 0660) = 5
35 >
open("./mysql/bla.ISD", O_RDWR|O_CREAT|O_TRUNC, 0660) = 6
36 > getpid()
= 602
37 > time(NULL)
= 981123665
38 > time(NULL)
= 981123665
39 > write(5,
"\376\376\5\2\0\0\250\2\310\0\234\0\0\2\0\0\0\0\0\0\
40 > write(5,
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
41 > write(5,
"\0\4\0\0\0\0\0\0\0\0\0\0\6\0\0\0\377\377\377\377\37
42 > write(5,
"\0\0\1\0", 4) = 4
43 > write(5,
"\0\0\4\0", 4) = 4
44 > write(5,
"\0\0\1\0", 4) = 4
45 > lseek(5, 0,
SEEK_END) = 680
46 > write(5,
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
47 > close(6)
= 0
48 close(5) = 0 close(5)
= 0
49 write(2, "ERROR: 1033 Incorrect informati"..., 62ERROR: <
50 1033 Incorrect information in file: './mysq <
Complete strace output repeated
---------------------------------------------------------------
starting a freshly installed mysqld with
strace /coda/vol/mysql/libexec/mysqld --bootstrap
--skip-grant-tables --basedir=/coda/vol/mysql
--datadir=/coda/vol/mysql/var
create table bla (bla int); leads to :
read(0, create table bla (bla int);
"create table bla (bla int);\n", 1024) = 28
access("./mysql/bla.frm", F_OK) = -1 ENOENT (No such file or directory)
open("./mysql/bla.frm", O_RDWR|O_CREAT|O_TRUNC, 0660) = 5
write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
lseek(5, 64, SEEK_SET) = 64
write(5, "//\0", 3) = 3
write(5, "\0 \0\0", 4) = 4
lseek(5, 0, SEEK_END) = 4096
write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
pwrite(5, "\376\1\7\7\3\0\0\20\1\0\0000\0\0\20\0\6\0\0\0\0\0\0\0\0"..., 64, 0) = 64
pwrite(5, "\0\0\6\0\2\0,\0", 8, 4096) = 8
lseek(5, 4112, SEEK_SET) = 4112
write(5, "\376\0\0\0\0\377", 6) = 6
lseek(5, 8192, SEEK_SET) = 8192
write(5, "h\1\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 288) = 288
write(5, "7\0\2\1\2\24) "..., 55) = 55
write(5, "\4\4\v\v\2\0\33\200\0\0\0", 11) = 11
write(5, ",", 1) = 1
write(5, "bla,\0", 5) = 5
close(5) = 0
open("./mysql/bla.frm", O_RDONLY) = 5
read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
close(5) = 0
write(2, "ERROR: 1033 Incorrect informati"..., 62ERROR:
1033 Incorrect information in file: './mysql/bla.frm') = 62
With datadir set to an ext2 fs it looks like this:
strace /coda/vol/mysql/libexec/mysqld
--bootstrap --skip-grant-tables
--basedir=/coda/vol/mysql
--datadir=/tmp/mysql
read(0, create table bla (bla int);
"create table bla (bla int);\n", 1024) = 28
access("./mysql/bla.frm", F_OK) = -1 ENOENT (No such file or directory)
open("./mysql/bla.frm", O_RDWR|O_CREAT|O_TRUNC, 0660) = 5
write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
lseek(5, 64, SEEK_SET) = 64
write(5, "//\0", 3) = 3
write(5, "\0 \0\0", 4) = 4
lseek(5, 0, SEEK_END) = 4096
write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
pwrite(5, "\376\1\7\7\3\0\0\20\1\0\0000\0\0\20\0\6\0\0\0\0\0\0\0\0"..., 64, 0) = 64
pwrite(5, "\0\0\6\0\2\0,\0", 8, 4096) = 8
lseek(5, 4112, SEEK_SET) = 4112
write(5, "\376\0\0\0\0\377", 6) = 6
lseek(5, 8192, SEEK_SET) = 8192
write(5, "h\1\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 288) = 288
write(5, "7\0\2\1\2\24) "..., 55) = 55
write(5, "\4\4\v\v\2\0\33\200\0\0\0", 11) = 11
write(5, ",", 1) = 1
write(5, "bla,\0", 5) = 5
close(5) = 0
open("./mysql/bla.frm", O_RDONLY) = 5
read(5, "\376\1\7\7\3\0\0\20\1\0\0000\0\0\20\0\6\0\0\0\0\0\0\0\0"..., 64) = 64
lseek(5, 64, SEEK_SET) = 64
read(5, "//\0\0 \0\0", 7) = 7
lseek(5, 4096, SEEK_SET) = 4096
read(5, "\0\0\6\0\2\0,\0", 8) = 8
pread(5, "\376\0\0\0\0\377", 6, 4112) = 6
lseek(5, 8192, SEEK_SET) = 8192
read(5, "h\1\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 288) = 288
read(5, "7\0\2\1\2\24) "..., 72) = 72
close(5) = 0
lstat("./mysql/bla", 0xbfffc9c4) = -1 ENOENT (No such file or directory)
open("./mysql/bla.ISM", O_RDWR|O_CREAT|O_TRUNC, 0660) = 5
open("./mysql/bla.ISD", O_RDWR|O_CREAT|O_TRUNC, 0660) = 6
getpid() = 602
time(NULL) = 981123665
time(NULL) = 981123665
write(5, "\376\376\5\2\0\0\250\2\310\0\234\0\0\2\0\0\0\0\0\0\0\0"..., 200) = 200
write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 312) = 312
write(5, "\0\4\0\0\0\0\0\0\0\0\0\0\6\0\0\0\377\377\377\377\377\377"..., 156) = 156
write(5, "\0\0\1\0", 4) = 4
write(5, "\0\0\4\0", 4) = 4
write(5, "\0\0\1\0", 4) = 4
lseek(5, 0, SEEK_END) = 680
write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 344) = 344
close(6) = 0
close(5) = 0