commit 9bf796954ffe4a1a52f1f1bdd0e8e1dc639a9569 parent b880b232b68fc8c6aa992ad94b5a672ff8354e3c Author: Florian Dold <dold@taler.net> Date: Thu, 3 Sep 2026 18:54:58 +0200 exchange: avoid warnings for handled client and retry paths Diffstat:
9 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/src/exchange/taler-exchange-httpd_get-keys.c b/src/exchange/taler-exchange-httpd_get-keys.c @@ -3533,7 +3533,7 @@ TEH_keys_get_handler (struct TEH_RequestContext *rc, (ksh->krd_array_length > 0) ) { if (! GNUNET_TIME_absolute_is_zero (last_issue_date.abs_time)) - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Client provided invalid cherry picking timestamp %s, returning full response\n", GNUNET_TIME_timestamp2s (last_issue_date)); krd = &ksh->krd_array[ksh->krd_array_length - 1]; diff --git a/src/exchange/taler-exchange-httpd_get-kyc-info-ACCESS_TOKEN.c b/src/exchange/taler-exchange-httpd_get-kyc-info-ACCESS_TOKEN.c @@ -406,6 +406,12 @@ resume_with_reply (struct KycPoller *kyp, GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Found required check `%s'\n", check_name); + if (0 == strcasecmp (check_name, + "skip")) + { + /* SKIP measures update AML state but require no client action. */ + continue; + } /* Check if requirement is a duplicate, and in that case do not return it */ { diff --git a/src/exchange/taler-exchange-httpd_post-coins-COIN_PUB-refund.c b/src/exchange/taler-exchange-httpd_post-coins-COIN_PUB-refund.c @@ -259,7 +259,7 @@ verify_and_execute_refund (struct MHD_Connection *connection, enum MHD_Result res; char *dhs; - GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs); + GNUNET_break_op (0); dhs = GNUNET_STRINGS_data_to_string_alloc ( &refund->coin.denom_pub_hash, sizeof (refund->coin.denom_pub_hash)); diff --git a/src/exchange/taler-exchange-httpd_post-melt.c b/src/exchange/taler-exchange-httpd_post-melt.c @@ -1423,7 +1423,6 @@ phase_generate_reply_error ( NULL)); return; case MELT_ERROR_DENOMINATION_KEY_UNKNOWN: - GNUNET_break_op (0); finish_loop (mc, TEH_RESPONSE_reply_unknown_denom_pub_hash ( mc->rc->connection, @@ -1752,7 +1751,6 @@ phase_run_transaction ( mc); if (GNUNET_OK != ret) { - GNUNET_break (0); /* Check if an answer has been queued */ switch (mhd_ret) { diff --git a/src/exchange/taler-exchange-transfer.c b/src/exchange/taler-exchange-transfer.c @@ -403,7 +403,7 @@ batch_done (void) TALER_EXCHANGEDB_rollback (pg); if (GNUNET_DB_STATUS_SOFT_ERROR == qs) { - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Serialization failure recording shard progress, trying again immediately!\n"); GNUNET_assert (NULL == task); task = GNUNET_SCHEDULER_add_now (&run_transfers, @@ -419,7 +419,7 @@ batch_done (void) { case GNUNET_DB_STATUS_SOFT_ERROR: /* try again */ - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Serialization failure, trying again immediately!\n"); GNUNET_assert (NULL == task); task = GNUNET_SCHEDULER_add_now (&run_transfers, @@ -538,7 +538,7 @@ wire_confirm_cb (void *cls, TALER_EXCHANGEDB_rollback (pg); cleanup_wpd (); GNUNET_assert (NULL == task); - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Serialization failure, trying again immediately!\n"); task = GNUNET_SCHEDULER_add_now (&run_transfers, NULL); @@ -715,7 +715,7 @@ run_transfers (void *cls) case GNUNET_DB_STATUS_SOFT_ERROR: /* try again */ TALER_EXCHANGEDB_rollback (pg); - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Serialization failure, trying again immediately!\n"); cleanup_wpd (); GNUNET_assert (NULL == task); @@ -805,7 +805,7 @@ select_shard (void *cls) serialization_delay = GNUNET_TIME_randomized_backoff (serialization_delay, GNUNET_TIME_UNIT_SECONDS); GNUNET_assert (NULL == task); - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Serialization failure, trying again in %s!\n", GNUNET_TIME_relative2s (serialization_delay, true)); diff --git a/src/exchange/taler-exchange-wirewatch.c b/src/exchange/taler-exchange-wirewatch.c @@ -936,7 +936,7 @@ lock_shard (void *cls) wirewatch_conflict_sleep_interval = GNUNET_TIME_STD_BACKOFF (wirewatch_conflict_sleep_interval); rdelay = GNUNET_TIME_randomize (wirewatch_conflict_sleep_interval); - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Serialization error tying to obtain shard %s, will try again in %s!\n", job_name, GNUNET_STRINGS_relative_time_to_string (rdelay, diff --git a/src/kyclogic/kyclogic_api.c b/src/kyclogic/kyclogic_api.c @@ -1269,7 +1269,7 @@ TALER_KYCLOGIC_rules_to_limits (const json_t *jrules, if (! trigger_applies (operation_type, is_wallet)) { - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Skipping rule #%u that does not apply to %s\n", (unsigned int) idx, is_wallet ? "wallets" : "accounts"); @@ -1752,7 +1752,9 @@ TALER_KYCLOGIC_get_jmeasures ( tok); if (NULL == ms) { - GNUNET_break (0); + /* A caller can supply an unknown measure name. That is a protocol + violation, not an invariant violation in the exchange. */ + GNUNET_break_op (0); GNUNET_free (nm); json_decref (jmeasures); return NULL; diff --git a/src/util/secmod_cs.c b/src/util/secmod_cs.c @@ -2475,7 +2475,7 @@ TALER_SECMOD_cs_run (void *cls, } if (NULL == denom_head) { - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "No CS denominations configured. Make sure section names start with `%s' if you are using CS!\n", opt->cprefix); TES_wake_clients (); diff --git a/src/util/secmod_rsa.c b/src/util/secmod_rsa.c @@ -2245,7 +2245,7 @@ TALER_SECMOD_rsa_run (void *cls, } if (NULL == denom_head) { - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + GNUNET_log (GNUNET_ERROR_TYPE_INFO, "No RSA denominations configured. Make sure section names start with `%s' if you are using RSA!\n", opt->cprefix); TES_wake_clients ();