Changeset: e1e1d8d08cde for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e1e1d8d08cde
Branch: Aug2024
Log Message:
merged
diffs (255 lines):
diff --git a/documentation/source/manual_pages/mserver5.rst.in
b/documentation/source/manual_pages/mserver5.rst.in
--- a/documentation/source/manual_pages/mserver5.rst.in
+++ b/documentation/source/manual_pages/mserver5.rst.in
@@ -167,13 +167,16 @@ MSERVER5 OPTIONS
**268435456**
(HEAPMASK) trace/debug HEAPextend; used only for development &
- debugging **536870912** (FORCEMITOMASK) forcefully activate
- mitosis even on small tables, i.e., split small tables in as many
- (tiny) pieces as there are cores (threads) available; this allows
- us to test mitosis functionality without requiring large data sets
- (— at the expense of a potentially significant interpretation
- overhead for unnecessarily large plans); used only for development
- & testing; set automatically by Mtest.py
+ debugging
+
+ **536870912**
+ (FORCEMITOMASK) forcefully activate mitosis even on small tables,
+ i.e., split small tables in as many (tiny) pieces as there are
+ cores (threads) available; this allows us to test mitosis
+ functionality without requiring large data sets (— at the expense
+ of a potentially significant interpretation overhead for
+ unnecessarily large plans); used only for development & testing;
+ set automatically by Mtest.py
**--algorithms**
Equivalent to **--debug=**\ *(ALGOMASK)*.
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -390,6 +390,7 @@ gdk_export _Noreturn void GDKfatal(_In_z
#define IOMASK (1U<<4)
#define BATMASK (1U<<5)
#define PARMASK (1U<<7)
+#define TESTINGMASK (1U<<8)
#define TMMASK (1U<<9)
#define TEMMASK (1U<<10)
#define PERFMASK (1U<<12)
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -2350,7 +2350,7 @@ log_new(int debug, const char *fn, const
lng max_file_age = GDKgetenv_int("wal_max_file_age", 600);
lng max_file_size = 0;
- if (GDKdebug & FORCEMITOMASK) {
+ if (GDKdebug & TESTINGMASK) {
max_file_size = 2048; /* 2 KiB */
} else {
const char *max_file_size_str = GDKgetenv("wal_max_file_size");
@@ -2548,7 +2548,7 @@ log_create(int debug, const char *fn, co
static logged_range *
log_next_logfile(logger *lg, ulng ts)
{
- int m = (ATOMIC_GET(&GDKdebug) & FORCEMITOMASK) ? 1000 : 100;
+ int m = (ATOMIC_GET(&GDKdebug) & TESTINGMASK) ? 1000 : 100;
if (!lg->pending || !lg->pending->next)
return NULL;
rotation_lock(lg);
diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c
--- a/gdk/gdk_strimps.c
+++ b/gdk/gdk_strimps.c
@@ -94,7 +94,7 @@
#define STRIMP_HEADER_SIZE 64
#define STRIMP_PAIRS (STRIMP_HEADER_SIZE - 1)
#define STRIMP_CREATION_THRESHOLD \
- ((BUN) ((ATOMIC_GET(&GDKdebug) & FORCEMITOMASK)? 100 : 5000))
+ ((BUN) ((ATOMIC_GET(&GDKdebug) & TESTINGMASK)? 100 : 5000))
typedef struct {
#ifdef UTF8STRIMPS
diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -590,7 +590,7 @@ GDKtracer_log(const char *file, const ch
if (interrupted)
reinit();
- if (level <= M_WARNING || (ATOMIC_GET(&GDKdebug) & FORCEMITOMASK)) {
+ if (level <= M_WARNING || (ATOMIC_GET(&GDKdebug) & TESTINGMASK)) {
fprintf(level <= M_ERROR && !isexit ? stderr : stdout,
"#%s%s%s: %s: %s: %s%s%s\n",
add_ts ? ts : "",
diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -1087,7 +1087,7 @@ static void
profilerHeartbeat(void *dummy)
{
int t;
- const int timeout = ATOMIC_GET(&GDKdebug) & FORCEMITOMASK ? 10 : 25;
+ const int timeout = ATOMIC_GET(&GDKdebug) & TESTINGMASK ? 10 : 25;
(void) dummy;
for (;;) {
diff --git a/monetdb5/modules/mal/clients.c b/monetdb5/modules/mal/clients.c
--- a/monetdb5/modules/mal/clients.c
+++ b/monetdb5/modules/mal/clients.c
@@ -475,8 +475,8 @@ CLTqueryTimeout(Client cntxt, MalBlkPtr
msg = createException(MAL, "clients.setquerytimeout",
"Session not active
anymore");
else {
- /* when testing (FORCEMITOMASK), reduce timeout of 1 sec to 1
msec */
- lng timeout_micro = ATOMIC_GET(&GDKdebug) & FORCEMITOMASK
+ /* when testing (TESTINGMASK), reduce timeout of 1 sec to 1
msec */
+ lng timeout_micro = ATOMIC_GET(&GDKdebug) & TESTINGMASK
&& qto == 1 ? 1000 : (lng) qto * 1000000;
mal_clients[idx].querytimeout = timeout_micro;
}
diff --git a/monetdb5/modules/mal/mal_mapi.c b/monetdb5/modules/mal/mal_mapi.c
--- a/monetdb5/modules/mal/mal_mapi.c
+++ b/monetdb5/modules/mal/mal_mapi.c
@@ -292,7 +292,7 @@ SERVERlistenThread(SOCKET *Sock)
}
/* Wait up to 0.1 seconds (0.01 if testing) */
retval = poll(pfd, npfd,
- ATOMIC_GET(&GDKdebug) & FORCEMITOMASK
? 10 : 100);
+ ATOMIC_GET(&GDKdebug) & TESTINGMASK ?
10 : 100);
if (retval == -1 && errno == EINTR)
continue;
#else
@@ -308,7 +308,7 @@ SERVERlistenThread(SOCKET *Sock)
}
/* Wait up to 0.1 seconds (0.01 if testing) */
struct timeval tv = (struct timeval) {
- .tv_usec = ATOMIC_GET(&GDKdebug) & FORCEMITOMASK ?
10000 : 100000,
+ .tv_usec = ATOMIC_GET(&GDKdebug) & TESTINGMASK ? 10000
: 100000,
};
retval = select((int) msgsock + 1, &fds, NULL, NULL, &tv);
diff --git a/monetdb5/optimizer/opt_candidates.c
b/monetdb5/optimizer/opt_candidates.c
--- a/monetdb5/optimizer/opt_candidates.c
+++ b/monetdb5/optimizer/opt_candidates.c
@@ -24,7 +24,7 @@ OPTcandidatesImplementation(Client cntxt
InstrPtr p;
str msg = MAL_SUCCEED;
- if (!(ATOMIC_GET(&GDKdebug) & FORCEMITOMASK))
+ if (!(ATOMIC_GET(&GDKdebug) & TESTINGMASK))
goto wrapup;
(void) cntxt;
(void) stk; /* to fool compilers */
diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c
--- a/sql/server/rel_dump.c
+++ b/sql/server/rel_dump.c
@@ -335,7 +335,7 @@ exp_print(mvc *sql, stream *fout, sql_ex
if (decorate && e->p && e->type != e_atom && !exp_is_atom(e)) {
for (prop *p = e->p; p; p = p->p) {
/* Don't show min/max/unique est on atoms, or when
running tests with forcemito */
- if ((ATOMIC_GET(&GDKdebug) & NOSYNCMASK) == 0 ||
+ if ((ATOMIC_GET(&GDKdebug) & TESTINGMASK) == 0 ||
(p->kind != PROP_MIN && p->kind != PROP_MAX &&
p->kind != PROP_NUNIQUES)) {
char *pv = propvalue2string(sql->ta, p);
mnstr_printf(fout, " %s %s",
propkind2string(p), pv);
@@ -690,7 +690,7 @@ rel_print_rel(mvc *sql, stream *fout, s
}
if (decorate && rel->p) {
for (prop *p = rel->p; p; p = p->p) {
- if (p->kind != PROP_COUNT || (ATOMIC_GET(&GDKdebug) &
NOSYNCMASK) == 0) {
+ if (p->kind != PROP_COUNT || (ATOMIC_GET(&GDKdebug) &
TESTINGMASK) == 0) {
char *pv = propvalue2string(sql->ta, p);
mnstr_printf(fout, " %s %s",
propkind2string(p), pv);
}
diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c
--- a/sql/server/rel_optimizer.c
+++ b/sql/server/rel_optimizer.c
@@ -669,7 +669,7 @@ rel_optimizer_one(mvc *sql, sql_rel *rel
.has_special_modify = rel && is_modify(rel->op) && rel->flag&UPD_COMP};
visitor v = { .sql = sql, .value_based_opt = value_based_opt,
.storage_based_opt = storage_based_opt, .changes = 1, .data = &gp };
- sql->runs = !(ATOMIC_GET(&GDKdebug) & FORCEMITOMASK) && profile ?
sa_zalloc(sql->sa, NSQLREWRITERS * sizeof(sql_optimizer_run)) : NULL;
+ sql->runs = !(ATOMIC_GET(&GDKdebug) & TESTINGMASK) && profile ?
sa_zalloc(sql->sa, NSQLREWRITERS * sizeof(sql_optimizer_run)) : NULL;
for ( ;rel && gp.opt_cycle < 20 && v.changes; gp.opt_cycle++) {
v.changes = 0;
gp = (global_props) {.cnt = {0}, .instantiate =
(uint8_t)instantiate, .opt_cycle = gp.opt_cycle, .has_special_modify =
gp.has_special_modify};
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -2452,7 +2452,7 @@ store_manager(sqlstore *store)
MT_lock_set(&store->flush);
for (;;) {
- const int idle = ATOMIC_GET(&GDKdebug) & FORCEMITOMASK ? 5000 :
IDLE_TIME * 1000000;
+ const int idle = ATOMIC_GET(&GDKdebug) & TESTINGMASK ? 5000 :
IDLE_TIME * 1000000;
/* if debug bit 1024 is set, attempt immediate log activation
* and clear the bit */
if (store->debug&(128|1024) || ATOMIC_GET(&store->lastactive) +
idle < (ATOMIC_BASE_TYPE) GDKusec()) {
@@ -4094,7 +4094,7 @@ sql_trans_commit(sql_trans *tr)
const bool log = !tr->parent && tr->logchanges > 0;
if (log) {
- const lng min_changes = ATOMIC_GET(&GDKdebug) &
FORCEMITOMASK ? 5 : 1000000;
+ const lng min_changes = ATOMIC_GET(&GDKdebug) &
TESTINGMASK ? 5 : 1000000;
flush = (tr->logchanges > min_changes &&
list_empty(store->changes));
}
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -2678,13 +2678,13 @@ class ServerClass:
self.outfile.flush()
self.errfile.flush()
+ cmd = self.cmd
if procdebug:
- print('LaunchIt: starting process "%s" (inpipe)\n' % '"
"'.join(self.cmd))
+ print('LaunchIt: starting process "%s" (inpipe)\n' % '"
"'.join(cmd))
setpgrp = True
stdin = open(os.devnull)
stdout = self.outfile
stderr = self.errfile
- cmd = self.cmd
if self.inmem:
stdout = process.PIPE
elif self.pollfile:
@@ -2694,7 +2694,7 @@ class ServerClass:
pass
if self.dbg:
stdin = stdout = stderr = None
- cmd = splitcommand(self.dbg) + self.cmd
+ cmd = splitcommand(self.dbg) + cmd
else:
stdout = process.PIPE
if os.name == "nt":
@@ -3300,7 +3300,7 @@ if THISFILE == 'Mz.py':
produce_html = False
verbosity == 0
THISPATH = os.path.realpath(os.path.dirname(sys.argv[0]))
-TSTDBG = str(2+8)
+TSTDBG = "2"
TSTTHREADS = "0"
dftTSTPREF = "mTests"
TSTSUFF = "Tests"
@@ -3967,8 +3967,8 @@ def main(argv) :
SOCK = ""
exe = {}
- exe['mserver5'] = CheckExec('mserver5') , 'mserver5
--debug=%s --set gdk_nr_threads=%s %s --set mapi_listenaddr=all --set
mapi_port=0 %s %s' % \
-
(env['GDK_DEBUG'], env['GDK_NR_THREADS'], env['setMONETDB_MOD_PATH'], SOCK,
'--forcemito' if not nomito else f'-d{1 << 24}')
+ exe['mserver5'] = CheckExec('mserver5') , 'mserver5
--debug=%s --debug=256 --set gdk_nr_threads=%s %s --set mapi_listenaddr=all
--set mapi_port=0 %s %s' % \
+
(env['GDK_DEBUG'], env['GDK_NR_THREADS'], env['setMONETDB_MOD_PATH'], SOCK,
'--forcemito' if not nomito else '') # turn off forcemito, but keep nosync
exe['ruby_client'] = CheckExec(env['RUBYCLIENT'].split(None, 1)[0])
, '%s %s' % (env['RUBYCLIENT'], '${PORT}')
exe['MAL_Client'] = CheckExec(env['MALCLIENT'].split(None, 1)[0])
, '%s --host=%s --port=%s' % (env['MALCLIENT'], HOST, '${PORT}')
exe['SQL_Client'] = CheckExec(env['SQLCLIENT'].split(None, 1)[0])
, '%s -i -e --host=%s --port=%s' % (env['SQLCLIENT'], HOST, '${PORT}')
diff --git a/tools/mserver/mserver5.1.in b/tools/mserver/mserver5.1.in
--- a/tools/mserver/mserver5.1.in
+++ b/tools/mserver/mserver5.1.in
@@ -227,6 +227,7 @@ effects of MAL optimizers
.B 268435456
(HEAPMASK) trace/debug HEAPextend;
used only for development & debugging
+.TP
.B 536870912
(FORCEMITOMASK) forcefully activate mitosis even on
small tables, i.e., split small tables
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]