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

Reply via email to