diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-03-04 10:55:22 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-03-04 10:55:22 +0100 |
commit | 170616949a7ed86662a79a95ec8f4ffeacc449f1 (patch) | |
tree | bf6242ed54d8707829f0a14c8582ec2ac9af3aae /src/backend | |
parent | d773c25fa52a7901da8702e8bd127fd5a567d3a2 (diff) | |
download | merchant-170616949a7ed86662a79a95ec8f4ffeacc449f1.tar.gz merchant-170616949a7ed86662a79a95ec8f4ffeacc449f1.tar.bz2 merchant-170616949a7ed86662a79a95ec8f4ffeacc449f1.zip |
related to #6774: rollback before starting async activity
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/taler-merchant-httpd_post-tips-ID-pickup.c | 8 |
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, |