summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-03-04 10:55:22 +0100
committerChristian Grothoff <christian@grothoff.org>2021-03-04 10:55:22 +0100
commit170616949a7ed86662a79a95ec8f4ffeacc449f1 (patch)
treebf6242ed54d8707829f0a14c8582ec2ac9af3aae
parentd773c25fa52a7901da8702e8bd127fd5a567d3a2 (diff)
downloadmerchant-170616949a7ed86662a79a95ec8f4ffeacc449f1.tar.gz
merchant-170616949a7ed86662a79a95ec8f4ffeacc449f1.tar.bz2
merchant-170616949a7ed86662a79a95ec8f4ffeacc449f1.zip
related to #6774: rollback before starting async activity
-rw-r--r--src/backend/taler-merchant-httpd_post-tips-ID-pickup.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c b/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c
index 4ac68578..797d6f25 100644
--- a/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c
+++ b/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c
@@ -817,10 +817,17 @@ RETRY:
qs = GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs)
{
+ bool rollback = false;
+
for (unsigned int i = 0; i< pc->planchets_length; i++)
{
if (NULL == sigs[i])
{
+ if (! rollback)
+ {
+ TMH_db->rollback (TMH_db->cls);
+ rollback = true;
+ }
try_withdraw (pc,
exchange_url,
&pc->planchets[i],
@@ -830,7 +837,6 @@ RETRY:
}
if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
{
- TMH_db->rollback (TMH_db->cls);
MHD_suspend_connection (connection);
GNUNET_CONTAINER_DLL_insert (pc_head,
pc_tail,