View Issue Details

IDProjectCategoryView StatusLast Update
0006686Talermerchant backendpublic2024-01-12 13:04
ReporterFlorian Dold Assigned ToFlorian Dold 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.8Fixed in Version0.8 
Summary0006686: merchant doesn't have timeouts for requests to /wire and /keys, and becomes unusable once such a request hangs
DescriptionThere is a per-request timeout for POST /pay, but different POST /pay requests can share an exchange lookup request, which doesn't have a timeout.

Thus as soon as we have one hanging request to /wire or /keys, the merchant won't be able to accept payments until the request gets a TCP reset (if ever ...).

We should either have a timeout in the merchant's exchange management logic, or libtalerexchange should have some sane default timeout.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Florian Dold

2021-01-12 11:14

manager   ~0017336

I think that the timeout logic should be part of the exchange management logic, as this allows the timeout to be increased for retries.

That means that even for a high-latency connection to the exchange, the request will succeed eventually.

Florian Dold

2021-01-12 12:47

manager   ~0017337

Actually after reviewing the libtalerexchange API, it makes more sense for the timeouts to be handled there, due to the cert_cb being potentially called multiple times. That makes it really hard to have the timeout in the layer above!

Florian Dold

2021-01-12 14:15

manager   ~0017338

Fixed in exchange.git 8f887a215e115d7e5f10a558b465521a6da0133c

Issue History

Date ModifiedUsernameFieldChange
2021-01-11 15:33Florian DoldNew Issue
2021-01-11 15:33Florian DoldStatusnew => assigned
2021-01-11 15:33Florian DoldAssigned To => Christian Grothoff
2021-01-12 11:14Florian DoldNote Added: 0017336
2021-01-12 11:32Florian DoldAssigned ToChristian Grothoff => Florian Dold
2021-01-12 12:47Florian DoldNote Added: 0017337
2021-01-12 14:15Florian DoldStatusassigned => informing
2021-01-12 14:15Florian DoldResolutionopen => fixed
2021-01-12 14:15Florian DoldNote Added: 0017338
2021-07-30 11:56Christian GrothoffFixed in Version => 0.8
2021-07-30 11:59Christian GrothoffTarget Version => 0.8.1
2021-07-30 12:01Christian GrothoffTarget Version0.8.1 => 0.8
2021-08-24 14:23Christian GrothoffStatusinforming => closed
2024-01-12 13:04Christian GrothoffCategorymerchant backend API (C) => mechant backend
2025-03-22 13:09Christian GrothoffCategorymechant backend => merchant backend