Changeset: 27ee07e6c33a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/27ee07e6c33a Modified Files: gdk/ChangeLog.Jan2022 gdk/gdk_bat.c sql/backends/monet5/UDF/pyapi3/pyheader.h sql/jdbc/tests/Tests/All Branch: Jan2022 Log Message:
Merge with Jul2021 branch. diffs (47 lines): diff --git a/gdk/ChangeLog.Jan2022 b/gdk/ChangeLog.Jan2022 --- a/gdk/ChangeLog.Jan2022 +++ b/gdk/ChangeLog.Jan2022 @@ -1,6 +1,11 @@ # ChangeLog file for GDK # This file is updated with Maddlog +* Thu Dec 8 2022 Sjoerd Mullender <sjo...@acm.org> +- When extending a bat failed, the capacity had been updated already and + was therefore too large. This could then later cause a crash. This has + been fixed by only updating the capacity if the extend succeeded. + * Wed Dec 7 2022 Sjoerd Mullender <sjo...@acm.org> - A bug was fixed when dealing with copy-on-write memory maps. These can occur for some bats used by the write-ahead log code when they grow diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -516,6 +516,7 @@ gdk_return BATextend(BAT *b, BUN newcap) { size_t theap_size; + gdk_return rc = GDK_SUCCEED; assert(newcap <= BUN_MAX); BATcheck(b, GDK_FAIL); @@ -538,14 +539,17 @@ BATextend(BAT *b, BUN newcap) } else { theap_size = (size_t) newcap << b->tshift; } - b->batCapacity = newcap; if (b->theap->base) { TRC_DEBUG(HEAP, "HEAPgrow in BATextend %s %zu %zu\n", b->theap->filename, b->theap->size, theap_size); - return HEAPgrow(&b->theaplock, &b->theap, theap_size, b->batRestricted == BAT_READ); + rc = HEAPgrow(&b->theaplock, &b->theap, theap_size, b->batRestricted == BAT_READ); + if (rc == GDK_SUCCEED) + b->batCapacity = newcap; + } else { + b->batCapacity = newcap; } - return GDK_SUCCEED; + return rc; } _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org