Changeset: 6f7c8b58a852 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6f7c8b58a852
Branch: default
Log Message:

Merge with Jun2023 branch.


diffs (118 lines):

diff --git a/ChangeLog.Jun2023 b/ChangeLog.Jun2023
--- a/ChangeLog.Jun2023
+++ b/ChangeLog.Jun2023
@@ -1,3 +1,7 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Fri Sep 29 2023 Sjoerd Mullender <sjo...@acm.org>
+- Fixed an installation issue on Debian and Ubuntu introduced in the
+  last build.
+
diff --git a/clients/odbc/tests/ODBCtester.c b/clients/odbc/tests/ODBCtester.c
--- a/clients/odbc/tests/ODBCtester.c
+++ b/clients/odbc/tests/ODBCtester.c
@@ -88,11 +88,7 @@ retrieveDiagMsg(SQLHANDLE stmt, char * o
                /* The message layout is: "[MonetDB][ODBC Driver 
11.46.0][MonetDB-Test]error/warning text".
                   The ODBC driver version numbers changes in time. Overwrite 
it to get a stable output */
                if (strncmp(msg, "[MonetDB][ODBC Driver 11.", 25) == 0) {
-                       for (int i = 25; msg[i] != ']'; i++) {
-                               if (isdigit(msg[i])) {
-                                       msg[i] = '#';
-                               }
-                       }
+                       return snprintf(outp, outp_len, "SQLstate %s, Errnr %d, 
Message [MonetDB][ODBC Driver 11.##.#]%s\n", (char*)state, (int)errnr, 
strchr(msg + 25, ']') + 1);
                }
                return snprintf(outp, outp_len, "SQLstate %s, Errnr %d, Message 
%s\n", (char*)state, (int)errnr, (char*)msg);
        }
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1038,17 +1038,8 @@ log_create_types_file(logger *lg, const 
        return GDK_SUCCEED;
 }
 
-static inline void
-rotation_lock(logger *lg)
-{
-       MT_lock_set(&lg->rotation_lock);
-}
-
-static inline void
-rotation_unlock(logger *lg)
-{
-       MT_lock_unset(&lg->rotation_lock);
-}
+#define rotation_lock(lg)      MT_lock_set(&(lg)->rotation_lock)
+#define rotation_unlock(lg)    MT_lock_unset(&(lg)->rotation_lock)
 
 static gdk_return
 log_open_output(logger *lg)
@@ -2285,7 +2276,6 @@ do_flush_range_cleanup(logger *lg)
        logged_range *flast = frange;
 
        lg->flush_ranges = flast;
-       rotation_unlock(lg);
 
        for (frange = first; frange && frange != flast; frange = frange->next) {
                ATOMIC_DEC(&frange->refcount);
@@ -2296,6 +2286,7 @@ do_flush_range_cleanup(logger *lg)
                        ATOMIC_DEC(&lg->nr_open_files);
                }
        }
+       rotation_unlock(lg);
        return flast;
 }
 
@@ -2416,6 +2407,7 @@ log_next_logfile(logger *lg, ulng ts)
 static void
 log_cleanup_range(logger *lg, ulng id)
 {
+       rotation_lock(lg);
        while (lg->pending && lg->pending->id <= id) {
                logged_range *p;
                p = lg->pending;
@@ -2423,6 +2415,7 @@ log_cleanup_range(logger *lg, ulng id)
                        lg->pending = p->next;
                GDKfree(p);
        }
+       rotation_unlock(lg);
 }
 
 static void
@@ -3036,17 +3029,8 @@ log_tend(logger *lg)
        return result;
 }
 
-static inline void
-flush_lock(logger *lg)
-{
-       MT_lock_set(&lg->flush_lock);
-}
-
-static inline void
-flush_unlock(logger *lg)
-{
-       MT_lock_unset(&lg->flush_lock);
-}
+#define flush_lock(lg)         MT_lock_set(&(lg)->flush_lock)
+#define flush_unlock(lg)       MT_lock_unset(&(lg)->flush_lock)
 
 static inline gdk_return
 do_flush(logged_range *range)
@@ -3076,6 +3060,7 @@ gdk_return
 log_tflush(logger *lg, ulng file_id, ulng commit_ts)
 {
        if (lg->flushnow) {
+               rotation_lock(lg);
                assert(lg->flush_ranges == lg->current);
                assert(ATOMIC_GET(&lg->current->flushed_ts) == 
ATOMIC_GET(&lg->current->last_ts));
                log_tdone(lg, lg->current, commit_ts);
@@ -3085,6 +3070,7 @@ log_tflush(logger *lg, ulng file_id, uln
                if (log_open_output(lg) != GDK_SUCCEED)
                        GDKfatal("Could not create new log file\n");    /* 
TODO: does not have to be fatal (yet) */
                do_rotate(lg);
+               rotation_unlock(lg);
                (void) do_flush_range_cleanup(lg);
                assert(lg->flush_ranges == lg->current);
                return log_commit(lg, NULL, 0);
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to