Changeset: 909e2c3fbf92 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=909e2c3fbf92
Modified Files:
monetdb5/modules/mal/wlcr.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_transaction.c
sql/test/wlcr/Tests/wlcr2.py
Branch: wlcr
Log Message:
Autotest for master role upon restart
diffs (111 lines):
diff --git a/monetdb5/modules/mal/wlcr.c b/monetdb5/modules/mal/wlcr.c
--- a/monetdb5/modules/mal/wlcr.c
+++ b/monetdb5/modules/mal/wlcr.c
@@ -152,9 +152,8 @@ WLCRinit(Client cntxt)
}
if (dbname){
- wlcr_dbname = GDKstrdup(dbname);
dir = GDKfilepath(0,0,"master",0);
- snprintf(path, PATHLENGTH,"%s%c%s_wlcr",dir, DIR_SEP,
wlcr_dbname);
+ snprintf(path, PATHLENGTH,"%s%c%s_wlcr",dir, DIR_SEP, dbname);
fd = fopen(path,"r");
if( fd){
// database is in master tracking mode
@@ -164,6 +163,7 @@ WLCRinit(Client cntxt)
(void) fclose(fd);
return MAL_SUCCEED;
}
+ wlcr_dbname = GDKstrdup(dbname);
wlcr_dir = dir;
#ifdef _WLCR_DEBUG_
mnstr_printf(cntxt->fdout,"#Master control
active:%d\n", wlcr_batch);
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -34,7 +34,6 @@
#include <bbp.h>
#include <opt_pipes.h>
#include <orderidx.h>
-#include <wlcr.h>
#include "clients.h"
#include "mal_instruction.h"
#include "mal_resource.h"
diff --git a/sql/backends/monet5/sql_scenario.c
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -93,15 +93,17 @@ SQLsession(Client cntxt, MalBlkPtr mb, M
(void) mb;
(void) stk;
(void) pci;
+
if (SQLinitialized == 0 && (msg = SQLprelude(NULL)) != MAL_SUCCEED)
return msg;
msg = setScenario(cntxt, "sql");
// Wait for any recovery process to be finished
do {
- MT_sleep_ms(1000);
logmsg = GDKgetenv("recovery");
- if( logmsg== NULL && ++cnt == 5)
+ if( logmsg== NULL && ++cnt == 10)
throw(SQL,"SQLinit","#WARNING server not ready,
recovery in progress\n");
+ if( logmsg == NULL)
+ MT_sleep_ms(500);
}while (logmsg == NULL);
return msg;
}
@@ -121,10 +123,11 @@ SQLsession2(Client cntxt, MalBlkPtr mb,
msg = setScenario(cntxt, "msql");
// Wait for any recovery process to be finished
do {
- MT_sleep_ms(1000);
logmsg = GDKgetenv("recovery");
if( logmsg== NULL && ++cnt == 5)
throw(SQL,"SQLinit","#WARNING server not ready,
recovery in progress\n");
+ if ( logmsg == NULL)
+ MT_sleep_ms(1000);
}while (logmsg == NULL);
return msg;
}
@@ -158,8 +161,8 @@ SQLprelude(void *ret)
ms->name = "M_S_Q_L";
ms->language = "msql";
ms->initSystem = NULL;
- ms->exitSystem = "SQLexit";
- ms->initClient = "SQLinitClient";
+ms->exitSystem = "SQLexit";
+ms->initClient = "SQLinitClient";
ms->exitClient = "SQLexitClient";
ms->reader = "MALreader";
ms->parser = "MALparser";
@@ -256,6 +259,8 @@ SQLinit(void)
throw(SQL, "SQLinit", "Starting idle manager failed");
}
GDKregister(idlethread);
+ // check WLCR status
+ WLCRinit(&mal_clients[0]);
return MAL_SUCCEED;
}
diff --git a/sql/backends/monet5/sql_transaction.c
b/sql/backends/monet5/sql_transaction.c
--- a/sql/backends/monet5/sql_transaction.c
+++ b/sql/backends/monet5/sql_transaction.c
@@ -20,7 +20,6 @@
#include "sql_qc.h"
#include "sql_optimizer.h"
#include "mal_namespace.h"
-#include "wlcr.h"
#include "opt_prelude.h"
#include "querylog.h"
#include "mal_builder.h"
diff --git a/sql/test/wlcr/Tests/wlcr2.py b/sql/test/wlcr/Tests/wlcr2.py
--- a/sql/test/wlcr/Tests/wlcr2.py
+++ b/sql/test/wlcr/Tests/wlcr2.py
@@ -18,7 +18,6 @@ s = process.server(dbname = dbname, stdi
c = process.client('sql', dbname = dbname, stdin = process.PIPE, stdout =
process.PIPE, stderr = process.PIPE)
cout, cerr = c.communicate('''\
-call master();
update tmp set i = 3 where i = 1;
update tmp set s = 'blah';
select * from tmp;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list