Changeset: 0afa28ccc79e for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0afa28ccc79e Modified Files: gdk/gdk_logger.c Branch: Jan2014 Log Message:
Check results. diffs (134 lines): diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c --- a/gdk/gdk_logger.c +++ b/gdk/gdk_logger.c @@ -1297,6 +1297,9 @@ logger_new(int debug, char *fn, char *lo lg->catalog_bid = logbat_new(TYPE_int, BATSIZE); lg->catalog_nme = logbat_new(TYPE_str, BATSIZE); + if (lg->catalog_bid == NULL || lg->catalog_nme == NULL) + logger_fatal("Logger_new: cannot create catalog bats", + 0, 0, 0); if (debug & 1) fprintf(stderr, "create %s catalog\n", fn); @@ -1305,14 +1308,18 @@ logger_new(int debug, char *fn, char *lo BBPincref(bid, TRUE); BATmode(lg->catalog_bid, PERSISTENT); snprintf(bak, BUFSIZ, "%s_catalog_bid", fn); - BBPrename(lg->catalog_bid->batCacheid, bak); + if (BBPrename(lg->catalog_bid->batCacheid, bak) < 0) + logger_fatal("Logger_new: BBPrename to %s failed", + bak, 0, 0); /* Make persistent */ bid = lg->catalog_nme->batCacheid; BBPincref(bid, TRUE); BATmode(lg->catalog_nme, PERSISTENT); snprintf(bak, BUFSIZ, "%s_catalog_nme", fn); - BBPrename(lg->catalog_nme->batCacheid, bak); + if (BBPrename(lg->catalog_nme->batCacheid, bak) < 0) + logger_fatal("Logger_new: BBPrename to %s failed", + bak, 0, 0); if (!GDKcreatedir(filename)) { logger_fatal("logger_new: cannot create directory for log file %s\n", @@ -1324,10 +1331,18 @@ logger_new(int debug, char *fn, char *lo filename, 0, 0); goto error; } - fprintf(fp, "%06d\n\n", lg->version); lg->id ++; - fprintf(fp, LLFMT "\n", lg->id); - fclose(fp); + if (fprintf(fp, "%06d\n\n" LLFMT "\n", lg->version, lg->id) < 0) { + fclose(fp); + unlink(filename); + logger_fatal("logger_new: writing log file %s failed", + filename, 0, 0); + } + if (fclose(fp) < 0) { + unlink(filename); + logger_fatal("logger_new: closing log file %s failed", + filename, 0, 0); + } fp = NULL; if (bm_subcommit(lg->catalog_bid, lg->catalog_nme, lg->catalog_bid, lg->catalog_nme, NULL, lg->debug) != 0) { @@ -1375,31 +1390,42 @@ logger_new(int debug, char *fn, char *lo lg->seqs_id = logbat_new(TYPE_int, 1); BATmode(lg->seqs_id, PERSISTENT); snprintf(bak, BUFSIZ, "%s_seqs_id", fn); - BBPrename(lg->seqs_id->batCacheid, bak); + if (BBPrename(lg->seqs_id->batCacheid, bak) < 0) + logger_fatal("Logger_new: BBPrename to %s failed", + bak, 0, 0); logger_add_bat(lg, lg->seqs_id, "seqs_id"); lg->seqs_val = logbat_new(TYPE_lng, 1); BATmode(lg->seqs_val, PERSISTENT); snprintf(bak, BUFSIZ, "%s_seqs_val", fn); - BBPrename(lg->seqs_val->batCacheid, bak); + if (BBPrename(lg->seqs_val->batCacheid, bak) < 0) + logger_fatal("Logger_new: BBPrename to %s failed", + bak, 0, 0); logger_add_bat(lg, lg->seqs_val, "seqs_val"); - BUNappend(lg->seqs_id, &id, FALSE); - BUNappend(lg->seqs_val, &lg->id, FALSE); + if (BUNappend(lg->seqs_id, &id, FALSE) == NULL || + BUNappend(lg->seqs_val, &lg->id, FALSE) == NULL) + logger_fatal("Logger_new: failed to append value to " + "sequences bat", 0, 0, 0); lg->snapshots_bid = logbat_new(TYPE_int, 1); BATmode(lg->snapshots_bid, PERSISTENT); snprintf(bak, BUFSIZ, "%s_snapshots_bid", fn); - BBPrename(lg->snapshots_bid->batCacheid, bak); + if (BBPrename(lg->snapshots_bid->batCacheid, bak) < 0) + logger_fatal("Logger_new: BBPrename to %s failed", + bak, 0, 0); logger_add_bat(lg, lg->snapshots_bid, "snapshots_bid"); lg->snapshots_tid = logbat_new(TYPE_int, 1); BATmode(lg->snapshots_tid, PERSISTENT); snprintf(bak, BUFSIZ, "%s_snapshots_tid", fn); - BBPrename(lg->snapshots_tid->batCacheid, bak); + if (BBPrename(lg->snapshots_tid->batCacheid, bak) < 0) + logger_fatal("Logger_new: BBPrename to %s failed", + bak, 0, 0); logger_add_bat(lg, lg->snapshots_tid, "snapshots_tid"); - bm_subcommit(lg->catalog_bid, lg->catalog_nme, lg->catalog_bid, lg->catalog_nme, NULL, lg->debug); + if (bm_subcommit(lg->catalog_bid, lg->catalog_nme, lg->catalog_bid, lg->catalog_nme, NULL, lg->debug) < 0) + logger_fatal("Logger_new: commit failed", 0, 0, 0); } else { bat seqs_val = logger_find_bat(lg, "seqs_val"); bat snapshots_bid = logger_find_bat(lg, "snapshots_bid"); @@ -1415,8 +1441,10 @@ logger_new(int debug, char *fn, char *lo BUN p = BUNfndT(lg->seqs_id, &id); lg->id = *(lng *) Tloc(lg->seqs_val, p); } else { - BUNappend(lg->seqs_id, &id, FALSE); - BUNappend(lg->seqs_val, &lg->id, FALSE); + if (BUNappend(lg->seqs_id, &id, FALSE) == NULL || + BUNappend(lg->seqs_val, &lg->id, FALSE) == NULL) + logger_fatal("Logger_new: failed to append " + "value to sequences bat", 0, 0, 0); } lg->snapshots_bid = BATdescriptor(snapshots_bid); if (lg->snapshots_bid == 0) @@ -1426,9 +1454,13 @@ logger_new(int debug, char *fn, char *lo logger_fatal("Logger_new: inconsistent database, snapshots_tid does not exist", 0, 0, 0); } lg->freed = BATnew(TYPE_void, TYPE_int, 1); + if (lg->freed == NULL) + logger_fatal("Logger_new: failed to create freed bat", 0, 0, 0); BATseqbase(lg->freed, 0); snprintf(bak, BUFSIZ, "%s_freed", fn); - BBPrename(lg->freed->batCacheid, bak); + if (BBPrename(lg->freed->batCacheid, bak) < 0) + logger_fatal("Logger_new: BBPrename to %s failed", + bak, 0, 0); if (fp != NULL) { #if SIZEOF_OID == 8 _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list