View Issue Details

IDProjectCategoryView StatusLast Update
0009377Talerexchangepublic2024-12-17 15:42
Reporteroec Assigned ToChristian Grothoff  
PrioritynormalSeverityfeatureReproducibilityalways
Status resolvedResolutionfixed 
Product Versiongit (master) 
Target Version1.0Fixed in Version1.0 
Summary0009377: [withdraw] refactor error handling
DescriptionThe current error handling in taler-exchange-httpd_withdraw.c is not well aligned with idempotency-checks.
Some error conditions require an additional check for idempotency of the request before actually returning an error to the client.
These checks for idempotency are scattered across multiple functions. Future changes will have to take these into account and add additional calls to them.

We should refactor error handling in the code and make error its own state, adding the error-condition-specific witness data to the Withdraw context.
When handling that state, we can have -if applicable to that error condition- one idempotency check - only once.
Additional InformationThis is preliminary work for 9371
TagsNo tags attached.

Relationships

child of 0009371 assignedoec Design and implement a unified /withdraw endpoint for age-withdraw and batch-withdraw 

Activities

oec

2024-12-11 16:39

developer   ~0023859

Last edited: 2024-12-11 17:41

commit 4f91bada4cc113bd4970e2d2f4a229d1fa3dea0b in branch dev/oec/issue9377
has a complete new structured error handling implemented in
src/exchange/taler-exchange-httpd_withdraw.c

`make check` in src/testing passes all tests with it.

oec

2024-12-17 13:09

developer   ~0023888

commit ea640ba2e9aebc71dbf6d368d7764e5ae6f1f3e9 in master has the new error handling.
make check in the exchange and merchant (modulo an expected failure in the wallet-harness tests) passed.

Issue History

Date Modified Username Field Change
2024-12-10 16:59 oec New Issue
2024-12-10 16:59 oec Status new => assigned
2024-12-10 16:59 oec Assigned To => oec
2024-12-10 16:59 oec Relationship added child of 0009371
2024-12-11 16:39 oec Assigned To oec => Christian Grothoff
2024-12-11 16:39 oec Status assigned => feedback
2024-12-11 16:39 oec Note Added: 0023859
2024-12-11 17:41 oec Note Edited: 0023859
2024-12-17 13:09 oec Status feedback => resolved
2024-12-17 13:09 oec Resolution open => fixed
2024-12-17 13:09 oec Note Added: 0023888
2024-12-17 15:42 Christian Grothoff Fixed in Version => 1.0
2024-12-17 15:42 Christian Grothoff Target Version 1.1 => 1.0