View Issue Details

IDProjectCategoryView StatusLast Update
0009173Talerexchangepublic2024-09-12 10:08
ReporterFlorian Dold Assigned ToChristian Grothoff  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Target Version0.14Fixed in Version0.14 
Summary0009173: KYC requirement during aggregation does not wake up /deposits/... long-poller
DescriptionInstead, the `/deposits/...` request only returns after the long-poll timeout. It still returns the expected result.

$ taler-harness run-integrationtests kyc-deposit-aggregate

The test passes, but it takes about 30s too long.
TagsNo tags attached.

Activities

Christian Grothoff

2024-09-05 20:49

manager   ~0023189

Need argument to wait for "KYC required"/ACCEPTED state from unknown/not aggregated, not for 'deposit aggregated/finished' as it exists.

Christian Grothoff

2024-09-12 00:00

manager   ~0023258

2779038e..291cdc6b updates the spec to allow you to long-poll for *either* transaction completion (200 OK) *or* the 202 accepted with kyc_ok. For that, simply pass "lpt=1".

The original behavior, to long-poll for the transaction to be fully completed, is the default and can also be obtained using "lpt=2".

Implemented in fad6728a..d12eb41b.

Assigning to Florian as wallet-core needs to be modified to pass the corret long-poll-target (lpt).

Florian Dold

2024-09-12 03:12

manager   ~0023260

I've updated wallet-core to use the lpt parameter.

However, the exchange implementation is still broken:

2024-09-12T01:06:22.128Z http-impl.node.ts TRACE Requesting GET http://localhost:8081/deposits/EKW8YF8Z7VQMEERRX8PKZYAAAXRJDXNDM5GCHVXN27WZPD687P9KR4P72G3CV7NM21JMSK6PG7N99Z9W559EKSG4BHN5J2JTKHBVPB0/KTW44M179382WG0YBVPSTJ31XZDCK5ME7H87GMTVREAHYT0VRDG0/FY1B0X61SKE5W42R7HJT9SMGQKB5K2FQQT17WC9VEE3433ZHP7400R54EQRG0XDSD82BFQBMGAT7ZRGZ81KR8JBTCZDCR8CK8EK64M8/3E3QTV0XHVEM2RR1N32C3WD71SA2VD180RNZPN09TFNSP3ZHQV50?merchant_sig=D42R4PJMPN6VT4ZFWQSJ02BN1HFZ49F8GYBKEQ7QX00XQQ1NZ8ZMFQ3TAN26D77EA1RZ8X9WMT6MT6P10RRJY9Z2A64C16M1XHYKC00&timeout_ms=30000&lpt=1
2024-09-12T01:06:22.130Z deposits.ts TRACE deposits response status: 202
2024-09-12T01:06:22.131Z deposits.ts TRACE deposits response: {
  "kyc_ok": true,
  "execution_time": {
    "t_s": 1726103482
  }
}

Observe how the request returns immediately, despite lpt=1 and timeout_ms=30000.

It should, per the docs, only return before the timeout for "a 202 state where kyc_ok is false or a 200 OK response". Neither of that is applicable.

Reproducible with "taler-harness run-integrationtests kyc-deposit-aggregate" on wallet-core.git bcc864d5 or later.

Christian Grothoff

2024-09-12 09:40

manager   ~0023261

Eh, right, we're supposed to wait for KYC *not* OK, d12eb41b..1b8b3a69...

Issue History

Date Modified Username Field Change
2024-09-05 19:10 Florian Dold New Issue
2024-09-05 19:10 Florian Dold Status new => assigned
2024-09-05 19:10 Florian Dold Assigned To => Christian Grothoff
2024-09-05 20:49 Christian Grothoff Note Added: 0023189
2024-09-12 00:00 Christian Grothoff Note Added: 0023258
2024-09-12 00:00 Christian Grothoff Assigned To Christian Grothoff => Florian Dold
2024-09-12 03:12 Florian Dold Status assigned => resolved
2024-09-12 03:12 Florian Dold Resolution open => fixed
2024-09-12 03:12 Florian Dold Note Added: 0023260
2024-09-12 03:12 Florian Dold Assigned To Florian Dold => Christian Grothoff
2024-09-12 03:12 Florian Dold Status resolved => assigned
2024-09-12 09:40 Christian Grothoff Note Added: 0023261
2024-09-12 10:08 Christian Grothoff Status assigned => resolved
2024-09-12 10:08 Christian Grothoff Fixed in Version => 0.14