From 90968673718df5340961b636716d216949ce2d58 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 22 Aug 2025 12:00:05 -0400 Subject: [PATCH] MT#61977 fix DB timestamping Change-Id: I538d0b942b889b7018488e546e97f36449991569 (cherry picked from commit 0c06ed0f3fdcc1c5428953afc904a9ed75cc87a9) --- recording-daemon/db.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/recording-daemon/db.c b/recording-daemon/db.c index 4f0659417..36fa42373 100644 --- a/recording-daemon/db.c +++ b/recording-daemon/db.c @@ -202,12 +202,12 @@ INLINE void my_i(MYSQL_BIND *b, const int *i) { .is_unsigned = 0, }; } -INLINE void my_ts(MYSQL_BIND *b, int64_t ts) { - double d = (double) ts / 1000000.; +INLINE void my_ts(MYSQL_BIND *b, int64_t ts, double *d) { + *d = ((double) ts) / 1000000.; *b = (MYSQL_BIND) { .buffer_type = MYSQL_TYPE_DOUBLE, - .buffer = (void *) &d, - .buffer_length = sizeof(d), + .buffer = (void *) d, + .buffer_length = sizeof(*d), .is_unsigned = 0, }; } @@ -261,7 +261,8 @@ static void db_do_call_id(metafile_t *mf) { MYSQL_BIND b[2]; my_cstr(&b[0], mf->call_id); - my_ts(&b[1], mf->start_time_us); + double ts; + my_ts(&b[1], mf->start_time_us, &ts); execute_wrap(&stm_insert_call, b, &mf->db_id); } @@ -340,7 +341,8 @@ void db_do_stream(metafile_t *mf, output_t *op, stream_t *stream, unsigned long } else my_cstr(&b[9], ""); - my_ts(&b[10], op->start_time_us); + double ts; + my_ts(&b[10], op->start_time_us, &ts); execute_wrap(&stm_insert_stream, b, &op->db_id); @@ -359,7 +361,8 @@ void db_close_call(metafile_t *mf) { MYSQL_BIND b[2]; if (mf->db_streams > 0) { - my_ts(&b[0], now); + double ts; + my_ts(&b[0], now, &ts); my_ull(&b[1], &mf->db_id); execute_wrap(&stm_close_call, b, NULL); } @@ -431,7 +434,8 @@ void db_close_stream(output_t *op, FILE *fp, GString *gs) { file:; int par_idx = 0; - my_ts(&b[par_idx++], now); + double ts; + my_ts(&b[par_idx++], now, &ts); if ((output_storage & OUTPUT_STORAGE_DB)) my_str(&b[par_idx++], &stream); my_ull(&b[par_idx++], &op->db_id);