gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-exchange] branch master updated: fix auditor progres


From: gnunet
Subject: [GNUnet-SVN] [taler-exchange] branch master updated: fix auditor progress point issue
Date: Mon, 20 Mar 2017 02:45:36 +0100

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

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new 3fde028  fix auditor progress point issue
3fde028 is described below

commit 3fde028650e220157f208fa8399d32cc1b0eebde
Author: Christian Grothoff <address@hidden>
AuthorDate: Mon Mar 20 02:45:33 2017 +0100

    fix auditor progress point issue
---
 src/auditor/taler-auditor.c               | 26 +++++++++++++++++++-------
 src/auditordb/plugin_auditordb_postgres.c | 23 +++++++++++++++--------
 src/include/taler_auditordb_plugin.h      |  7 ++++++-
 3 files changed, 40 insertions(+), 16 deletions(-)

diff --git a/src/auditor/taler-auditor.c b/src/auditor/taler-auditor.c
index 971f6e5..54e6180 100644
--- a/src/auditor/taler-auditor.c
+++ b/src/auditor/taler-auditor.c
@@ -25,7 +25,6 @@
  *   given in the 'wire_out' table. This needs to be checked separately!
  *
  * KNOWN BUGS:
- * - resolve HACK! -- need extra serial_id in 'pp' as we go over reserve_out 
twice!
  * - risk is not calculated correctly
  * - calculate, store and report aggregation fee balance!
  * - error handling if denomination keys are used that are not known to the
@@ -1000,7 +999,7 @@ analyze_reserves (void *cls)
   rc.reserves = GNUNET_CONTAINER_multihashmap_create (512,
                                                       GNUNET_NO);
 
