View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006686||Taler||merchant backend API (C)||public||2021-01-11 16:33||2021-01-12 15:15|
|Reporter||Florian Dold||Assigned To||Florian Dold|
|Priority||normal||Severity||minor||Reproducibility||have not tried|
|Summary||0006686: merchant doesn't have timeouts for requests to /wire and /keys, and becomes unusable once such a request hangs|
|Description||There 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.
|Tags||No tags attached.|
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.
||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!|
||Fixed in exchange.git 8f887a215e115d7e5f10a558b465521a6da0133c|
|2021-01-11 16:33||Florian Dold||New Issue|
|2021-01-11 16:33||Florian Dold||Status||new => assigned|
|2021-01-11 16:33||Florian Dold||Assigned To||=> Christian Grothoff|
|2021-01-12 12:14||Florian Dold||Note Added: 0017336|
|2021-01-12 12:32||Florian Dold||Assigned To||Christian Grothoff => Florian Dold|
|2021-01-12 13:47||Florian Dold||Note Added: 0017337|
|2021-01-12 15:15||Florian Dold||Status||assigned => resolved|
|2021-01-12 15:15||Florian Dold||Resolution||open => fixed|
|2021-01-12 15:15||Florian Dold||Note Added: 0017338|