View Issue Details

IDProjectCategoryView StatusLast Update
0009303Talerexchangepublic2024-12-13 19:15
ReporterFlorian Dold Assigned ToFlorian Dold  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version0.14Fixed in Version0.14 
Summary0009303: exchange should track running aml programs in the database
DescriptionThat way we
* can suspend the response to kyc-info so until the KYC program is finished
* prevent two AML programs from running at the same time
TagsNo tags attached.

Activities

Christian Grothoff

2024-10-31 06:43

manager   ~0023638

* AML programs should be run with a timeout and killed if the exceed it
* locks should be given with that timeout (+ 100ms?) and auto-expire to handle cases where the exchange/server crashed

Christian Grothoff

2024-12-01 15:49

manager   ~0023776

We can probably add some logic for "begin" and "end" of AML programs into libtalerexchangedb (NOT the plugin!). I put some other shared DB-related logic into exchangedb_history.c already.

Note that the shared logic on AML program conclusion should be called in taler-exchange-aggregator.c, which has a FIXME for that!

Christian Grothoff

2024-12-01 23:11

manager   ~0023777

=> please ping me before starting on this one!

Christian Grothoff

2024-12-08 19:16

manager   ~0023811

Implemented in 53fe2cc9d..bc30273e1. Florian: can you easily do a test!??!?

Florian Dold

2024-12-11 18:55

manager   ~0023864

$ taler-harness run-integrationtests kyc-amp-timeout

Currently the withdrawal just hangs in batch withdrawal, despite a configured AML program timeout of three seconds.

Christian Grothoff

2024-12-11 22:43

manager   ~0023868

There are 3 places in the code that run AML programs (maybe not yet optimally factored...). Only 1 has the timeout logic, you're triggering another one. Will fix.

Christian Grothoff

2024-12-12 00:02

manager   ~0023869

550a9adee..e2b004b38 adds timeout handling for the remaining 2 cases, alas the test still fails (even though the timeout looks correct).

Note that the exchange is *expected* to return you a 500 internal server on timeout.

Florian Dold

2024-12-12 19:04

manager   ~0023875

At least for failing AMPs, it seems that the exchange doesn't trigger the fallback measure.

Christian Grothoff

2024-12-13 01:50

manager   ~0023878

exchange fallback handling should be fixed, but now the tests fails due to an invalid configuration:

2024-12-13T01:48:21.350011+0100 taler-exchange-httpd-220649 INFO Parsing KYC measure KYC-MEASURE-M1
2024-12-13T01:48:21.350061+0100 taler-exchange-httpd-220649 ERROR Fallback measure `M2' used in AML program `NONE' has a check `C2' but fallbacks must have a check of type 'SKIP'
2024-12-13T01:48:21.350073+0100 taler-exchange-httpd-220649 ERROR Failed to load configuration `/tmp/taler-integrationtests-yrtc22/kyc-amp-timeout/exchange-testexchange-1.conf'. Exiting.

As discussed, fallback measures must now have a "skip" check. Please fix the configuration ;-).

Issue History

Date Modified Username Field Change
2024-10-30 15:02 Florian Dold New Issue
2024-10-30 15:02 Florian Dold Status new => assigned
2024-10-30 15:02 Florian Dold Assigned To => Florian Dold
2024-10-31 06:43 Christian Grothoff Note Added: 0023638
2024-12-01 15:49 Christian Grothoff Note Added: 0023776
2024-12-01 23:11 Christian Grothoff Note Added: 0023777
2024-12-07 22:43 Christian Grothoff Assigned To Florian Dold => Christian Grothoff
2024-12-08 19:16 Christian Grothoff Note Added: 0023811
2024-12-08 19:16 Christian Grothoff Assigned To Christian Grothoff => Florian Dold
2024-12-11 18:54 Florian Dold Assigned To Florian Dold => Christian Grothoff
2024-12-11 18:55 Florian Dold Note Added: 0023864
2024-12-11 22:43 Christian Grothoff Note Added: 0023868
2024-12-12 00:02 Christian Grothoff Note Added: 0023869
2024-12-12 00:02 Christian Grothoff Assigned To Christian Grothoff => Florian Dold
2024-12-12 00:02 Christian Grothoff Status assigned => feedback
2024-12-12 19:04 Florian Dold Status feedback => assigned
2024-12-12 19:04 Florian Dold Note Added: 0023875
2024-12-13 01:50 Christian Grothoff Note Added: 0023878
2024-12-13 14:27 Christian Grothoff Status assigned => resolved
2024-12-13 14:27 Christian Grothoff Resolution open => fixed
2024-12-13 14:27 Christian Grothoff Fixed in Version => 0.14
2024-12-13 19:15 Christian Grothoff Status resolved => closed