-  if (GNUNET_OK !=
+  if (GNUNET_SYSERR ==
       edb->select_reserves_in_above_serial_id (edb->cls,
                                                esession,
                                                pp.last_reserve_in_serial_id,
@@ -1010,7 +1009,7 @@ analyze_reserves (void *cls)
     GNUNET_break (0);
     return GNUNET_SYSERR;
   }
-  if (GNUNET_OK !=
+  if (GNUNET_SYSERR ==
       edb->select_reserves_out_above_serial_id (edb->cls,
                                                 esession,
                                                 pp.last_reserve_out_serial_id,
@@ -2051,6 +2050,9 @@ withdraw_cb (void *cls,
   const struct TALER_EXCHANGEDB_DenominationKeyInformationP *dki;
   struct TALER_Amount value;
 
+  GNUNET_assert (rowid >= pp.last_withdraw_serial_id); /* should be 
monotonically increasing */
+  pp.last_withdraw_serial_id = rowid + 1;
+
   if (GNUNET_OK !=
       get_denomination_info (denom_pub,
                              &dki,
@@ -2128,6 +2130,9 @@ refresh_session_cb (void *cls,
   struct TALER_Amount amount_without_fee;
   struct TALER_Amount tmp;
 
+  GNUNET_assert (rowid >= pp.last_melt_serial_id); /* should be monotonically 
increasing */
+  pp.last_melt_serial_id = rowid + 1;
+
   if (GNUNET_OK !=
       get_denomination_info (denom_pub,
                              &dki,
@@ -2376,6 +2381,9 @@ deposit_cb (void *cls,
   struct TALER_DepositRequestPS dr;
   struct TALER_Amount tmp;
 
+  GNUNET_assert (rowid >= pp.last_deposit_serial_id); /* should be 
monotonically increasing */
+  pp.last_deposit_serial_id = rowid + 1;
+
   if (GNUNET_OK !=
       get_denomination_info (denom_pub,
                              &dki,
@@ -2496,6 +2504,9 @@ refund_cb (void *cls,
   struct TALER_Amount amount_without_fee;
   struct TALER_Amount refund_fee;
 
+  GNUNET_assert (rowid >= pp.last_refund_serial_id); /* should be 
monotonically increasing */
+  pp.last_refund_serial_id = rowid + 1;
+
   if (GNUNET_OK !=
       get_denomination_info (denom_pub,
                              &dki,
@@ -2589,7 +2600,6 @@ analyze_coins (void *cls)
   struct CoinContext cc;
   int dret;
 
-  pp.last_reserve_out_serial_id = 0; // HACK! FIXME!
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Analyzing coins\n");
   /* setup 'cc' */
@@ -2632,7 +2642,7 @@ analyze_coins (void *cls)
   if (GNUNET_SYSERR ==
       edb->select_reserves_out_above_serial_id (edb->cls,
                                                 esession,
-                                                pp.last_reserve_out_serial_id,
+                                                pp.last_withdraw_serial_id,
                                                 &withdraw_cb,
                                                 &cc))
   {
@@ -2761,9 +2771,10 @@ incremental_processing (Analysis analysis,
   else
   {
     GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
-                _("Resuming audit at %llu/%llu/%llu/%llu/%llu/%llu\n"),
+                _("Resuming audit at %llu/%llu/%llu/%llu/%llu/%llu/%llu\n"),
                 (unsigned long long) pp.last_reserve_in_serial_id,
                 (unsigned long long) pp.last_reserve_out_serial_id,
+                (unsigned long long) pp.last_withdraw_serial_id,
                 (unsigned long long) pp.last_deposit_serial_id,
                 (unsigned long long) pp.last_melt_serial_id,
                 (unsigned long long) pp.last_refund_serial_id,
@@ -2792,9 +2803,10 @@ incremental_processing (Analysis analysis,
     return GNUNET_SYSERR;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
-              _("Concluded audit step at %llu/%llu/%llu/%llu/%llu/%llu\n\n"),
+              _("Concluded audit step at 
%llu/%llu/%llu/%llu/%llu/%llu/%llu\n\n"),
               (unsigned long long) pp.last_reserve_in_serial_id,
               (unsigned long long) pp.last_reserve_out_serial_id,
+              (unsigned long long) pp.last_withdraw_serial_id,
               (unsigned long long) pp.last_deposit_serial_id,
               (unsigned long long) pp.last_melt_serial_id,
               (unsigned long long) pp.last_refund_serial_id,
diff --git a/src/auditordb/plugin_auditordb_postgres.c 
b/src/auditordb/plugin_auditordb_postgres.c
index 74dff92..2a63eeb 100644
--- a/src/auditordb/plugin_auditordb_postgres.c
+++ b/src/auditordb/plugin_auditordb_postgres.c
@@ -299,6 +299,7 @@ postgres_create_tables (void *cls)
           "(master_pub BYTEA PRIMARY KEY CHECK (LENGTH(master_pub)=32)"
           ",last_reserve_in_serial_id INT8 NOT NULL"
            ",last_reserve_out_serial_id INT8 NOT NULL"
+           ",last_withdraw_serial_id INT8 NOT NULL"
           ",last_deposit_serial_id INT8 NOT NULL"
            ",last_melt_serial_id INT8 NOT NULL"
           ",last_refund_serial_id INT8 NOT NULL"
@@ -562,30 +563,33 @@ postgres_prepare (PGconn *db_conn)
           "(master_pub"
           ",last_reserve_in_serial_id"
            ",last_reserve_out_serial_id"
+          ",last_withdraw_serial_id"
           ",last_deposit_serial_id"
            ",last_melt_serial_id"
           ",last_refund_serial_id"
           ",last_wire_out_serial_id"
-           ") VALUES ($1,$2,$3,$4,$5,$6,$7);",
-           7, NULL);
+           ") VALUES ($1,$2,$3,$4,$5,$6,$7,$8);",
+           8, NULL);
 
   /* Used in #postgres_update_auditor_progress() */
   PREPARE ("auditor_progress_update",
            "UPDATE auditor_progress SET "
           " last_reserve_in_serial_id=$1"
            ",last_reserve_out_serial_id=$2"
-          ",last_deposit_serial_id=$3"
-           ",last_melt_serial_id=$4"
-          ",last_refund_serial_id=$5"
-          ",last_wire_out_serial_id=$6"
-           " WHERE master_pub=$7",
-           7, NULL);
+          ",last_withdraw_serial_id=$3"
+          ",last_deposit_serial_id=$4"
+           ",last_melt_serial_id=$5"
+          ",last_refund_serial_id=$6"
+          ",last_wire_out_serial_id=$7"
+           " WHERE master_pub=$8",
+           8, NULL);
 
   /* Used in #postgres_get_auditor_progress() */
   PREPARE ("auditor_progress_select",
            "SELECT"
           " last_reserve_in_serial_id"
            ",last_reserve_out_serial_id"
+          ",last_withdraw_serial_id"
           ",last_deposit_serial_id"
            ",last_melt_serial_id"
           ",last_refund_serial_id"
@@ -1264,6 +1268,7 @@ postgres_insert_auditor_progress (void *cls,
     GNUNET_PQ_query_param_auto_from_type (master_pub),
     GNUNET_PQ_query_param_uint64 (&pp->last_reserve_in_serial_id),
     GNUNET_PQ_query_param_uint64 (&pp->last_reserve_out_serial_id),
+    GNUNET_PQ_query_param_uint64 (&pp->last_withdraw_serial_id),
     GNUNET_PQ_query_param_uint64 (&pp->last_deposit_serial_id),
     GNUNET_PQ_query_param_uint64 (&pp->last_melt_serial_id),
     GNUNET_PQ_query_param_uint64 (&pp->last_refund_serial_id),
@@ -1309,6 +1314,7 @@ postgres_update_auditor_progress (void *cls,
   struct GNUNET_PQ_QueryParam params[] = {
     GNUNET_PQ_query_param_uint64 (&pp->last_reserve_in_serial_id),
     GNUNET_PQ_query_param_uint64 (&pp->last_reserve_out_serial_id),
+    GNUNET_PQ_query_param_uint64 (&pp->last_withdraw_serial_id),
     GNUNET_PQ_query_param_uint64 (&pp->last_deposit_serial_id),
     GNUNET_PQ_query_param_uint64 (&pp->last_melt_serial_id),
     GNUNET_PQ_query_param_uint64 (&pp->last_refund_serial_id),
@@ -1359,6 +1365,7 @@ postgres_get_auditor_progress (void *cls,
   struct GNUNET_PQ_ResultSpec rs[] = {
     GNUNET_PQ_result_spec_uint64 ("last_reserve_in_serial_id", 
&pp->last_reserve_in_serial_id),
     GNUNET_PQ_result_spec_uint64 ("last_reserve_out_serial_id", 
&pp->last_reserve_out_serial_id),
+    GNUNET_PQ_result_spec_uint64 ("last_withdraw_serial_id", 
&pp->last_withdraw_serial_id),
     GNUNET_PQ_result_spec_uint64 ("last_deposit_serial_id", 
&pp->last_deposit_serial_id),
     GNUNET_PQ_result_spec_uint64 ("last_melt_serial_id", 
&pp->last_melt_serial_id),
     GNUNET_PQ_result_spec_uint64 ("last_refund_serial_id", 
&pp->last_refund_serial_id),
diff --git a/src/include/taler_auditordb_plugin.h 
b/src/include/taler_auditordb_plugin.h
index 1c6360f..68d0cb5 100644
--- a/src/include/taler_auditordb_plugin.h
+++ b/src/include/taler_auditordb_plugin.h
@@ -117,11 +117,16 @@ struct TALER_AUDITORDB_ProgressPoint
   uint64_t last_reserve_in_serial_id;
 
   /**
-   * last_reserve_out_serial_id serial ID of the last withdraw the auditor 
processed
+   * last_reserve_out_serial_id serial ID of the last reserve_out the auditor 
processed
    */
   uint64_t last_reserve_out_serial_id;
 
   /**
+   * last_reserve_out_serial_id serial ID of the last withdraw the auditor 
processed
+   */
+  uint64_t last_withdraw_serial_id;
+
+  /**
    * last_deposit_serial_id serial ID of the last deposit the auditor processed
    */
   uint64_t last_deposit_serial_id;

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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