a couple weeks ago i posted two bug
reports that show how a simple sql
script can corrupt the database (that
is, trigger load_idxcolumn: `kc->c'
assertion failures when connecting).
the reports include a test script that
duplicated the behavior 100% of the
time on my install (Feb2010).
i'm reposting the scripts below as it
seems there are more eyeballs
here than on tracker.
is one of the drop clauses i used
unsupported?
is there a workaround?
thanks,
m
$ ./test.sh
Creating Monet database tst
created database in maintenance mode: tst
starting database 'tst'... done
taken database out of maintenance mode: tst
stopping database 'tst'... done
starting database 'tst'... FAILED
start: starting 'tst' failed: database 'tst' has crashed after starting,
manual intervention needed, check merovingian's logfile for details
$ tail -3 /var/log/merovingian.log
2010-03-23 00:09:46 ERR tst[27143]: mserver5: store.mx:373: load_idxcolumn:
Assertion `kc->c' failed.
2010-03-23 00:09:46 MSG merovingian[28274]: database 'tst' (27143) was
killed by signal 6
2010-03-23 00:09:56 ERR control[28274]: (local): failed to fork mserver:
database 'tst' has crashed after starting, manual intervention needed,
check merovingian's logfile for details
$ cat test.sh
#! /bin/sh -e
#
# Create tst database in MonetDB.
#
user=monetdb
pass=monetdb
db=tst
schema=tst
#
# Note: doesn't abort if database already exists.
#
echo "Creating Monet database ${db}"
sudo monetdb create ${db} || exit 1
sudo monetdb start ${db} || exit 1
sudo monetdb release ${db}
export DOTMONETDBFILE="./.testmonetdb"
cat > ${DOTMONETDBFILE} << EOF
user=${user}
password=${pass}
language=sql
EOF
sql="CREATE SCHEMA "${schema}" AUTHORIZATION "${user}";"
mclient -d ${db} -s "${sql}"
mclient -d ${db} < test.sql
sudo monetdb stop tst
sudo monetdb start tst
#sudo monetdb stop tst && sudo monetdb destroy tst
$ cat test.sql
--
-- Setup two test tables, one that references the other.
--
CREATE TABLE "tst"."t1" (
"id" int NOT NULL,
CONSTRAINT "t1_id_pkey" PRIMARY KEY ("id")
);
CREATE TABLE "tst"."t2" (
"id" int NOT NULL,
"t1_id" int NOT NULL,
CONSTRAINT "t2_id_pkey" PRIMARY KEY ("id"),
CONSTRAINT "t2_t1_id_fkey" FOREIGN KEY ("t1_id") REFERENCES "tst"."
t1" ("id")
);
CREATE INDEX "t2_t1_id" ON "tst"."t2" ("t1_id");
--
-- Drop fkey constraint and index
--
DROP INDEX "tst"."t2_t1_id";
ALTER TABLE "tst"."t2" DROP CONSTRAINT t2_t1_id_fkey;
--
-- Drop fkey column that links tables.
--
ALTER TABLE "tst"."t2" DROP COLUMN t1_id;
$
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Monetdb-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers