Changeset: e901f1e4d8cf for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e901f1e4d8cf Modified Files: gdk/ChangeLog.Sep2022 gdk/gdk_heap.c Branch: Sep2022 Log Message:
Do not remove tail file if the oldtail pointer exists and uses the same file. diffs (30 lines): diff --git a/gdk/ChangeLog.Sep2022 b/gdk/ChangeLog.Sep2022 --- a/gdk/ChangeLog.Sep2022 +++ b/gdk/ChangeLog.Sep2022 @@ -1,6 +1,13 @@ # ChangeLog file for GDK # This file is updated with Maddlog +* Thu Apr 20 2023 Sjoerd Mullender <[email protected]> +- Fixed yet another occurrence of a missing .tailN file. This one could + happen if a string bat was appended to in stages so that between appends + the column was committed. If an append caused both a realloc of the + tail heap because it was getting longer and a realloc because it got + wider, the file might get removed before the GDK level commit happened. + * Fri Mar 24 2023 Sjoerd Mullender <[email protected]> - When processing the WAL, if a to-be-destroyed object cannot be found, don't stop, but keep processing the rest of the WAL. diff --git a/gdk/gdk_heap.c b/gdk/gdk_heap.c --- a/gdk/gdk_heap.c +++ b/gdk/gdk_heap.c @@ -533,7 +533,8 @@ GDKupgradevarheap(BAT *b, var_t v, BUN c b->oldtail = old; ATOMIC_OR(&old->refs, DELAYEDREMOVE); } else { - HEAPdecref(old, true); + ValPtr p = BATgetprop_nolock(b, (enum prop_t) 20); + HEAPdecref(old, p == NULL || strcmp(((Heap*) p->val.pval)->filename, old->filename) != 0); } MT_lock_unset(&b->theaplock); return GDK_SUCCEED; _______________________________________________ checkin-list mailing list -- [email protected] To unsubscribe send an email to [email protected]
