fix auditor progress point issue
This commit is contained in:
parent
a38fa32484
commit
3fde028650
@ -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,
|
||||
|
@ -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),
|
||||
|
@ -117,10 +117,15 @@ 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
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user