diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-12-01 20:03:25 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-12-01 20:03:25 +0100 |
commit | 37ca87961624a84337c3980b725cc4ebb63745eb (patch) | |
tree | 9f8351b5f97ccbcfd8c67546c4cecfb2d352bd32 /src/backend | |
parent | 344965a647c2372466dc677a2e02e052bdba8f8a (diff) | |
download | merchant-37ca87961624a84337c3980b725cc4ebb63745eb.tar.gz merchant-37ca87961624a84337c3980b725cc4ebb63745eb.tar.bz2 merchant-37ca87961624a84337c3980b725cc4ebb63745eb.zip |
fix #7025 (presumably)
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/taler-merchant-httpd_private-get-orders.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/backend/taler-merchant-httpd_private-get-orders.c b/src/backend/taler-merchant-httpd_private-get-orders.c index 85660812..9546ae06 100644 --- a/src/backend/taler-merchant-httpd_private-get-orders.c +++ b/src/backend/taler-merchant-httpd_private-get-orders.c @@ -273,7 +273,7 @@ add_order (void *cls, struct GNUNET_TIME_Absolute creation_time) { struct TMH_PendingOrder *po = cls; - json_t *contract_terms; + json_t *contract_terms = NULL; struct TALER_PrivateContractHash h_contract_terms; enum GNUNET_DB_QueryStatus qs; const char *summary; @@ -282,6 +282,10 @@ add_order (void *cls, bool paid; struct TALER_Amount order_amount; + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "Adding order `%s' (%llu) to result set\n", + orig_order_id, + (unsigned long long) order_serial); qs = TMH_db->lookup_order_status_by_serial (TMH_db->cls, po->instance_id, order_serial, @@ -319,6 +323,7 @@ add_order (void *cls, &contract_terms, &os, NULL); + GNUNET_break (os == order_serial); } if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) { @@ -332,9 +337,18 @@ add_order (void *cls, &unused, &contract_terms); } + if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) + { + GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + "Order %llu disappeared during iteration. Skipping.\n", + (unsigned long long) order_serial); + json_decref (contract_terms); /* should still be NULL */ + GNUNET_free (order_id); + return; + } if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs) { - GNUNET_break (0); /* Failed: #7025 */ + GNUNET_break (0); po->result = TALER_EC_GENERIC_DB_FETCH_FAILED; json_decref (contract_terms); GNUNET_free (order_id); |