Changeset: 929ca52aa5b0 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=929ca52aa5b0 Modified Files: gdk/gdk_bbp.c gdk/gdk_storage.c monetdb5/extras/rapi/rapi.c monetdb5/mal/mal.c monetdb5/modules/mal/manifold.c sql/server/sql_mvc.c tools/mserver/mserver5.c Branch: default Log Message:
Merge with Jun2016 branch. diffs (179 lines): diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -1389,7 +1389,11 @@ BBPinit(void) GDKfatal("BBPinit: cannot properly prepare process %s. Please check whether your disk is full or write-protected", BAKDIR); /* cleanup any leftovers (must be done after BBPrecover) */ - BBPdiskscan(GDKfilepath(0, NULL, BATDIR, NULL)); + { + char *d = GDKfilepath(0, NULL, BATDIR, NULL); + BBPdiskscan(d); + GDKfree(d); + } #if SIZEOF_SIZE_T == 8 && SIZEOF_OID == 8 if (oidsize == SIZEOF_INT) @@ -4065,6 +4069,7 @@ BBPrecover_subdir(void) struct dirent *dent; gdk_return ret = GDK_SUCCEED; + GDKfree(subdirpath); if (dirp == NULL) { return GDK_SUCCEED; /* nothing to do */ } @@ -4094,7 +4099,6 @@ BBPrecover_subdir(void) if (ret != GDK_SUCCEED) GDKerror("BBPrecover_subdir: recovery failed. Please check whether your disk is full or write-protected.\n"); - GDKfree(subdirpath); return ret; } @@ -4323,10 +4327,19 @@ BBPatom_load(int atom) void gdk_bbp_reset(void) { - memset((char*) BBP, 0, sizeof(BBP)); + int i; + + while (BBPlimit > 0) { + BBPlimit -= BBPINIT; + assert(BBPlimit >= 0); + GDKfree(BBP[BBPlimit >> BBPINITLOG]); + } + memset(BBP, 0, sizeof(BBP)); BBPlimit = 0; BBPsize = 0; - memset((char*) BBPfarms, 0, sizeof(BBPfarms)); + for (i = 0; i < MAXFARMS; i++) + GDKfree((void *) BBPfarms[i].dirname); /* loose "const" */ + memset(BBPfarms, 0, sizeof(BBPfarms)); BBP_hash = 0; BBP_mask = 0; stamp = 0; @@ -4339,8 +4352,8 @@ gdk_bbp_reset(void) locked_by = 0; BBPunloadCnt = 0; - memset((char*) lastused, 0, sizeof(lastused)); - memset((char*) bbptrim, 0, sizeof(bbptrim)); + memset(lastused, 0, sizeof(lastused)); + memset(bbptrim, 0, sizeof(bbptrim)); bbptrimfirst = BBPMAXTRIM; bbptrimlast = 0; bbptrimmax = BBPMAXTRIM; diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c --- a/gdk/gdk_storage.c +++ b/gdk/gdk_storage.c @@ -1044,6 +1044,7 @@ BATprintcolumns(stream *s, int argc, BAT mnstr_write(s, " ]\n", 1, 4); } + GDKfree(buf); GDKfree(colinfo); return GDK_SUCCEED; diff --git a/monetdb5/extras/rapi/rapi.c b/monetdb5/extras/rapi/rapi.c --- a/monetdb5/extras/rapi/rapi.c +++ b/monetdb5/extras/rapi/rapi.c @@ -191,8 +191,11 @@ static char *RAPIinstalladdons(void) { UNPROTECT(1); // run rapi.R environment setup script - snprintf(rapiinclude, sizeof(rapiinclude), "source(\"%s\")", - locate_file("rapi", ".R", 0)); + { + char *f = locate_file("rapi", ".R", 0); + snprintf(rapiinclude, sizeof(rapiinclude), "source(\"%s\")", f); + GDKfree(f); + } #if DIR_SEP != '/' { char *p; diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c --- a/monetdb5/mal/mal.c +++ b/monetdb5/mal/mal.c @@ -143,6 +143,7 @@ void mserver_reset(void) */ mal_factory_reset(); mal_dataflow_reset(); + THRdel(mal_clients->mythread); GDKreset(0); // terminate all other threads mal_client_reset(); mal_module_reset(); diff --git a/monetdb5/modules/mal/manifold.c b/monetdb5/modules/mal/manifold.c --- a/monetdb5/modules/mal/manifold.c +++ b/monetdb5/modules/mal/manifold.c @@ -111,6 +111,7 @@ typedef struct{ if (msg) \ break; \ bunfastapp(mut->args[0].b, (void*) y); \ + GDKfree(y); y = NULL; \ for( i = mut->fvar; i<= mut->lvar; i++) { \ if(ATOMstorage(mut->args[i].type) == TYPE_void ){ \ args[i] = (void*) &mut->args[i].o; \ diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c --- a/sql/server/sql_mvc.c +++ b/sql/server/sql_mvc.c @@ -27,37 +27,37 @@ mvc_init(int debug, store_type store, in { int first = 0; - logger_settings *log_settings = (struct logger_settings *) GDKmalloc(sizeof(struct logger_settings)); + logger_settings log_settings; /* Set the default WAL directory. "sql_logs" by default */ - log_settings->logdir = "sql_logs"; + log_settings.logdir = "sql_logs"; /* Get and pass on the WAL directory location, if set */ if (GDKgetenv("gdk_logdir") != NULL) { - log_settings->logdir = GDKgetenv("gdk_logdir"); + log_settings.logdir = GDKgetenv("gdk_logdir"); } /* Get and pass on the shared WAL directory location, if set */ - log_settings->shared_logdir = GDKgetenv("gdk_shared_logdir"); + log_settings.shared_logdir = GDKgetenv("gdk_shared_logdir"); /* Get and pass on the shared WAL drift threshold, if set. * -1 by default, meaning it should be ignored, since it is not set */ - log_settings->shared_drift_threshold = GDKgetenv_int("gdk_shared_drift_threshold", -1); + log_settings.shared_drift_threshold = GDKgetenv_int("gdk_shared_drift_threshold", -1); /* Get and pass on the flag how many WAL files should be preserved. * 0 by default - keeps only the current WAL file. */ - log_settings->keep_persisted_log_files = GDKgetenv_int("gdk_keep_persisted_log_files", 0); + log_settings.keep_persisted_log_files = GDKgetenv_int("gdk_keep_persisted_log_files", 0); mvc_debug = debug&4; if (mvc_debug) { - fprintf(stderr, "#mvc_init logdir %s\n", log_settings->logdir); - fprintf(stderr, "#mvc_init keep_persisted_log_files %d\n", log_settings->keep_persisted_log_files); - if (log_settings->shared_logdir != NULL) { - fprintf(stderr, "#mvc_init shared_logdir %s\n", log_settings->shared_logdir); + fprintf(stderr, "#mvc_init logdir %s\n", log_settings.logdir); + fprintf(stderr, "#mvc_init keep_persisted_log_files %d\n", log_settings.keep_persisted_log_files); + if (log_settings.shared_logdir != NULL) { + fprintf(stderr, "#mvc_init shared_logdir %s\n", log_settings.shared_logdir); } - fprintf(stderr, "#mvc_init shared_drift_threshold %d\n", log_settings->shared_drift_threshold); + fprintf(stderr, "#mvc_init shared_drift_threshold %d\n", log_settings.shared_drift_threshold); } keyword_init(); scanner_init_keywords(); - if ((first = store_init(debug, store, ro, su, log_settings, stk)) < 0) { + if ((first = store_init(debug, store, ro, su, &log_settings, stk)) < 0) { fprintf(stderr, "!mvc_init: unable to create system tables\n"); return -1; } diff --git a/tools/mserver/mserver5.c b/tools/mserver/mserver5.c --- a/tools/mserver/mserver5.c +++ b/tools/mserver/mserver5.c @@ -511,6 +511,7 @@ main(int argc, char **av) } else { BBPaddfarm(dbpath, (1 << PERSISTENT) | (1 << TRANSIENT)); } + GDKfree(dbpath); if (monet_init(set, setlen) == 0) { mo_free_options(set, setlen); return 0; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list