Changeset: b21f46022b87 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b21f46022b87
Modified Files:
monetdb5/mal/mal_session.c
monetdb5/optimizer/opt_pipes.c
Branch: Jun2016
Log Message:
Protect against failing client thread creation
diffs (35 lines):
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -44,11 +44,14 @@ malBootstrap(void)
initLibraries();
if ( (msg = defaultScenario(c)) ) {
GDKfree(msg);
- GDKerror("Failed to initialise default scenario");
+ GDKerror("malBootstrap:Failed to initialise default scenario");
return 0;
}
MSinitClientPrg(c, "user", "main");
- (void) MCinitClientThread(c);
+ if( MCinitClientThread(c) < 0){
+ GDKerror("malBootstrap:Failed to create client thread");
+ return 0;
+ }
s = malInclude(c, bootfile, 0);
if (s != NULL) {
mnstr_printf(GDKout, "!%s\n", s);
diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
@@ -456,7 +456,10 @@ compileOptimizer(Client cntxt, str name)
MT_lock_unset(&pipeLock);
throw(MAL, "optimizer.addOptimizerPipe",
"failed to set scenario");
}
- (void) MCinitClientThread(&c);
+ if( MCinitClientThread(&c) < 0){
+ MT_lock_unset(&pipeLock);
+ throw(MAL, "optimizer.addOptimizerPipe",
"failed to create client thread");
+ }
for (j = 0; j < MAXOPTPIPES && pipes[j].def; j++) {
if (pipes[j].mb == NULL) {
if (pipes[j].prerequisite &&
getAddress(c.fdout, NULL, optimizerRef, pipes[j].prerequisite, TRUE) == NULL)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list