gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] branch master updated (badfde89 -> 52a8b8f8)


From: gnunet
Subject: [taler-exchange] branch master updated (badfde89 -> 52a8b8f8)
Date: Sat, 19 Mar 2022 08:35:17 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a change to branch master
in repository exchange.

    from badfde89 add deposits_by_coin table to speed-up certain queries (in 
theory)
     new f0a95037 -fix memory leak
     new 280f94c3 improve style of some SQL queries (no semantic change)
     new 52a8b8f8 -code cleanup

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 contrib/gana                                |  2 +-
 src/exchangedb/plugin_exchangedb_postgres.c | 31 ++++++++++++++++-------------
 src/lib/auditor_api_handle.c                | 20 +++++++++----------
 src/lib/exchange_api_deposit.c              |  1 -
 src/lib/exchange_api_handle.c               |  1 -
 5 files changed, 27 insertions(+), 28 deletions(-)

diff --git a/contrib/gana b/contrib/gana
index 048ad729..baeb8203 160000
--- a/contrib/gana
+++ b/contrib/gana
@@ -1 +1 @@
-Subproject commit 048ad729b3177a5de1726517bc905e6cd7688d0d
+Subproject commit baeb820366b88befd6f5aa2a551e2827ef406daf
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c 
b/src/exchangedb/plugin_exchangedb_postgres.c
index 6912e55e..c078d65a 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -722,13 +722,13 @@ prepare_statements (struct PostgresClosure *pg)
       ",ro.amount_with_fee_frac"
       ",denom.fee_withdraw_val"
       ",denom.fee_withdraw_frac"
-      " FROM denominations denom"
-      " JOIN reserves_out ro"
-      "   ON (ro.denominations_serial = denom.denominations_serial)"
+      " FROM reserves res"
       " JOIN reserves_out_by_reserve ror"
-      "   ON (ro.h_blind_ev = ror.h_blind_ev)"
-      " JOIN reserves res"
       "   ON (res.reserve_uuid = ror.reserve_uuid)"
+      " JOIN reserves_out ro"
+      "   ON (ro.h_blind_ev = ror.h_blind_ev)"
+      " JOIN denominations denom"
+      "   ON (ro.denominations_serial = denom.denominations_serial)"
       " WHERE res.reserve_pub=$1;",
       1),
     /* Used in #postgres_select_withdrawals_above_serial_id() */
@@ -1654,17 +1654,17 @@ prepare_statements (struct PostgresClosure *pg)
       "  recoup_timestamp,"
       "  denoms.denom_pub_hash,"
       "  coins.denom_sig"
-      " FROM denominations denoms"
-      " JOIN known_coins coins"
-      "   ON (coins.denominations_serial = denoms.denominations_serial)"
-      " JOIN recoup rc"
-      "   ON (rc.coin_pub = coins.coin_pub)"
-      " JOIN reserves_out ro"
-      "   ON (ro.reserve_out_serial_id = rc.reserve_out_serial_id)"
+      " FROM reserves res"
       " JOIN reserves_out_by_reserve ror"
-      "   ON (ror.h_blind_ev = ro.h_blind_ev)"
-      " JOIN reserves res"
       "   ON (res.reserve_uuid = ror.reserve_uuid)"
