View Issue Details

IDProjectCategoryView StatusLast Update
0007104Talermerchant backendpublic2022-11-04 19:52
ReporterFlorian Dold Assigned ToChristian Grothoff Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version0.9Fixed in Version0.9 
Summary0007104: merchant logs a 500 response from the exchange even though a merchant DB error occurred
Descriptionin ..._post-orders-ID-pay.c, we call

      resume_pay_with_error (pc,
                             MHD_HTTP_INTERNAL_SERVER_ERROR,
                             TALER_EC_GENERIC_DB_STORE_FAILED,
                             "deposit");

when we get a hard error from our database. This subsequently causes a log message that makes it *look* like there was an error with the exchange interaction, even when that is not the case.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2021-11-25 22:13

manager   ~0018546

I don't see why you say that. 500 is clearly an internal error, and the EC also points to OUR database. 502/504 are used for exchange errors. The logging is also pretty clear. I'm changing the hint to "insert_deposit" as that is the database interaction. But I don't see what else to do here.

Christian Grothoff

2021-11-25 22:13

manager   ~0018547

2df6e15..17f156a

Florian Dold

2021-11-25 22:25

manager   ~0018549

In resume_pay, we log the following message:

  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Resuming /pay handling as exchange interaction is done (%u)\n",
              response_code);

Thus when the merchant experiences an internal database problem, we log that we got a 500 in an interaction with the exchange. *That's* the confusing part.

Christian Grothoff

2021-11-25 22:43

manager   ~0018552

Well. Read the message: the exchange interaction is done. *OUR* HTTP request status is 500. response_code is always what WE return, not what we got from the exchange. Anyway, I've clarified the log statement in e3e693d..3b9e74b

Issue History

Date ModifiedUsernameFieldChange
2021-11-23 11:27Florian DoldNew Issue
2021-11-23 11:27Florian DoldStatusnew => assigned
2021-11-23 11:27Florian DoldAssigned To => Christian Grothoff
2021-11-25 22:13Christian GrothoffNote Added: 0018546
2021-11-25 22:13Christian GrothoffStatusassigned => informing
2021-11-25 22:13Christian GrothoffResolutionopen => fixed
2021-11-25 22:13Christian GrothoffFixed in Version => 0.9
2021-11-25 22:13Christian GrothoffNote Added: 0018547
2021-11-25 22:25Florian DoldNote Added: 0018549
2021-11-25 22:25Florian DoldStatusinforming => feedback
2021-11-25 22:25Florian DoldResolutionfixed => reopened
2021-11-25 22:43Christian GrothoffNote Added: 0018552
2021-11-25 22:43Christian GrothoffStatusfeedback => informing
2021-11-25 22:43Christian GrothoffResolutionreopened => fixed
2022-10-20 08:48Christian GrothoffTarget Version => 0.9
2022-11-04 19:52Christian GrothoffStatusinforming => closed
2025-03-22 13:09Christian GrothoffCategorymechant backend => merchant backend