Changeset: 83edeaf10df2 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=83edeaf10df2 Modified Files: gdk/gdk_align.c gdk/gdk_atoms.c gdk/gdk_bat.c gdk/gdk_bbp.c gdk/gdk_group.c gdk/gdk_heap.c gdk/gdk_imprints.c gdk/gdk_join.c gdk/gdk_posix.c gdk/gdk_sample.c gdk/gdk_search.c gdk/gdk_select.c gdk/gdk_ssort.c gdk/gdk_unique.c gdk/gdk_utils.c monetdb5/modules/mal/batExtensions.c Branch: default Log Message:
Produce error messages where the error first occurs. diffs (truncated from 1086 to 300 lines): diff --git a/gdk/gdk_align.c b/gdk/gdk_align.c --- a/gdk/gdk_align.c +++ b/gdk/gdk_align.c @@ -748,10 +748,8 @@ VIEWbounds(BAT *b, BAT *view, BUN l, BUN BUN cnt; BATiter bi = bat_iterator(b); - if (b == NULL || view == NULL) { - GDKerror("VIEWbounds: bat argument missing"); + if (b == NULL || view == NULL) return; - } if (h > BATcount(b)) h = BATcount(b); if (h < l) diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -315,23 +315,27 @@ int ATOMprint(int t, const void *p, stream *s) { int (*tostr) (str *, int *, const void *); + ssize_t res; if (p && t >= 0 && t < GDKatomcnt && (tostr = BATatoms[t].atomToStr)) { if (t != TYPE_bat && t < TYPE_str) { char buf[dblStrlen], *addr = buf; /* use memory from stack */ int sz = dblStrlen, l = (*tostr) (&addr, &sz, p); - return (int) mnstr_write(s, buf, l, 1); + res = mnstr_write(s, buf, l, 1); } else { str buf = 0; int sz = 0, l = (*tostr) (&buf, &sz, p); - l = (int) mnstr_write(s, buf, l, 1); + res = mnstr_write(s, buf, l, 1); GDKfree(buf); - return l; } + } else { + res = mnstr_write(s, "nil", 1, 3); } - return (int) mnstr_write(s, "nil", 1, 3); + if (res < 0) + GDKsyserror("ATOMprint: write failure\n"); + return (int) res; } @@ -507,8 +511,10 @@ bitWrite(const bit *a, stream *s, size_t { if (mnstr_write(s, (const char *) a, 1, cnt) == (ssize_t) cnt) return GDK_SUCCEED; - else + else { + GDKsyserror("bitWrite: write failure\n"); return GDK_FAIL; + } } int diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -327,7 +327,7 @@ BATattach(int tt, const char *heapfile, ERRORcheck(heapfile == 0, "BATattach: bad heapfile name\n", NULL); ERRORcheck(role < 0 || role >= 32, "BATattach: role error\n", NULL); if (lstat(heapfile, &st) < 0) { - GDKerror("BATattach: cannot stat heapfile\n"); + GDKsyserror("BATattach: cannot stat heapfile\n"); return NULL; } ERRORcheck(!S_ISREG(st.st_mode), "BATattach: heapfile must be a regular file\n", NULL); @@ -1135,7 +1135,6 @@ BUNins(BAT *b, const void *h, const void } if (unshare_string_heap(b) != GDK_SUCCEED) { - GDKerror("BUNins: failed to unshare string heap\n"); return GDK_FAIL; } @@ -1257,7 +1256,6 @@ BUNappend(BAT *b, const void *t, bit for void_materialize(b, t); if (unshare_string_heap(b) != GDK_SUCCEED) { - GDKerror("BUNappend: failed to unshare string heap\n"); return GDK_FAIL; } @@ -1834,6 +1832,7 @@ BUNlocate(BAT *b, const void *x, const v (void) BAThash(BATmirror(v), 0); if (dohash(v->T)) (void) BAThash(v, 0); + GDKclrerr(); /* not interested in BAThash failures */ if (v->H->hash && v->T->hash) { /* we can choose between two hash tables */ BUN hcnt = 0, tcnt = 0; BUN i; @@ -2441,11 +2440,14 @@ backup_new(Heap *hp, int lockbat) if (batret == 0 && bakret) { /* no backup yet, so move the existing X.new there out * of the way */ - ret = rename(batpath, bakpath); + if ((ret = rename(batpath, bakpath)) < 0) + GDKsyserror("backup_new: rename %s to %s failed\n", + batpath, bakpath); IODEBUG fprintf(stderr, "#rename(%s,%s) = %d\n", batpath, bakpath, ret); } else if (batret == 0) { /* there is a backup already; just remove the X.new */ - ret = unlink(batpath); + if ((ret = unlink(batpath)) < 0) + GDKsyserror("backup_new: unlink %s failed\n", batpath); IODEBUG fprintf(stderr, "#unlink(%s) = %d\n", batpath, ret); } GDKfree(batpath); @@ -2565,6 +2567,8 @@ BATsetaccess(BAT *b, int newmode) if (b->batSharecnt && newmode != BAT_READ) { BATDEBUG THRprintf(GDKout, "#BATsetaccess: %s has %d views; try creating a copy\n", BATgetId(b), b->batSharecnt); + GDKerror("BATsetaccess: %s has %d views\n", + BATgetId(b), b->batSharecnt); return GDK_FAIL; } @@ -2680,7 +2684,6 @@ BATmode(BAT *b, int mode) if (mode == PERSISTENT && isVIEW(b)) { if (VIEWreset(b) != GDK_SUCCEED) { - GDKerror("BATmode: cannot allocate memory.\n"); return GDK_FAIL; } } diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -1286,23 +1286,19 @@ new_bbpentry(FILE *fp, bat i) (unsigned char) BBP_desc(i)->S.map_head, (unsigned char) BBP_desc(i)->S.map_tail, (unsigned char) BBP_desc(i)->S.map_hheap, - (unsigned char) BBP_desc(i)->S.map_theap) < 0) + (unsigned char) BBP_desc(i)->S.map_theap) < 0 || + heap_entry(fp, &BBP_desc(i)->H) < 0 || + heap_entry(fp, &BBP_desc(i)->T) < 0 || + vheap_entry(fp, BBP_desc(i)->H.vheap) < 0 || + vheap_entry(fp, BBP_desc(i)->T.vheap) < 0 || + (BBP_options(i) && + fprintf(fp, " %s", BBP_options(i)) < 0) || + fprintf(fp, "\n") < 0) { + GDKsyserror("new_bbpentry: Writing BBP.dir entry failed\n"); return GDK_FAIL; - if (heap_entry(fp, &BBP_desc(i)->H) < 0) - return GDK_FAIL; - if (heap_entry(fp, &BBP_desc(i)->T) < 0) - return GDK_FAIL; - - if (vheap_entry(fp, BBP_desc(i)->H.vheap) < 0) - return GDK_FAIL; - if (vheap_entry(fp, BBP_desc(i)->T.vheap) < 0) - return GDK_FAIL; - - if (BBP_options(i) && - fprintf(fp, " %s", BBP_options(i)) < 0) - return GDK_FAIL; - - return fprintf(fp, "\n") < 0 ? GDK_FAIL : GDK_SUCCEED; + } + + return GDK_SUCCEED; } static gdk_return @@ -1312,8 +1308,10 @@ BBPdir_header(FILE *f, int n) GDKLIBRARY, SIZEOF_SIZE_T, SIZEOF_OID, SIZEOF_MAX_INT) < 0 || OIDwrite(f) < 0 || fprintf(f, " BBPsize=%d\n", n) < 0 || - ferror(f)) + ferror(f)) { + GDKsyserror("BBPdir_header: Writing BBP.dir header failed\n"); return GDK_FAIL; + } return GDK_SUCCEED; } @@ -1328,10 +1326,8 @@ BBPdir_subcommit(int cnt, bat *subcommit assert(subcommit != NULL); - if ((nbbpf = GDKfilelocate(0, "BBP", "w", "dir")) == NULL) { - GDKsyserror("BBPdir_subcommit: Creating new BBP.dir file failed\n"); + if ((nbbpf = GDKfilelocate(0, "BBP", "w", "dir")) == NULL) return GDK_FAIL; - } n = (bat) ATOMIC_GET(BBPsize, BBPsizeLock, "BBPdir_subcommit"); @@ -1361,7 +1357,6 @@ BBPdir_subcommit(int cnt, bat *subcommit } if (BBPdir_header(nbbpf, n) != GDK_SUCCEED) { - GDKsyserror("BBPdir_subcommit: Writing BBP.dir header failed\n"); goto bailout; } n = 0; @@ -1385,7 +1380,6 @@ BBPdir_subcommit(int cnt, bat *subcommit /* BBP.dir consists of all persistent bats only */ if (BBP_status(i) & BBPPERSISTENT) { if (new_bbpentry(nbbpf, i) != GDK_SUCCEED) { - GDKsyserror("BBPdir_subcommit: Writing BBP.dir entry failed\n"); goto bailout; } IODEBUG new_bbpentry(stderr, i); @@ -1457,12 +1451,10 @@ BBPdir(int cnt, bat *subcommit) fprintf(stderr, "\n"); } if ((fp = GDKfilelocate(0, "BBP", "w", "dir")) == NULL) { - GDKsyserror("BBPdir: Cannor create BBP.dir file\n"); goto bailout; } if (BBPdir_header(fp, (bat) ATOMIC_GET(BBPsize, BBPsizeLock, "BBPdir")) != GDK_SUCCEED) { - GDKsyserror("BBPdir: Writing BBP.dir header failed\n"); goto bailout; } @@ -1471,7 +1463,6 @@ BBPdir(int cnt, bat *subcommit) * BBP.dir consists of all persistent bats */ if (BBP_status(i) & BBPPERSISTENT) { if (new_bbpentry(fp, i) != GDK_SUCCEED) { - GDKsyserror("BBPdir: Writing BBP.dir entry failed\n"); goto bailout; } IODEBUG new_bbpentry(stderr, i); @@ -3175,12 +3166,15 @@ file_move(int farmid, const char *srcdir struct stat st; path = GDKfilepath(farmid, srcdir, name, ext); + if (path == NULL) + return GDK_FAIL; if (stat(path, &st)) { /* source file does not exist; the best * recovery is to give an error but continue * by considering the BAT as not saved; making * sure that this time it does get saved. */ + GDKsyserror("file_move: cannot stat %s\n", path); GDKfree(path); return GDK_FAIL; /* fishy, but not fatal */ } @@ -3195,12 +3189,14 @@ file_exists(int farmid, const char *dir, { char *path; struct stat st; - int ret; + int ret = -1; path = GDKfilepath(farmid, dir, name, ext); - ret = stat(path, &st); - IODEBUG fprintf(stderr, "#stat(%s) = %d\n", path, ret); - GDKfree(path); + if (path) { + ret = stat(path, &st); + IODEBUG fprintf(stderr, "#stat(%s) = %d\n", path, ret); + GDKfree(path); + } return (ret == 0); } @@ -3231,7 +3227,11 @@ heap_move(Heap *hp, const char *srcdir, snprintf(kill_ext, sizeof(kill_ext), "%s.kill", ext); path = GDKfilepath(hp->farmid, dstdir, nme, kill_ext); + if (path == NULL) + return GDK_FAIL; fp = fopen(path, "w"); + if (fp == NULL) + GDKsyserror("heap_move: cannot open file %s\n", path); IODEBUG fprintf(stderr, "#open %s = %d\n", path, fp ? 0 : -1); GDKfree(path); @@ -3280,16 +3280,20 @@ BBPprepare(bit subcommit) backup_dir = 0; ret = BBPrecover(0); if (ret == GDK_SUCCEED) { - if (mkdir(BAKDIR, 0755) < 0 && errno != EEXIST) + if (mkdir(BAKDIR, 0755) < 0 && errno != EEXIST) { + GDKsyserror("BBPprepare: cannot create directory %s\n", BAKDIR); ret = GDK_FAIL; + } /* if BAKDIR already exists, don't signal error */ IODEBUG fprintf(stderr, "#mkdir %s = %d\n", BAKDIR, (int) ret); } } if (ret == GDK_SUCCEED && start_subcommit) { /* make a new SUBDIR (subdir of BAKDIR) */ - if (mkdir(SUBDIR, 0755) < 0) + if (mkdir(SUBDIR, 0755) < 0) { + GDKsyserror("BBPprepare: cannot create directory %s\n", SUBDIR); ret = GDK_FAIL; + } IODEBUG fprintf(stderr, "#mkdir %s = %d\n", SUBDIR, (int) ret); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list