+      " JOIN reserves_out ro"
+      "   ON (ror.h_blind_ev = ro.h_blind_ev)"
+      " JOIN recoup rc"
+      "   ON (ro.reserve_out_serial_id = rc.reserve_out_serial_id)"
+      " JOIN known_coins coins"
+      "   ON (rc.coin_pub = coins.coin_pub)"
+      " JOIN denominations denoms"
+      "   ON (coins.denominations_serial = denoms.denominations_serial)"
       " WHERE res.reserve_pub=$1;",
       1),
     /* Used in #postgres_get_coin_transactions() to obtain recoup transactions
@@ -1743,6 +1743,9 @@ prepare_statements (struct PostgresClosure *pg)
       ",recoup_timestamp"
       ",recoup_uuid"
       " FROM recoup"
+      // FIXME: suboptimal sub-query here: crosses shards!
+      // MAYBE: replace reserve_out_serial_id with
+      // reserve_pub and use new reserve_out_by_reserve table?
       " JOIN reserves_out ro"
       "   USING (reserve_out_serial_id)"
       " JOIN reserves"
diff --git a/src/lib/auditor_api_handle.c b/src/lib/auditor_api_handle.c
index f7d7f9a7..a5478ef9 100644
--- a/src/lib/auditor_api_handle.c
+++ b/src/lib/auditor_api_handle.c
@@ -286,6 +286,8 @@ version_completed_cb (void *cls,
               "Received version from URL `%s' with status %ld.\n",
               vr->url,
               response_code);
+  free_version_request (vr);
+  auditor->vr = NULL;
   vc = TALER_AUDITOR_VC_PROTOCOL_ERROR;
   switch (response_code)
   {
@@ -293,8 +295,6 @@ version_completed_cb (void *cls,
   case MHD_HTTP_INTERNAL_SERVER_ERROR:
     /* NOTE: this design is debatable. We MAY want to throw this error at the
        client. We may then still additionally internally re-try. */
-    free_version_request (vr);
-    auditor->vr = NULL;
     GNUNET_assert (NULL == auditor->retry_task);
     auditor->retry_delay = EXCHANGE_LIB_BACKOFF (auditor->retry_delay);
     auditor->retry_task = GNUNET_SCHEDULER_add_delayed (auditor->retry_delay,
@@ -333,11 +333,9 @@ version_completed_cb (void *cls,
   if (MHD_HTTP_OK != response_code)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "/version failed for auditor %p: %u!\n",
-                auditor,
+                "/version failed for auditor %s: %u!\n",
+                auditor->url,
                 (unsigned int) response_code);
-    auditor->vr = NULL;
-    free_version_request (vr);
     auditor->state = MHS_FAILED;
     /* notify application that we failed */
     auditor->version_cb (auditor->version_cb_cls,
@@ -346,14 +344,11 @@ version_completed_cb (void *cls,
                          vc);
     return;
   }
-
-  auditor->vr = NULL;
-  free_version_request (vr);
   TALER_LOG_DEBUG ("Switching auditor state to 'version'\n");
   auditor->state = MHS_VERSION;
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-              "Auditor %p is now READY!\n",
-              auditor);
+              "Auditor %s is now READY!\n",
+              auditor->url);
   /* notify application about the key information */
   auditor->version_cb (auditor->version_cb_cls,
                        &hr,
@@ -454,6 +449,7 @@ request_version (void *cls)
                          &hr,
                          NULL,
                          TALER_AUDITOR_VC_PROTOCOL_ERROR);
+    GNUNET_free (vr);
     return;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -467,6 +463,8 @@ request_version (void *cls)
     auditor->retry_task = GNUNET_SCHEDULER_add_delayed (auditor->retry_delay,
                                                         &request_version,
                                                         auditor);
+    GNUNET_free (vr->url);
+    GNUNET_free (vr);
     return;
   }
   GNUNET_break (CURLE_OK ==
diff --git a/src/lib/exchange_api_deposit.c b/src/lib/exchange_api_deposit.c
index 15bf76fe..a08a6f42 100644
--- a/src/lib/exchange_api_deposit.c
+++ b/src/lib/exchange_api_deposit.c
@@ -382,7 +382,6 @@ handle_deposit_finished (void *cls,
       TEAH_get_auditors_for_dc (dh->exchange,
                                 &auditor_cb,
                                 dh);
-
     }
     dr.details.success.exchange_sig = &dh->exchange_sig;
     dr.details.success.exchange_pub = &dh->exchange_pub;
diff --git a/src/lib/exchange_api_handle.c b/src/lib/exchange_api_handle.c
index 24b762c2..ff4686a5 100644
--- a/src/lib/exchange_api_handle.c
+++ b/src/lib/exchange_api_handle.c
@@ -598,7 +598,6 @@ update_auditors (struct TALER_EXCHANGE_Handle *exchange)
     GNUNET_CONTAINER_DLL_insert (exchange->auditors_head,
                                  exchange->auditors_tail,
                                  ale);
-
     ale->ah = TALER_AUDITOR_connect (exchange->ctx,
                                      ale->auditor_url,
                                      &auditor_version_cb,

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]