gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-exchange] 02/05: try to fix missing rollbacks for wi


From: gnunet
Subject: [GNUnet-SVN] [taler-exchange] 02/05: try to fix missing rollbacks for wirewatch
Date: Sat, 11 Aug 2018 02:49:12 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

commit ab239f3e548028b13952c31f1063557a7d6c0322
Author: Christian Grothoff <address@hidden>
AuthorDate: Sat Aug 11 02:47:58 2018 +0200

    try to fix missing rollbacks for wirewatch
---
 src/exchange/taler-exchange-wirewatch.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/exchange/taler-exchange-wirewatch.c 
b/src/exchange/taler-exchange-wirewatch.c
index a48634e..9de0597 100644
--- a/src/exchange/taler-exchange-wirewatch.c
+++ b/src/exchange/taler-exchange-wirewatch.c
@@ -420,7 +420,7 @@ history_cb (void *cls,
   {
     struct RejectContext *rtc;
 
-    GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                 "Wire transfer over %s has invalid subject `%s', sending it 
back!\n",
                 TALER_amount2s (&details->amount),
                 details->wtid_s);
@@ -443,6 +443,15 @@ history_cb (void *cls,
                                                row_off_size,
                                                &reject_cb,
                                                rtc);
+    if (NULL == rt)
+    {
+      GNUNET_break (0);
+      db_plugin->rollback (db_plugin->cls,
+                           session);
+      GNUNET_assert (NULL == task);
+      task = GNUNET_SCHEDULER_add_now (&find_transfers,
+                                       NULL);
+    }
     return GNUNET_SYSERR; /* will continue later... */
   }
 
@@ -474,7 +483,10 @@ history_cb (void *cls,
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Got DB soft error for reserve_in_insert\n");
+    db_plugin->rollback (db_plugin->cls,
+                         session);
     /* try again */
+    GNUNET_assert (NULL == task);
     task = GNUNET_SCHEDULER_add_now (&find_transfers,
                                     NULL);
     return GNUNET_SYSERR;
@@ -540,6 +552,8 @@ find_transfers (void *cls)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Failed to obtain starting point for montoring from 
database!\n");
+      db_plugin->rollback (db_plugin->cls,
+                           session);
       global_ret = GNUNET_SYSERR;
       GNUNET_SCHEDULER_shutdown ();
       return;
@@ -547,6 +561,8 @@ find_transfers (void *cls)
     if (GNUNET_DB_STATUS_SOFT_ERROR == qs)
     {
       /* try again */
+      db_plugin->rollback (db_plugin->cls,
+                           session);
       task = GNUNET_SCHEDULER_add_now (&find_transfers,
                                        NULL);
       return;

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]